自己組織化マップと主成分分析 — 高次元データの「地図」を作る
100次元のデータを2次元の「地図」に縮める。自己組織化マップ(SOM)から主成分分析(PCA)まで、 高次元の霧を晴らす手法を視覚的に探ろう。
問い — 高次元の霧を晴らすには?
100次元の空間にデータ点が浮かんでいると想像してほしい。人間の目では3次元までしか見えない。 では、この「高次元の霧」の中にある構造を、どうやって「見る」のか?

ここで根本的な問いが生まれる。 高次元データの本質的な構造は、もっと低い次元に潜んでいるのではないか?
手書き数字の例を考えよう。数字「3」の画像は256ピクセル、つまり256次元の空間の一点だ。 しかし、すべての「3」が全く異なる256次元の点にあるわけではない。 「尾部の長さ」や「文字の太さ」など、わずかな変化要因がほとんどの違いを生み出している。
つまり、256次元に見えるデータが、実際には2〜3次元の多様体(manifold) 上に乗っているかもしれない。
この章で学ぶ手法はすべて、この直感を数学的に実現しようとする。自己組織化マップ、主成分分析、主成分曲線、スペクトラルクラスタリング — それぞれが異なる方法で「高次元データの地図」を描く。
自己組織化マップ — データの「地図」を描く
自己組織化マップ(SOM: Self-Organizing Map)は、 神経科学者のコホネン(Kohonen)が提案した方法だ。 脳の感覚野が「トポグラフィックマップ」を形成することにヒントを得ている。
直感から始めよう。K平均法では K 個のプロトタイプが データ空間にバラバラに配置されていた。 SOMでは、プロトタイプに「2次元の地図」上の位置を割り当て、 地図上で隣接するプロトタイプはデータ空間でも隣接するよう強制する。

アルゴリズムはシンプルだ。まず K 個のプロトタイプ$m_1, m_2, \ldots, m_K$を初期化し、各プロトタイプに2次元の「座標」$\ell_j \in \mathbb{R}^2$を割り当てる(例:5×5のグリッド)。
次に、各データ点 $x_i$ に対して最も近いプロトタイプ$m_{j^*}$ を見つける。そしてプロトタイプを更新するのだが、 ここがSOMのポイントだ。$m_{j^*}$ だけでなく、 地図上で隣接するプロトタイプも一緒に更新する:
ここで $h(\cdot)$ は近傍関数で、地図上の距離が遠いほど影響が小さくなる。$\alpha$ は学習率だ。 学習が進むにつれて、$\alpha$ と近傍の範囲を徐々に縮小していく。
バッチ版では、各プロトタイプを近傍の点の加重平均で更新する:
SOMの最終結果は、高次元データの「2次元地図」だ。 地図上で近い位置のプロトタイプは、元の高次元空間でも似たデータを担当する。 文書の類似性マップや消費者行動の可視化など、さまざまな分野で使われている。
主成分分析 — 最も情報量が多い方向を探す
主成分分析(PCA: Principal Component Analysis)は、 統計学の歴史の中で最も重要な手法の一つだ。アイデアはシンプルで美しい:
データの分散を最大化する方向(軸)を次々と見つけよ。

数学的には、$N$ 個の$p$ 次元データ点$x_1, \ldots, x_N$ を、 ランク $q$ の線形モデルで近似する:
ここで $\mu$ は平均ベクトル、$V_q$ は $p \times q$ の 正規直交行列(主成分の方向ベクトル)、$\lambda$ は $q$ 次元の「スコア」だ。
目標は再構成誤差を最小化することだ:
解は特異値分解(SVD)で得られる。 平均中心化したデータ行列 $X$ に対して:
ここで $U$ は左特異ベクトル行列、$D$ は特異値の対角行列 ($d_1 \geq d_2 \geq \cdots \geq d_p$)、$V$ は右特異ベクトル行列(主成分の方向)だ。
主成分スコア $Z = UD$ が 新しい座標系での表現だ。 第一主成分 $z_1 = Ud_1$ は最大の分散を持ち、$z_2$ は $z_1$ に 直交する中で最大の分散を持つという構造になっている。
手書き数字の例では、130枚の「3」の画像(各256ピクセル)をPCAにかけると、 第1主成分は「下部の尾部の縦伸び」、第2主成分は「文字の太さ」を表す。 最初の50成分だけで分散の90%が説明できるのだ。
スパース主成分 — 解釈可能な軸を見つける
PCAには一つの問題がある。各主成分は全ての変数の線形結合なので、 「この主成分が何を表しているか」が分かりにくい。
例えば、20個の経済指標から主成分を求めると、 第1主成分が全20指標の重み付き和になってしまう。これでは解釈しにくい。

スパース主成分分析(Sparse PCA)は、 各主成分の負荷(loadings)がスパース(多くがゼロ)になるよう正則化を加える手法だ。
SCoTLASS(Simplified Component Technique-LASSO)の定式化:
これはLasso正則化をPCAに適用したもの。 パラメータ $t$ が小さいほど、多くの係数がゼロになる。
より実用的な定式化(行列分解版):
脳画像解析の例では、脳の断面形状データに適用すると、 通常のPCAでは全領域にわたる複雑な重みが得られる。 スパースPCAでは「前部の形状変化」「後部の形状変化」など、 局所的に解釈できる成分が得られる。
正則化によって情報の一部を犠牲にするが、科学的解釈のしやすさという重要な利益が得られる。 これは「性能」と「説明可能性」のトレードオフだ。
主成分曲線 — 直線から曲線へ
PCAは直線(線形)で低次元構造を捉える。しかしデータが湾曲した多様体上にあれば、 直線では限界がある。ホースを丸めたようなデータに対して、直線で近似するのは無理があるだろう。

