← 一覧へ
AI・データ
#SOM#자기조직화지도#군집분석#비지도학습#Kohonen#134회
最終更新 · 2026-09-27

SOM(Self Organizing Map、自己組織化マップ)

1. 概要

A. 定義

SOM(Self Organizing Map) はフィンランドのTeuvo Kohonen(1982)が提案した教師なし学習ニューラルネットワークであり、高次元の入力データを低次元(主に2次元)の格子へ位相(topology)を保存しながら写像し、クラスタリング・次元削減・可視化を行う手法である。Kohonen Map、コホネンネットワークとも呼ばれる。

SOMの核心的な発想は、人間の大脳皮質の働き方に由来する。脳では類似した感覚刺激(例: 隣接する指の触覚)が大脳皮質の隣接するニューロン領域で処理される位相的マップ(topographic map) 現象が観察されるが、SOMはこの原理を人工的に模倣する。すなわち類似した入力が出力格子上で互いに近いニューロンに対応するよう、ネットワークが自ら組織化(self-organizing)する。その結果、高次元データの複雑な近傍関係が、2次元マップ上に人が目で確認できる形で展開される。この「位相保存(topology preservation)」 こそが、SOMを単なるクラスタリング手法と区別する決定的な特徴である。

B. 登場背景および必要性

データの次元が高くなるほど、人が直感的に構造を把握しづらくなる「次元の呪い(curse of dimensionality)」が生じる。数十~数百の変数で表現された顧客・遺伝子・文書データをそのまま眺めても、何が互いに類似し、どんなクラスタが存在するのか分からない。従来のクラスタリング(例: K-means)はデータをいくつかのグループに分けてくれるが、クラスタ同士の相互関係(どのクラスタがどのクラスタと隣接しているか) は教えてくれない。SOMはクラスタリングと可視化を同時に行いながら、クラスタ間の位相関係まで2次元マップで示すため、探索的データ分析と結果の視覚的な意思疎通という二つの要求を併せて満たす。

またPCAのような線形の次元削減は、データを分散の大きい直交軸に投影するため、曲面状に湾曲した非線形構造をうまく展開できない限界がある。SOMは格子ニューロンがデータ分布に沿って自ら配置される方式であり、非線形の多様体(manifold)構造も捉えられる点が必要性を高める。特に結果が「点の羅列」ではなく「解釈可能な原型ベクトルを持つ格子」として出るため、分析結果を非専門家のステークホルダーに説明し説得せねばならない実務の場面で強みを発揮する。

C. 特徴

SOMは正解ラベルなしにデータの内部構造を学習する教師なし方式であり、ニューロン同士が入力をめぐって競争し勝者を選ぶ競合学習(competitive learning) によって動作する。特に勝者だけを更新する一般的な競合学習と異なり、勝者の近傍ニューロンまで併せて更新する点がSOMの要であり、これが隣接ニューロンに類似した値を持たせ、位相保存を実現する。もし近傍更新がなければ、SOMはニューロンが各自散らばってデータを近似する単なるベクトル量子化(競合学習)にとどまり、格子上の位置が何の意味も持たなくなる。すなわち「近傍を併せて更新する」という一つの仕掛けが、ベクトル量子化を位相保存マップへと昇格させる。また隠れ層のない浅い(2層)構造のため、逆伝播が不要で解釈も比較的容易である。

特徴 内容
教師なし学習 正解ラベルなしにデータ構造を学習
位相保存 入力空間の近傍関係を出力格子に維持
競合学習 ニューロン間の競争で勝者(BMU)を選定
近傍更新 勝者とその近傍を併せて更新(核心的差別点)
次元削減・可視化 高次元を2D格子でクラスタ化・可視化(非線形)

2. SOMの構造と構成要素

flowchart LR
  subgraph IN["入力層 (Input Layer)"]
    X["高次元入力ベクトル x = (x1..xn)"]
  end
  subgraph OUT["競合層/出力層 (2D 格子)"]
    N1(("ニューロン"))
    N2(("ニューロン"))
    N3(("BMU 勝者"))
    N4(("ニューロン"))
  end
  X -->|"重みベクトル w (完全結合)"| N1
  X --> N2
  X --> N3
  X --> N4
  N3 -.->|"近傍関数で併せて更新"| N2
  N3 -.-> N4
  style N3 fill:#e8f0fe,stroke:#2f6fed

