自己組織化写像
出典: フリー百科事典『ウィキペディア(Wikipedia)』
自己組織化写像(じこそしきかしゃぞう, 英語:Self-organizing maps, SOM)は
自己組織化マップとも呼ばれる。
以下、英語版からの翻訳です。一部加筆してあります。
人工ニューロンを格子状に配置し、(入力層からの)シナプス結合の重みを学習すべき入力ベクトルの集合(トレーニングセット)と適合するように変化させる。
コホネン(コホーネン)(en:Teuvo Kohonen)が最初に提案したので、コホネンマップ(コホーネンマップ、コホーネンネットワーク)とも呼ばれる。
目次 |
[編集] 数学的アプローチ
[編集] 前提
ネットワークにおける実際の学習はベクトル量子化を参考にしている。技術的には「教師(監督)なし学習」とはいうものの、「我々には望んだ結果がある」という点で「監督」がついている(SOMにおいては、BMUの選定がそれ。算法参照)。
もうすこし算法をみていこう。10×10の人工ニューロン(以下「ノード」)の配列を作る(「競合層」)。それぞれのノードには一つずつの重みベクトルがあり、自分の「物理的な位置」について全智である(つまり、配列の添字を自分自身が知っている)。各ノードが持つ重みベクトルの成分は入力ベクトル(後述)と同じ次元を持つ。それらの重みベクトルの内容は初期化時にランダマイズされることによく注意して欲しい。
さて、ここでマップへの入力を用意する。通例に倣って、色を表現するベクトルを三つ作ろう。計算機科学の世界では、色は赤、緑、青の三つの要素で表現できる。従って、入力ベクトルは3要素を持ち(3次元ベクトルである)、一つ一つのベクトルには色空間の中に対応点がある。
R = <255, 0, 0> G = <0, 255, 0> B = <0, 0, 255>
[編集] 変数
ベクトルは太字で表す。
- t = 現在の繰り返し回数
- λ = 最大繰り返し回数
- Wv = 現在の重みベクトル
- D = 目的とする入力
- Θ(t) = BMU(後述)からの距離によって変化する値(近傍半径)
- α(t) = 時間によって変化する係数(学習係数)
[編集] 算法のステップ
- 全重みベクトルをランダマイズする
- 入力ベクトルを一つ用意する
- マップ上の全てのノード一つ一つに対して、
- 入力ベクトルと各ノードの重みベクトル間の一致値を計算する。一致値にはユークリッド的な距離が用いられる(=各要素の差の自乗和)
- 各ノードを検査して、最も一致値が小さい(ベクトル間の距離が短い=もっとも良く一致した)ノードを見つける。このノードをBMUと呼ぶ (Best Maching Unit)。
- BMUの近傍のノード(各ノードの「位置」が判っているので、「近傍」のノードを探し出すことができる)の重みベクトルを次のように変更し、入力ベクトルに近付ける。
- Wv(t + 1) = Wv(t) + Θ(t)α(t)(D(t) - Wv(t))
- 近傍のノード以外は重みを変化させない。
- 繰り返し回数が増える程、Θは適用する範囲を狭くし、αも小さい値にする(近傍半径の収縮と学習係数の減少。下記GTM参照)
- Wv(t + 1) = Wv(t) + Θ(t)α(t)(D(t) - Wv(t))
- λに達していなければ2.に戻る。
入力ベクトルを様々に振れば、このような繰り返しによって、似た性質のノード(似た重みベクトルをもったノード)が競合層の上で「物理的な」クラスタを形成する。
[編集] この算法についての解析的アプローチ
SOMのアルゴリズムにはどんな次元の特徴ベクトルでも入力できるが、多くの応用では、入力の次元は高い。出力されるマップは1次元や2次元など、入力と異なる次元でも構わない(「近傍」が定義できればよい(→位相幾何学))。しかしポピュラーなのは2次元もしくは3次元のマップである。なぜなら、SOMは次元の拡大でなく、主に次元の削減に用いられるからである。
アルゴリズムはニューラルネットの用語を用いることで容易に記述できる。各々のニューロンは出力のマップ上にそれぞれ固有の「物理的な」位置を持っている。入力に対して、一番近いウェイトベクトルを持っていたニューロンを「勝者」と呼び、勝者の重みベクトルはより入力ベクトルに近くなるように修正される。この「勝者が全部とる (winner-take-all, WTA)」プロセスは競合学習と呼ばれる。
それぞれのニューロンは近傍を持っている。あるニューロンが勝者となった場合、その近傍のニューロンもまた重みベクトルを修正される。 このプロセスを、全てのデータについて、何度も(通常、たくさん)繰り返す。
このネットワークは最終的には、入力データセット中のグループまたはパターンを出力ノードに関連付ける結果となる。それら関連づけられたニューロンは入力パターンの名前で呼んでもよいことになる(色のベクトルを学習したなら色ニューロンのように)。
他の多くのニューラルネット同様、SOMにも2つのフェーズがある。
- 学習プロセスにおいては、写像が構築される。ニューラルネットは競合学習を用いて自己組織化する。ネットワークは多くの入力を必要とする。次のフェーズで出現しそうな入力ベクトルをあらん限り食わせるといい(あれば、だが)。さもなければ、入力ベクトルを何度も繰り返し与える。
- 写像プロセスにおいては、新しい入力ベクトルは速やかにマップ上の位置が与えられ、自動的に分類される。ただ一つの勝者ニューロンが存在する。このニューロンは重みベクトルが入力ベクトルに最も近いものであり、各ニューロンの重みベクトルと入力ベクトルとのユークリッド距離を計算することで簡単に決定できる。
generative topographic map (GTM) はSOMの新しいバージョンの一つである。GTMは1996年にBishop, Svensen, Williamsの論文中で初めて発表された。GTMは確率モデルであり、おそらく収束する。また、近傍半径の収縮や学習係数の減少を必要としない。
GTMは生成モデルである。入力データを「まず低次元空間側で確率的に点を選び、それを観測された高次元入力データの空間上の点に滑らかな関数で写像した後でノイズを加えたもの」と仮定する。低次元側の確率分布、滑らかな関数、そして高次元側でのノイズのパラメータは全てEMアルゴリズム (en:EM_algorithm) によって入力データから学習される。
[編集] ニューラルネットとしてのSOM
大脳皮質の視覚野は、コラム構造を持っている。このコラム構造は生得的なものではなく、学習によって得られるものである。この視覚野におけるコラム構造の自己組織化をモデル化したものが自己組織化写像である。WillshawとVon Der Malsburgによって1976年に提案された。
[編集] クラスタリング手法としてのSOM
SOMはk平均法に位相の概念を入れたものである。また、k平均法はBL-SOMにおいて近傍半径を0、学習係数を1に固定したものと等価である。
[編集] 可視化手法としてのSOM
高次元のデータや、ベクトル空間上にないデータを、2次元の平面上などのより低次元で容易に観察できる空間に写像する(次元削減する)ことで可視化できる。次元削減によって可視化を行う手法としては他に主成分解析などがある。曲面上に分布している場合は主成分解析ではうまく削減できないが、SOMなら高次元空間上でのニューロンの配置が曲面にフィットするよう変形するので表示用の空間を有効に利用できる。
[編集] アルゴリズム
SOMのアルゴリズムは大きく分けて2つ存在する。一つは大脳視覚野のモデルであったことに由来するオンライン学習モデルである。このモデルでは、データが入力されるたびに学習が行われる。後から入力されたデータのウェイトが高くなる傾向がある。また、各ニューロンの初期値はランダムに設定される。
一方、SOMを解析手法と見て、データの入力順序に依存する性質を取り除くための変更が加えられたものがBL-SOMである。BL-SOMではニューロンは主成分解析を用いて求められた主成分軸の張る空間上に整然と初期配置される。また、全てのデータを各々のニューロンに分類し終わった後で各々のニューロンが同時に学習を行う。
[編集] SOMのバリエーション
- バッチラーニングSOM (Batch Learning SOM, BL-SOM): 学習順序に依存する性質を除去したもの
- 中央値SOM (Median SOM): 非ベクトル的データに応用可能にしたもの
- 確率的SOM? (SSOM)
- 階層的SOM (Hierarchical Self-Organizing Map, Hierarchical Feature Map, HFM)
- 双曲面SOM (Hyperbolic SOM, HSOM)
- 球面SOM (Spherical SOM)