3-2-2-2 次元削減

次元削減とは

次元削減とは、たくさんの特徴量を持つ複雑なデータを、できるだけ本質を失わずに、少ない次元へとまとめ直す手法です。
高次元の世界は、そのままだと人間にもAIにも見えにくいです。そこで、次元削減では、大事な軸だけを残したり距離関係を保ったまま並べ替えたりしながら、データの構造を「見える形」にしていきます。
このあと紹介する、主成分分析やt-SNEたちは、それぞれ違うやり方で、この「見えない世界を見える世界へ」という役目を担っています。

主成分分析 (PCA)

主成分分析は、たくさんの特徴量を持つデータの中から、「いちばん大事な方向」を見つけ出して、そこに世界を並べ直す方法です。
たとえば、人のデータ。
・身長
・体重
・肩幅
・足の長さ
さまざまな数字がありますが、よく見ると、「全体的に大きい人」「全体的に小さい人」という一本の流れが見えてきます
主成分分析は、まずその、いちばん強い流れ(ばらつきが最大の方向)を探します。これが 第1主成分です。
そして次に、第1主成分と直交する方向の中で、次に大きな流れを探します。これが 第2主成分です。
さらに第3、第4……と続きます。
でも実際には、第1主成分、第2主成分、くらいで、世界の大部分を説明できることが多いです。
だから、元は10次元あったデータを、2次元にしても、「だいたいの構造」は残せます。
これが、次元削減です。

主成分分析は、情報の多い軸を残し、情報の少ない軸を捨てるという、とてもシンプルな発想です。
ノイズっぽい方向を切り落として、本質だけを残すのです。
だからPCAは、可視化、前処理、ノイズ除去など、さまざまな場面で使われます。

特異値分解 (SVD)

主成分分析の話をしていると、ひょっこり現れる名前があります。
特異値分解(SVD)です。
ちょっと難しそうだけど、考え方は意外と素朴です。
SVDは、ひとことで言うと、複雑なデータの塊を、意味のある3つの部品に分解する方法。

たとえば、大きな布があるとします。
模様もあって、シワもあって、厚みもあります。
SVDはそれを、向き(どっち方向に広がっているか)、強さ(どれくらい重要な流れか)、もう一方の向きという3つに分けてくれます。
数式的には、
元の行列 = A × Σ × Bᵀ
になるのですが、、G検定的にはここは覚えなくて大丈夫です。
大事なのは、データを「方向」と「重要度」に分解しているというイメージ。

実は主成分分析は、内部でこのSVDを使っていることが多いです。
主成分分析がやっていた、「ばらつきの大きい方向を探す」という作業。それを数学的に支えているのがSVDなのです。
PCA → データ分析の視点
SVD → 行列を分解する数学的手法
という関係です。

SVDはPCAだけじゃなく、画像圧縮、レコメンド、ノイズ除去など、いろんな場所で使われています。

t-SNE

t-SNEは、高次元のデータを、2次元や3次元に並べ替えて、「似ている関係」を絵にしてくれる手法です。
次元削減の仲間だけど、目的はちょっと特別。
それは、人間に見せるためであるということ。
主成分分析(PCA)が「全体の流れ」を大切にするのに対して、t-SNEは、「近いもの同士は、絶対に近くに置きたい」という強いこだわりを持っています。

t-SNEは、仲のいいデータを引き寄せて、地図を描くAI、とでも言いましょうか。
たとえば画像データ。
数字の手書き文字なら、0の仲間は0の近くに、1は1の近くに。
猫の写真は猫の塊、犬は犬の塊。
ラベルを教えていないのに、自然と「島」みたいな集まりが現れるのです。
それを私たちは、「あ、ここが猫クラスタだ」と眺めることができます。
これが、t-SNEのすごいところ。

t-SNEが大切にしているのは、局所構造(近さ)です。
つまり、この点とこの点は似ている……こっちはちょっと離れている……という距離感です。
だから、クラスタの形がはっきり出て、可視化がとてもきれいです。
一方で、クラスタ同士の遠さはあまり信用できません。
実行するたびに少し結果が変わる、というクセもあります。

研究や分析で、「まず雰囲気をつかみたい」「クラスタ構造を見たい」、そんなときによく使われます。

多次元尺度構成法 (MDS)

多次元尺度構成法(MDS)は、データ同士の「距離関係」をできるだけ保ったまま、高次元の世界を低次元に写し直す手法です。
次元削減の仲間ですが、MDSがいちばん大切にしているのは、「どれくらい離れているか」という感覚です。
たとえば、
・AとBはとても近い。
・Cは少し遠い。
・Dはかなり離れている。
MDSは、この「遠近の関係」を壊さないようにしながら、2次元の平面に配置してくれます。

MDSは、データ同士の距離感を守りながら、世界を並べ直すAIとでも言いましょうか。
高次元の複雑な空間で測った距離を、「この関係のまま、平面に置くとしたら?」と考えて、できるだけ元の距離に近くなるように配置します。
だからMDSでできた図は、全体の配置、グループ間の関係が比較的信頼できます。

t-SNEとの違いは、G検定的に大事ですので、整理をしておきます。

t-SNE
・近いもの同士を特に重視(局所構造)
・クラスタがはっきり見える
・全体の距離感はあまり信用できない

MDS
・全体の距離関係を大切にする
・グループ同士の位置関係が見やすい
・クラスタはt-SNEほど強調されない

t-SNEはご近所重視。
MDSは地図全体重視。
どちらも「見える化」だけど、見ている世界が少し違うのです。