SOMは隠れ層が何層もある一般的な深層ニューラルネットワークと異なり、入力層と競合層(出力層)のわずか2層からなる単純な構造である。入力層は高次元入力ベクトルを受け取る通路にすぎず演算をせず、実質的な学習は競合層で起きる。競合層は通常、四角形または六角形の格子に配列されたニューロンで構成され、各ニューロンは入力と同じ次元の重み(参照)ベクトルを一つずつ持つ。すなわち入力が20次元なら全ニューロンも20次元の重みベクトルを持ち、このベクトルがそのままそのニューロンが代表する「原型(prototype)」パターンとなる。

構造的に入力層と競合層は完全結合(fully connected)されており、一つの入力ベクトルがすべての競合層ニューロンに同時に伝えられる。ただし一般的なニューラルネットワークのように重み和を次の層へ伝播するのではなく、各ニューロンが自身の重みベクトルと入力の「類似度(距離)」を計算するためだけに結合が使われる点が異なる。すなわちSOMにおける結合重みは信号を伝える通路ではなく、そのニューロンが記憶する代表パターンそのものである。この観点の違いを理解すれば、SOMがなぜ逆伝播なしでも学習されるのかが自然に理解できる。

入力が入ると、SOMは全ニューロンの重みベクトルと入力ベクトルの間の距離(主にユークリッド距離)を計算し、最も近いニューロンを勝者、すなわちBMU(Best Matching Unit) に選定する。この勝者選定が「競争」に当たる。次にBMUだけでなく、格子上でBMU周辺にある近傍ニューロンの重みも併せて入力の方へ引き寄せる。このとき近傍をどれだけ強く引くかは、BMUからの格子距離に応じて減少する近傍関数(neighborhood function、主にガウシアン) が決める。近い近傍は大きく、遠い近傍は弱く更新されるため、学習が繰り返されると格子上の隣接ニューロンが互いに類似した重みを持つようになり、位相が保存される。ここで留意すべき点は、「近傍」が入力空間ではなく出力格子上の位置で定義されるということであり、これが高次元の近傍関係を2次元に投影するメカニズムである。

構成要素 内容
入力層 高次元入力ベクトルを受け取る通路(演算なし)
競合層(出力層) 2D格子ニューロン、各ニューロンは重みベクトルを保有
重みベクトル 入力と比較される参照ベクトル(ニューロンの原型パターン)
BMU(Best Matching Unit) 入力と最も類似した勝者ニューロン
近傍関数 BMU周辺ニューロンを併せて更新(ガウシアン)、半径減少
学習率 重み移動の幅、学習の進行につれ減少

距離尺度の選択も結果を変える要素である。標準SOMはユークリッド距離を用いるが、テキスト・疎ベクトルにはコサイン距離、スケールの異なる混合型変数にはマハラノビス距離などを用いることができ、尺度が変われば「類似」の定義が変わり、マップのクラスタ境界も変わる。したがってドメイン特性に合った距離尺度と変数スケーリングを併せて設計することが、良いマップを得る前提条件である。

格子の形状と大きさも設計要素である。ニューロンを四角形格子に配列すると各ニューロンの近傍が上下左右4個(または対角を含め8個)で定義され、六角形格子に配列すると近傍が6個になり方向の偏りが減って位相表現がより自然になるため、可視化品質を重視するときに好まれる。格子サイズ、すなわちニューロンの総数はそのままマップの解像度を決めるが、小さすぎると異なるクラスタが一つのニューロンにまとまって区別できず、大きすぎるとデータのない空のニューロンが増え学習コストが大きくなる。経験的にはデータ数の平方根に比例する水準(例: 標本数の約5√N程度)から出発して調整する慣行があるが、これは絶対的な規則ではなく、目的とデータに合わせて調整する出発点と見るべきである。

3. 学習手順

flowchart TB
  A["重み初期化<br/>(ランダムまたはPCAベース)"] --> B["入力ベクトル x を提示"]
  B --> C["全ニューロンとの距離計算"]
  C --> D["最小距離ニューロンをBMUに選定"]
  D --> E["BMUと近傍の重みを<br/>入力方向へ更新"]
  E --> F["学習率・近傍半径の縮小"]
  F --> G{"収束または<br/>最大反復に到達?"}
  G -->|"いいえ"| B
  G -->|"はい"| H["学習終了<br/>(位相保存マップ完成)"]

