Tunny Icon
TunnyDocs

The next-gen Grasshopper optimization tool.

SOM Map

SOM Map ウィジェットは、標準化した特徴空間に自己組織化マップを学習し、トポロジーを保存した 2D グリッドとして表示します。

表示は次の 3 つを切り替えられます。U 行列(隣接セル間の距離で、クラスタ境界が見える)、コンポーネントプレーン(1 つの変数がマップ上でどう変化するか)、ヒット数(各セルに落ちる trial の数)。

SOM は、高次元の trial 空間を 2D の格子へ写像する手法です。格子上で近いセルほど、元の空間でも似た特徴を持つように学習されます。固定のクラスタ数に分割するというより、クラスタ領域、勾配、外れ値を連続的な「地図」として読むための可視化です。

学習の考え方

1. 標準化

入力列は学習前に平均 0、分散 1 に標準化します。これは、目的関数とパラメータのスケール差で距離計算が偏るのを防ぐためです。

2. BMU(最良一致ユニット)

各データ点 xx は、重みベクトル wiw_i が最も近いノードへ割り当てられます。

b(x)=argminixwi2b(x) = \arg\min_i \lVert x - w_i \rVert^2

3. バッチ更新

Tunny Dashboard の SOM はバッチ学習です。1 点ずつ更新する代わりに、エポックごとに全点の BMU を求め、ガウス近傍で重み付けした平均でノード重みを一括更新します。

wixh(b(x),i)xxh(b(x),i),h(b,i)=exp ⁣(dgrid(b,i)22σ(t)2)w_i \leftarrow \frac{\sum_x h\bigl(b(x), i\bigr), x}{\sum_x h\bigl(b(x), i\bigr)}, \qquad h(b, i) = \exp!\left(-\frac{d_{\text{grid}}(b, i)^2}{2,\sigma(t)^2}\right) dgridd_{\text{grid}} は格子上の距離、$\sigma(t)$ は近傍半径です。学習の進行に合わせて近傍を縮め、序盤は大局構造、終盤は局所構造を整えます。

4. 決定論的な初期化

初期化はランダムではなく、PCA バイプロットと同様に上位 2 主成分平面を使って配置します。したがって、同じデータと同じ設定なら同じ地図が得られます。

3 つの表示の読み方

  • U 行列:各セルと上下左右セルの距離の平均です。高い値の帯は、元の空間で異質な領域の境界(クラスタ境界候補)を示します。
  • コンポーネントプレーン:1 変数ずつ、その変数の重みが地図上でどう変化するかを示します。どの領域で値が高いか・低いかを比較できます。
  • ヒット数:各セルに割り当てられた trial 数です。密な領域と疎な領域を把握できます。

注意点

  • ノード数が少なすぎると異なる trial が同じセルに詰まり、分解能が落ちます。逆に多すぎると空セルが増え、U 行列がノイジーになります。
  • トポロジー保存は近似であり、完全保証ではありません。高次元構造を 2D に畳み込むため、局所的な歪みは起こり得ます。
  • U 行列の境界は視覚的な手がかりで、統計的有意性そのものではありません。コンポーネントプレーンやヒット数と合わせて解釈してください。

参考