Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

自己組織化マップ (SOM) とは?
SOMを作る おおまかな流れ
こんなデータセットがあるとする
2次元マップのサイズを決める
2次元の各グリッドにニューロンを配置する
サンプルとニューロンとの距離を計算する
最も距離の近いニューロンを見つける
勝者ニューロンをサンプルに少し近づける
勝者ニューロンに近いのもサンプルに近づける
二次元マップの学習を繰り返す
SOMの特徴
SOMの問題点
SOMの問題点の解決策

Hiromasa Kaneko

August 04, 2017
Tweet

More Decks by Hiromasa Kaneko

Other Decks in Science

Transcript

  1. SOMを作る おおまかな流れ 2次元マップのサイズを決める • 10×10 とか、4×6 とか 2次元の各グリッドにニューロンを配置する • 10×10なら、100個のニューロン

    • 各ニューロンは、データセットの変数の数と同じ要素数をもつベクトル • 要素の値はランダム 以下を繰り返す • データセットのサンプルごとに最もユークリッド距離の近いニューロン (勝者ニューロン) を⾒つける • 勝者ニューロンをそのサンプルに少し近づける • 勝者ニューロンに近いニューロンも、そのサンプルに少し近づける 2
  2. 2次元の各グリッドにニューロンを配置する 各ニューロン wi,j は変数の数 n の⻑さをもつベクトル • wi,j = [

    wi,j,1 wi,j,2 ・・・ wi,j,k ・・・ wi,j,m-1 wi,j,m ] 最初は wi,j,k を乱数とする (ニューロンの初期化) 5 1 2 3 4 1 2 3 4 5 6 w1,1 w1,2 w1,3 w1,4 w1,5 w1,6 w2,6 w3,6 w4,6 w4,5 w4,4 w4,3 w4,2 w4,1 w3,1 w2,1 w2,2 w2,3 w2,4 w2,5 w3,5 w3,4 w3,3 w3,2
  3. サンプルとニューロンとの距離を計算する 各サンプルを x(j) = [ x1 (j) x2 (j) ・・・

    xi (j) ・・・ xm-1 (j) xm (j) ] とする 1つのサンプルと、すべてのニューロンとの間でユークリッド距離を計算する • 例) x(1) と w4,3 との間のユークリッド距離 d 6 ( ) ( ) ( )2 1 1 4,3 4,3, 1 n i i i d x w = = − = − ∑ x w
  4. 最も距離の近いニューロンを⾒つける 勝者ニューロン︓あるサンプルとの距離が最も⼩さいニューロン • 例) x(1) について、勝者ニューロンは w2,5 7 1 2

    3 4 1 2 3 4 5 6 w1,1 w1,2 w1,3 w1,4 w1,5 w1,6 w2,6 w3,6 w4,6 w4,5 w4,4 w4,3 w4,2 w4,1 w3,1 w2,1 w2,2 w2,3 w2,4 w2,5 w3,5 w3,4 w3,3 w3,2 勝者ニューロン
  5. 勝者ニューロンに近いのもサンプルに近づける 勝者ニューロンを w2,5 とすると、その近くに存在するニューロンも、 wnew2,5 ほどではないがサンプル x(1) に近づける 9 1

    2 3 4 1 2 3 4 5 6 w1,1 w1,2 w1,3 w1,4 w1,5 w1,6 w2,6 w3,6 w4,6 w4,5 w4,4 w4,3 w4,2 w4,1 w3,1 w2,1 w2,2 w2,3 w2,4 w2,5 w3,5 w3,4 w3,3 w3,2 勝者ニューロン
  6. 勝者ニューロンに近いのもサンプルに近づける 勝者ニューロンを w2,5 とすると、たとえば、その近くのニューロン w2,4 の 修正後のニューロン wnew2,4 は、 10

    ( ) ( ) ( ) 1 2,4 2,4 2,4 g e α = + − × new w w x w g(e)︓近傍関数 e︓⼆次元マップ上での勝者ニューロンとの距離 g(e) e 1 近傍関数の例