SOM学習の核心は「勝者を選び、勝者とその近傍を入力の方へ少しずつ移動させることを繰り返す」 ことである。重み更新規則は概念的に新しい重み = 既存の重み + 学習率 × 近傍強度 × (入力 − 既存の重み)の形であり、ニューロンの原型ベクトルを観測された入力の方へ少しずつ引き寄せるものである。近傍強度はBMUからの格子距離dと現在の近傍半径σに対してガウシアンexp(−d²/2σ²)の形で与えられるのが一般的で、BMU自身は1に近く、遠ざかるほど0へ収束する。この規則はヘブ学習(Hebbian learning)の競合的変形であり、「頻繁に勝つニューロンとその近傍が当該入力パターンを代表するよう特化する」という自己組織化の原理を数式で実装したものである。ここで決定的に重要な点は、学習が進むにつれ学習率(learning rate)と近傍半径(neighborhood radius)を徐々に縮小することである。

この漸進的な縮小は二つの局面で理解できる。初期整列(ordering)段階では広い近傍半径と大きな学習率でマップ全体の大枠を定め、ランダムに初期化された重みがデータ分布のおおよその形状に合わせて全域的に整列する。続く微調整(convergence)段階では近傍半径をほぼBMU自身に近く狭め、学習率も下げて、各ニューロンが担当領域の細部構造を精密に整える。もし近傍半径を最初から狭くすると、マップがねじれて(topological defect)位相が崩れ、逆に最後まで広くするとマップがつぶれて細部のクラスタを区別できない。したがって半径・学習率の減少スケジュールはSOM品質を左右する核心的なハイパーパラメータである。

この二局面の構図は、最適化一般でいう「探索(exploration)の後に活用(exploitation)」戦略と相通じる。序盤の大きな学習率・広い半径は局所最適解に性急に陥らないよう広く探索させ、終盤の小さな値は見つけた構造を安定的に収束させる。学習品質は二つの定量指標で点検するのが慣行である。一つは各入力とそのBMUの間の平均距離である量子化誤差(quantization error) でマップがデータをどれだけよく近似するかを、もう一つは入力の1位・2位のBMUが格子上で隣接している割合である位相誤差(topographic error) で位相がどれだけよく保存されたかを表す。二つの指標はしばしば相反するため(解像度を上げると位相が揺らぎうる)、均衡点を見つけることが調整の目標である。

順序 内容
1 重みベクトルの初期化(ランダムまたはデータベース)
2 入力ベクトルの提示
3 全ニューロンと距離比較 → 最小距離ニューロンをBMUに選定
4 BMUと近傍の重みを入力方向へ更新
5 学習率・近傍半径を縮小しつつ2~4を反復
6 収束時に終了、U-Matrix等で可視化

初期化方式も収束速度と品質に影響を与える。重みを完全にランダムで始めると初期整列段階でマップが大きく揺らぎ収束が遅いが、データの主成分(PCA)の二軸が張る平面に格子を線形的に配置して始めると、すでにデータ分布におおよそ整列した状態から出発するため、はるかに速く安定して収束する。実務のライブラリがPCAベースの初期化をオプションとして提供する理由がここにある。

学習方式には、入力を一つずつ提示して直ちに更新するオンライン(逐次)学習と、全データを一度に考慮して各ニューロンの重みを担当入力の(近傍加重された)平均へ更新するバッチ(batch)学習の二つがある。オンライン方式は入力提示の順序にやや敏感だがストリーミングデータへの適用に向き、バッチ方式は順序依存性がなく並列化が容易で、大容量データで速く収束するという実務的利点がある。いずれの方式でも位相保存という目標と、半径・学習率の減少という原理は同一である。

学習が終わったSOMは単なるクラスタリング結果ではなく一つの「マップ」を産出し、これを解釈する代表的な道具がU-Matrix(Unified Distance Matrix) である。U-Matrixは隣接するニューロン間の重み距離を色(濃淡)で表現するが、距離の大きい境界は濃く現れてクラスタ間の「谷」を、距離の小さい領域は淡く現れて一つのクラスタの「盆地」を視覚的に浮かび上がらせる。このほか、各ニューロンに写像された入力数を示すヒートマップ(hit map)、特定変数の値分布をニューロンごとに色付けする成分面(component plane)などを併用すれば、どの変数がどのクラスタを特徴づけるかまで解釈できる。分析者はこうした可視化を通じて、データにいくつの自然なクラスタがあるか、クラスタがどのように隣接しているかを一目で把握する。

4. SOMと他手法の違い — 比較および事例

