次元圧縮は、高次元データの情報をできるだけ保ちながら低次元の表現に変換する教師なし学習の手法です。データの可視化・ノイズ除去・前処理に広く使われ、線形手法の代表が主成分分析(PCA)、非線形な可視化手法の代表がt-SNEです。
※この項目はシラバス2026では出題対象外(オプション)ですが、前提知識として重要なため解説します。
📖 概要
現実のデータは数百〜数万次元に及ぶことがありますが、本質的な情報はより少ない次元に集約されている場合が多くあります。次元圧縮は、この本質的な構造を保ったまま次元を減らすことで、計算量の削減、次元の呪いの緩和、2次元・3次元への可視化を可能にします。
線形な次元圧縮の代表が主成分分析(PCA)です。データの分散が最大になる方向(主成分)を順に見つけ、少数の主成分にデータを射影します。各主成分がどれだけ情報を保持しているかは寄与率で評価します。
一方、クラスタ構造のような局所的な近さを保った可視化には非線形手法が有効です。SNEは「近い点同士は低次元でも近くに」という確率的な枠組みを提案しましたが、点が中心部に密集するCrowding Problemという課題がありました。これを低次元側でt分布を使うことで緩和したのがt-SNEで、高次元データの2次元可視化の定番手法になっています。
🔍 キーワード解説
主成分分析
主成分分析(PCA; Principal Component Analysis)は、データの分散が最大となる方向を第1主成分、それと直交する中で分散最大の方向を第2主成分、というように順に軸を見つけ、データをその軸に射影する線形の次元圧縮手法です。数学的には、データの共分散行列の固有値分解(または特異値分解)に帰着し、固有ベクトルが主成分の方向、固有値がその方向の分散に対応します。前処理としての標準化(平均0・分散1化)が結果に影響する点にも注意が必要です。
寄与率
寄与率は、各主成分がデータ全体の分散のうちどれだけの割合を説明するかを表す指標で、「その主成分の固有値 ÷ 全固有値の合計」で計算されます。第1主成分から順に寄与率を足し合わせたものは累積寄与率と呼ばれ、「累積寄与率が一定の割合(例えば80〜90%程度)に達するまでの主成分数を採用する」といった形で、残す次元数の目安に使われることが多いです。
SNE
SNE(Stochastic Neighbor Embedding)は、高次元空間での点同士の近さをガウス分布に基づく条件付き確率で表し、低次元空間でも同様に定義した確率分布ができるだけ一致するように(KLダイバージェンスを最小化するように)各点の低次元座標を求める可視化手法です。「距離そのもの」ではなく「近傍である確率」を保存する発想により、局所的な構造の保存を重視している点が特徴です。
Crowding Problem
Crowding Problem(過密問題)は、SNEなどで高次元データを2次元のような極端に低い次元に埋め込む際、中程度に離れた点まで置ける「場所」が低次元では足りず、多くの点が中心部に押し込められて団子状に潰れてしまう現象です。高次元空間では等距離に配置できる点の数が次元とともに増えるのに対し、低次元ではそれができないことが原因で、クラスタ同士の分離が見えにくくなります。
t-SNE
t-SNE(t-distributed SNE)は、SNEを改良した可視化手法です。主な工夫は2つで、(1) 近さの確率を対称化して最適化を安定させたこと、(2) 低次元側の類似度にガウス分布ではなく裾の重いt分布(自由度1)を用いたことです。裾が重い分布を使うと、高次元で中程度に離れた点同士を低次元ではより遠くに配置でき、Crowding Problemが緩和されてクラスタが分離した見やすい可視化が得られます。なお、perplexityなどのハイパーパラメータで結果が変わること、埋め込み後の点間距離やクラスタの大きさを定量的に解釈しすぎないほうがよいことが実用上の注意点です。
📝 試験でのポイント
- PCAが「分散最大の方向への射影」であり、共分散行列の固有値分解に対応することは頻出です
- 寄与率・累積寄与率の計算(固有値の割合を求める)は計算問題として出題されやすい形です
- SNE → Crowding Problem → t-SNE(低次元側にt分布)という改良の流れを因果関係で説明できるようにしましょう
- 「PCA=線形・大域的構造、t-SNE=非線形・局所的構造の可視化向き」という使い分けの対比を押さえましょう
- t-SNEで裾の重いt分布を使う理由(離れた点をより遠くへ配置できる)を選ばせる問題に対応できるようにしましょう
📚 まとめ
次元圧縮の基本は、分散最大方向へ射影するPCAと、その情報量を測る寄与率です。可視化では、近傍確率を保存するSNEが低次元の場所不足によるCrowding Problemを抱え、それを低次元側のt分布で緩和したのがt-SNEです。線形/非線形、大域/局所という軸で各手法の位置づけを整理しておきましょう。