主成分曲線(Principal Curves)は、 PCAの非線形拡張だ。「データを最もよく要約する滑らかな曲線」を求める。
自己一貫性(Self-Consistency)という美しい性質がある:
つまり、曲線上の各点は、その点に最も近いすべてのデータ点の平均(期待値)に等しい、 という性質だ。曲線はデータの「重心の軌跡」になっている。
アルゴリズムは交互最適化で進む:
- データ点を現在の曲線に投影する(各点の最近傍パラメータ $\lambda_f(x_i)$ を求める)
- 曲線を更新する:各 $\lambda$ に対して、投影されたデータ点の期待値を計算
これを収束するまで繰り返す。実務では、PCA解を初期値として使うことが多い。 収束した解が大域的最適解である保証はなく、初期値依存性がある点には注意が必要だ。
一般化すると主成分曲面(Principal Surfaces)になり、 2次元の滑らかな曲面でデータを近似する。多様体学習の基礎的なアプローチとも言える。
スペクトラルクラスタリング — グラフで繋がりを見る
主成分分析は「距離」ベースで次元を削減する。しかし、データが「環状」や「螺旋状」に分布している場合、 距離だけでは正しいクラスターが見えない。
スペクトラルクラスタリングは グラフ理論を使う別のアプローチだ。

直感はこうだ。互いに近いデータ点を「友達」として結ぶグラフを作る。 クラスタリングは「友達グループ」を見つけることだ。 環状データでも、環の内側にある点は環上の点と「友達」にはならない。 グラフの接続構造がクラスタの境界を正しく捉えてくれる。
アルゴリズムのステップ:
- 類似度行列 $W$ を構築する。 近い点のペアをエッジで結ぶ(RBFカーネルなどで)
- グラフラプラシアンを計算する:$$L = D - W$$($D$ は次数行列)
- $L$ の最小固有値に対応する固有ベクトルを用いて クラスタリングする(通常のK平均法で)
なぜ固有ベクトルなのか? グラフラプラシアンの固有値・固有ベクトルは、グラフの「接続構造」を捉えている。 分断されたクラスタは互いに影響を与えないため、固有ベクトルは自然にクラスタを分離する。
この手法は主成分分析と深く繋がっている。 カーネルPCAも同様の構造を持ち、非線形な次元削減を実現する:
ここで $\gamma_l, u_{\cdot l}$ はカーネル行列$K$ の固有値・固有ベクトルだ。
SOMとPCAの比較 — 何が違うのか?
ここまで学んだ手法を比較しよう。それぞれが「データの低次元構造を見つける」という 共通目標に対して、異なるアプローチを取っている。

| 手法 | 線形/非線形 | 出力 | 特徴 |
|---|---|---|---|
| PCA | 線形 | 主成分スコア | グローバルな最適解、高速 |
| スパースPCA | 線形 | スパースな負荷行列 | 解釈しやすい軸 |
| 主成分曲線/曲面 | 非線形 | パラメータ化された多様体 | 局所構造を保持 |
| SOM | 非線形 | グリッドにマッピング | 2D視覚化、隣接関係を保存 |
| スペクトラルクラスタリング | 非線形 | クラスタ割り当て | 複雑な形状に対応 |
重要な洞察をいくつか整理しよう。
SOMの特徴:バッチ版SOMはK平均法の サブセット(プロトタイプに位置制約を追加)。 学習中の「近傍の引き付け」が、地図上の隣接関係を保証する。 文書の類似性マップや、消費者行動の可視化に使われる。
PCAの特徴:解析的な解(SVD)があり、 グローバルな最適解が保証される。 スケールの異なる変数には標準化が必要(相関行列を使うか、変数をスケールする)。
主成分曲線の限界:収束した解が大域的最適解である保証はない。 初期値依存性がある。実務的には、PCA解を初期値として使う。
どれが「正しい」手法かは問題に依存する。 線形構造が想定できるならPCA、複雑な非線形構造ならSOMや主成分曲線が適切だ。
まとめ — データの「地図」を読む

この章で学んだことを整理しよう。
中核となる問い:高次元データの中に潜む低次元構造をどう発見し、可視化するか?
共通の数学的枠組み:$N$ 個の$p$ 次元データ点を、$q$ 次元($q \ll p$)の多様体上の点として表現する。
線形近似(PCA):
- 再構成誤差 $\min \sum \|x_i - \mu - V_q \lambda_i\|^2$ を最小化
- SVD で効率的に解ける:$X = UDV^T$
- グローバルな最適解が保証される
非線形拡張:
- SOM:トポロジー制約付きのプロトタイプ学習
- 主成分曲線:自己一貫性を持つ滑らかな曲線
- スペクトラルクラスタリング:グラフ構造を利用
実用的なガイドライン:
- まずPCAで線形構造を確認する
- データが非線形なら、SOMや主成分曲線へ
- クラスタ形状が複雑ならスペクトラルクラスタリング
- スパースPCAで解釈可能な成分が必要な場合に利用
次の章では、これとは別のアプローチで教師なし学習を深める。 独立成分分析(ICA)や多次元尺度法(MDS)など、 さらに多様な「データの形」を捉える手法を見ていこう。