SOMとMLP(多層パーセプトロン)など一般的な教師あり学習ニューラルネットワークは、目的そのものが異なる。MLPは正解を教え、予測誤差を逆伝播(backpropagation) して分類・回帰を学習する一方、SOMは正解なしに競合学習(勝者総取り) でデータの構造を把握し、クラスタリング・可視化する。誤差逆伝播がないという点、位相を保存した2Dマップを出力するという点が根本的な違いである。学習の協力方式も対照的である。教師あり学習は全ニューロンが誤差を分かち合って共に調整される一方、SOMは勝者とその近傍のみが更新され遠いニューロンはそのまま残る局所的協力を取る。この局所性が、マップ上の異なる領域が異なるパターンを分業して代表するようにする原動力である。一方、同じ教師なしクラスタリングであるK-meansと比較すると、K-meansは事前にクラスタ数Kを定め各点を最も近い中心に割り当てるだけでクラスタ間関係を表現できないのに対し、SOMは多数のニューロン(K-meansの中心に相当)を格子に配置し、その隣接性でクラスタ間の位相まで示す。実際にSOMは「位相制約のかかったK-meansの一般化」とも解釈される。

具体的な事例を見ればSOMの実務価値は明確になる。第一に、顧客セグメンテーションで数十の購買・行動変数をSOMに学習させると、類似した顧客群がマップ上の隣接領域に集まり、マーケティングのターゲットグループとその間の移行関係を視覚的に把握できる。例えば30個の変数で表現された10万人の顧客を20×20(400ニューロン)格子に写像すると、400次元以下に要約されたマップ上で「高頻度・高額購買層」と「離脱リスク層」がどこに隣接しているかを目で確認し、移行マーケティング戦略を設計できる。第二に、金融の不良・信用リスク分析で企業の財務比率数十個を2次元マップに展開し、不良の兆候がある企業がどの領域に分布するかを早期警報に活用する(フィンランドで実際の企業倒産分析にSOMが適用された研究事例がよく知られている)。第三に、製造工程・設備の異常検知で正常運転データからマップを作っておけば、新しい観測がマップ上の正常領域から遠く離れた(BMUとの距離が大きい)位置へ写像されるとき、これを異常信号として捉えられる。この三つの事例はいずれも「クラスタリング + 関係可視化」を一度に提供するというSOMの特性を活用したものである。

ここでSOMとK-meansの違いが実務的になぜ重要かを改めて指摘するに値する。同一の顧客データにK-meansを適用すると「クラスタ1~5」というラベルは得られるが、クラスタ2がクラスタ3と隣接なのか正反対なのかは分からず、マーケティング担当者がクラスタ間の移行経路を設計しづらい。一方SOMは隣接クラスタをマップ上の隣接領域に配置するため、「顧客がこの状態からあの状態へ移動する」というストーリーを視覚的に裏づける。この「関係の可視性」が、SOMを単なるクラスタリングより説得力ある意思疎通の道具にする点である。

区分 SOM K-means MLP等の教師あり
学習方式 教師なし 教師なし 主に教師あり
学習規則 競合学習(勝者+近傍) 中心の再計算を反復 誤差逆伝播
目的 クラスタ・次元削減・可視化 クラスタ分割 分類・予測
クラスタ間関係 位相で表現 表現できない 該当なし
出力 位相保存2Dマップ クラスタラベル・中心 クラス・連続値

一方、SOMは純粋な教師なしだけにとどまらない。学習後に各ニューロン(クラスタ)へ少量のラベルを付与し、新しい入力をそのニューロンのラベルで分類する準教師あり(semi-supervised)活用が可能であり、ラベル情報を学習に部分的に反映する教師あり変形(LVQ、Learning Vector Quantization)もKohonenが併せて提案した。すなわちSOM系は教師なし可視化から準教師あり分類までスペクトルをなし、問題の性格に応じて柔軟に応用される。

5. 深化: 変形手法と最新動向

SOMは1980~90年代に確立された古典的手法だが、様々な変形と現代的な再解釈へとつながっている。基本SOMは格子サイズ(ニューロン数)をあらかじめ固定せねばならないが、データに合わせて格子が成長するGrowing SOM/GHSOM(Growing Hierarchical SOM) は必要な箇所にニューロンを追加・階層化してこの制約を緩和する。GHSOMは特にデータが複雑な階層構造を持つとき、上位マップの一つのニューロンが再び下位マップへ展開される方式で大分類-小分類を自動的に浮かび上がらせ、文書分類・Webログ分析などで活用される。またSOMのヒューリスティックな性格を確率モデルに再定式化したGTM(Generative Topographic Mapping、Bishop等) は明示的な目的関数と確率的解釈を提供し、収束性・比較可能性を改善する。このほか、時系列・文字列のような構造的データのための再帰型SOM、距離尺度を学習で調整する変形など、多様な拡張が存在する。

