「自己組織化写像」の版間の差分

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