SOMの学習には明示的に最小化する単一の損失関数が存在しないという点も指摘しておくに値する。基本SOMは競合・協力という局所規則の反復によって組織化が創発するヒューリスティックに近く、そのため異なる初期化・パラメータ間の定量的比較が難しい。GTMがこのSOMを潜在変数上のガウシアン混合という生成確率モデルへ再定式化した理由がここにあり、おかげで尤度(likelihood)という明確な尺度でモデルを比較し、欠測値・不確実性を原理的に扱えるようになった。実務ではこうした理論的厳密性と実装の単純さ・解釈の容易さの間のトレードオフを考慮して手法を選ぶ。

近年ではt-SNE・UMAPのような非線形の次元削減・可視化手法が広く使われ、SOMの可視化の役割が一部代替されたが、SOMは依然として固有の強みを持つ。t-SNE/UMAPが各データ点を2次元に撒き散らすにとどまる一方、SOMは格子ニューロンという安定した座標系(コードブック) を学習するため、新しいデータを既存のマップへ直ちに写像(オンライン分類)でき、各ニューロンが代表原型ベクトルを持つため結果の解釈が容易である。例えばt-SNEは新しいデータが入ると原則として全体を再計算せねばならないが、学習済みのSOMは新しい観測のBMUを見つけるだけでよいため、リアルタイムのストリーミング環境に適する。このため産業現場の設備状態モニタリング、品質管理、ベクトル量子化(VQ)ベースの信号・画像圧縮などで実用的に使われ続けている。また深層学習の潜在表現(埋め込み)をSOMで再び可視化し、深層モデルが学習した特徴空間の構造を人が解釈しようとする試みのように、深層学習と結合する方向の研究も進められている。

6. 考慮事項および示唆点

  1. 役割の明確化 — 予測モデルではなく探索・説明の道具である。 技術士の観点では、SOMは正確な予測を出す最終モデルというより、本格的なモデリングに先立ってデータの構造を理解し、ステークホルダーと視覚的に意思疎通する探索的分析(EDA)・説明の道具として位置づけるのが適切である。K-means・PCA・t-SNEなどと相互補完的に組み合わせるべきである。

  2. ハイパーパラメータ感度の管理が必須である。 格子サイズ・初期学習率・近傍半径とその減少スケジュール・学習反復数に結果が大きく左右されるため、位相保存誤差・量子化誤差のような定量指標でマップ品質を評価し、反復調整せねばならない。再現性のため初期化方式とパラメータを記録・管理する体系が必要である。

  3. データ前処理が結果を左右する。 SOMは距離ベースのため、変数間のスケール差が大きいと特定の変数が距離計算を支配する。標準化(正規化)と欠測・異常値処理が先行せねばならず、カテゴリ変数は適切なエンコーディングが必要である。

  4. 拡張性と代替手法の検討。 データ規模が非常に大きい、あるいは超高次元のときは学習コストと解釈の限界があるため、ミニバッチ・並列実装やGTM・UMAPなど代替との比較検討が必要である。目的が純粋な可視化ならUMAPが、オンライン写像・原型解釈が重要ならSOMが有利という具合に、目的に合わせて選ぶ。

  5. 結果の解釈と検証の責任。 SOMマップが示すクラスタ境界はデータとパラメータの産物であるため、導き出されたクラスタが実際にビジネス的に有意義かをドメイン専門家と共に検証し、過剰解釈を戒めねばならない。

  6. モデルガバナンス・再現性の観点。 SOMを異常検知など運用システムに組み込む場合、学習に用いたデータ・パラメータ・バージョンを記録し、データ分布の変化(drift)に応じてマップを周期的に再学習する管理体系が必要である。説明の道具という強みを生かすには、マップの解釈根拠(成分面・U-Matrix)を併せて文書化し、意思決定の追跡可能性を確保せねばならない。

総合すると、SOMは華やかな予測性能で勝負する手法ではないが、「高次元データを人が理解できるようにする」という目的では依然として代替しがたい位置を占める。技術士としては、深層学習・伝統的統計・最新の可視化手法が共存する分析パイプラインの中で、SOMをどの段階にどんな目的で配置するかを判断し、その結果の信頼性と限界を明確に意思疎通する能力が求められる。

参考資料


一言まとめ: SOMは競合学習ベースの教師なしニューラルネットワークで、高次元データを位相を保存しつつ2D格子へ写像(クラスタ・可視化)し、勝者(BMU)と近傍を併せて更新し学習率・半径を縮小して収束させる点で、誤差逆伝播の教師あり学習や関係を見られないK-meansと目的・学習規則が異なり、探索的分析・説明の道具として実務に活用される。