「自己組織化マップ」の版間の差分

提供:脳科学辞典
ナビゲーションに移動 検索に移動
(ページの作成:「古川 徹生 九州工業大学 英語 Self-Organizing Map, Kohonen map <br> 略称 SOM<br> 同義語 自己組織化写像<br> {{box|text= 自己組織化マップ…」)
 
編集の要約なし
 
(同じ利用者による、間の18版が非表示)
1行目: 1行目:
古川 徹生 九州工業大学
<div align="right"> 
<font size="+1">[https://researchmap.jp/altfluss 古川 徹生]</font><br>
九州工業大学 大学院生命体工学研究科 脳情報専攻<br>
DOI:<selfdoi /> 原稿受付日:2021年8月21日 原稿完成日:2022年1月7日<br>
担当編集委員:[https://researchmap.jp/wagaKBR_ 我妻 広明](九州工業大学大学院 生命体工学研究科 人間知能システム工学専攻)<br>
</div>
英:self-organizing map, Kohonen map <br>
英略称:SOM<br>
同義語:自己組織化写像<br>


英語 Self-Organizing Map, Kohonen map <br>
{{box|text= 自己組織化マップはT. Kohonenによって提案された教師なしニューラルネットの一種である。自己組織化マップはもともと大脳の機能局在の自己組織的な分化現象を説明する数理モデルに由来する。しかし、データ解析へ応用するため、ニューロン間の結合やダイナミクスが簡約化され、計算の効率化が図られている。自己組織化マップの学習原理はwinner-take-allによる競合学習とニューロンの空間的配置に基づく近傍学習の組み合わせである。自己組織化マップはデータの次元削減や可視化を行うニューラルネットであり、高次元データの可視化やデータマイニングなどの目的で幅広い分野で利用されてきた。}}
略称 SOM<br>
同義語 自己組織化写像<br>


{{box|text= 自己組織化マップはT. Kohonenによって提案された教師なしニューラルネットの一種である。自己組織化マップはもともと大脳の機能地図の自己組織化現象を説明する数理モデルに由来する。しかし実データ解析へ応用するため、ニューロン間の結合やダイナミクスが簡約化され、計算の効率化が図られている。自己組織化マップの学習原理はWinner-Take-Allによる競合学習とニューロンの空間的配置に基づく近傍学習の組み合わせである。自己組織化マップはデータの次元削減や可視化を行うニューラルネットであり、高次元データの可視化やデータマイニングなどの目的で幅広い分野で利用されてきた。}}
==脳の数理モデルとしての自己組織化マップ==
 [[大脳皮質]]には[[機能局在]]性があり、機能の類似する[[ニューロン]]は[[皮質]]上で隣接して分布することが知られる。また[[感覚]]系・[[運動]]系では身体的な空間的トポロジーが保存される[[トポグラフィックマッピング]]や[[体部位再現]]が知られる。これらの空間的な機能分化が自己組織的に生じる原理について、形式ニューロンを用いた数理モデルの研究が行われた。たとえばMarsburg<ref name=vonderMalsburg1973><pubmed>4786750</pubmed></ref>やAmari<ref name=Amari1980><pubmed>6246997</pubmed></ref>は外界からの刺激によりニューロンの機能局在と位相的な配置が自己組織化することを示した。


==脳の数理モデルとしての自己組織化マップ==
 このような空間的機能分化の自己組織化は2種に分けられる<ref name=Kohonen2006><pubmed>16774731</pubmed></ref>
 大脳皮質には機能局在性があり、機能の類似するニューロンは皮質上で隣接して分布することが知られる。また感覚系では入力の空間的トポロジーが保存されるトポグラフィックマッピングが知られる。これらの空間的な機能分化が自己組織的に生じる原理について、形式ニューロンを用いた数理モデルの研究が行われた。たとえばMarsburg<ref name=vonderMalsburg1973><pubmed>4786750</pubmed></ref>[14]やAmari<ref name=Amari1980><pubmed>6246997</pubmed></ref>[1]は外界からの刺激によりニューロンの機能局在と位相的な配置が自己組織化することを示した。
 
 タイプ1は[[レチノトピー]]を典型例とするトポグラフィックマッピングであり、入力が類似するニューロンが皮質上で近くに配置される自己組織化である。
 
 タイプ2は[[視覚皮質]]における方向選択性ニューロンなどの機能局在であり、出力が類似するニューロンが皮質上で近くに配置される自己組織化である。


 このような空間的機能分化の自己組織化は2種に分けられる<ref name=Kohonen2006><pubmed>16774731</pubmed></ref>[5]。タイプ1はレチノトピーを典型例とするトポグラフィックマッピングであり、入力信号の類似性に基づく自己組織化である。タイプ2は視覚系における方向選択性ニューロンなどの機能マップであり、出力信号の類似性に基づく自己組織化である。Kohonenはタイプ2の自己組織化の数理モデルを元に、ニューロン間の結合やダイナミクスを簡約化し、実データ解析に応用可能なシンプルなアルゴリズムに帰着した<ref name=Kohonen1982>'''T. Kohonen.(1982).'''<br>Self-organized formation of topologically correct feature maps. Biological Cybernetics, 43(1):59-69 [https://doi.org/10.1007/BF00337288 PDF]</pubmed></ref>[4]。これが自己組織化マップである。自己組織化マップは初期の提案からいくつかの改良を重ねており、最終形であるバッチ型自己組織化マップにおいては安定した学習が達成できる一方で、形式ニューロンを用いた数理モデルからは大きく様変わりしている<ref name=Kohonen2013><pubmed>23067803</pubmed></ref>[6]
 Kohonenはタイプ2の自己組織化の数理モデルを元に、ニューロン間の結合やダイナミクスを簡約化し、実データ解析に応用可能なシンプルなアルゴリズムに帰着した<ref name=Kohonen1982>'''T. Kohonen.(1982).'''<br>Self-organized formation of topologically correct feature maps. Biological Cybernetics, 43(1):59-69 [https://doi.org/10.1007/BF00337288 PDF]</ref>。これが自己組織化マップである。自己組織化マップは初期の提案からいくつかの改良を重ねており、最終形であるバッチ型自己組織化マップにおいては安定した学習が達成できる一方で、形式ニューロンを用いた数理モデルからは大きく様変わりしている<ref name=Kohonen2013><pubmed>23067803</pubmed></ref>。


==ニューラルネットとしての自己組織化マップ==
==ニューラルネットとしての自己組織化マップ==
[[ファイル:Furukawa Self organizing map fig1.png|サムネイル|'''図1. 自己組織化マップによる動物マップ'''<br>下表のデータをバッチ型自己組織化マップで学習した結果。哺乳類/鳥類、肉食/草 食、大型/小型などの動物の特徴に基づき、類似した動物の地図を作っている。このマップはU-matrix法<ref name=Ultsch1993>'''A. Ultsch. (1993).'''<br>Self-organizing neural networks for visualization and classification. In O. Opitz, B. Lausen, and R. Klar, editors, Information and Classification, pages 307-313. Springer, Berlin.
[https://doi.org/10.1007/978-3-642-50974-2_31 PDF]</ref>で色付けしており、赤い領域がクラスタ境界を表す。]]
===入力と出力===
===入力と出力===
 自己組織化マップの入力は通常、高次元のベクトルデータセットである。一方、出力はデータセットを低次元(通常は2次元)に射影したものであり、データ分布を地図として可視化して見ることができる。また低次元マップ空間から高次元データ空間への写像も学習によって得られる。
 自己組織化マップの入力は通常、高次元のベクトルデータセットである。一方、出力はデータセットを低次元(通常は2次元)に射影したものであり、データ分布を地図として可視化して見ることができる。また低次元マップ空間から高次元データ空間への写像も、学習によって得られる。


'''図1'''は自己組織化マップにより得られた「動物マップ」である。入力データ('''表1''')は16種の動物データであり、それぞれ15次元のベクトルで表されている。マップ上で類似する動物(哺乳類や鳥類、肉食や草食)は互いに近くに配置されている。
 '''図1'''は自己組織化マップにより得られた「動物マップ」である。入力データ('''''')は16種の動物データであり、それぞれ15次元のベクトルで表されている。マップ上で類似する動物(哺乳類や鳥類、肉食や草食)は互いに近くに配置されている。


 学習が終了した後、得られたマップは主に3つの用途で使うことができる。第一は可視化によるデータマイニングである。動物マップの例ならば、どの動物が互いに似ているか、どのような動物クラスタが存在するかを知ることができる。第二は新規データをマップ上へ射影することである。これにより新規データがマップのどこに位置するかを可視化できる。またラベル付き学習データを用いた場合は、新規データのラベルを推定することも可能である。動物マップの例ならば、新規の動物がマップのどこに位置するかを示したり、その動物が哺乳類か鳥類かを推測したりできる。第三は、新規データの予測や生成である。たとえば2種の中間的な性質を持つ動物の特徴を予測することができる。
 学習が終了した後、得られたマップは主に3つの用途で使うことができる。第一は、可視化によるデータマイニングである。動物マップの例ならば、どの動物が互いに似ているか、どのような動物クラスタ(類似する動物群)が存在するかを知ることができる。第二は新規データをマップ上へ射影することである。これにより新規データがマップのどこに位置するかを可視化できる。またラベル付き学習データを用いた場合は、新規データのラベルを推定することも可能である。動物マップの例ならば、新規の動物がマップのどこに位置するかを示したり、その動物が[[哺乳類]]か[[鳥類]]かを推測したりできる。第三は、新規データの予測や生成である。たとえば2種の中間的な性質を持つ動物の特徴を予測することができる。


===構造と学習原理===
===構造と学習原理===
 自己組織化マップではニューロン(ユニット)が低次元(通常は2次元)のマップ空間に格子状に並んだ構造を持つ(図2)。これは皮質上にニューロンが並んでいるものに見立てられる。またマップ空間においてニューロンの位置は固定されている。これらニューロンへの入力はq次元のベクトルx = (x1 , . . . , xq )であり、すべてのニューロンへ等しく入力される。xはq個の感覚ニューロンから皮質ニューロンへの入力に相当する。
[[ファイル:Furukawa Self organizing map fig2.png|サムネイル|'''図2. 自己組織化マップのアーキテクチャ'''<br>ニューロンはマップと呼ばれる低次元(通常は2次元)空間に格子状に配置されている。また各ニューロンは参照ベクトル<math>\mathbf{m}_i</math>を保持している。入力データ<math>x</math>に対し、もっとも近い参照ベクトルを持つニューロンが「勝者」となる。そして勝者ニューロンとその近傍ニューロンは、参照ベクトル<math>\mathbf{m}_i</math>が入力データ<math>x</math>との誤差が小さくなるように学習する。]]
 自己組織化マップではニューロン(ユニット)が低次元(通常は2次元)のマップ空間に格子状に並んだ構造を持つ('''図2''')。これは皮質上にニューロンが並んでいるものに見立てられる。またマップ空間においてニューロンの位置は固定されている。これらニューロンへの入力は<math>q</math>次元のベクトル<math>x = (x_1 , . . . , x_q )</math>であり、すべてのニューロンへ等しく入力される。<math>x</math>は<math>q</math>個の感覚ニューロンから皮質ニューロンへの入力に相当する。
 
 一方、各ニューロンは参照ベクトルと呼ばれる<math>q</math>次元のベクトル値<math>m_i =(m_{i1},...,m_{iq})</math>を保持する(<math>i</math>はニューロンの番号)。参照ベクトルは感覚ニューロンから皮質ニューロンへのシナプス強度と解釈できる。ただし自己組織化マップでは各ニューロンが参照ベクトル値を記憶さえしていればよく、必ずしもシナプスという形で実装される必要はない。


 一方、各ニューロンは参照ベクトルと呼ばれるq次元のベクトル値mi =(mi1,...,miq)を保持する(iは ニューロンの番号).参照ベクトルは感覚ニューロンから皮質ニューロンへのシナプス強度と解釈できる。ただし自己組織化マップでは各ニューロンが参照ベクトル値を記憶さえしていればよく、必ずしもシナプスという形で実装される必要はない。
 自己組織化マップは[[競合原理]]と[[近傍学習原理]]という2つの原理で動作する。第一の競合原理では、入力データにもっとも合致するニューロンが勝者(最適ユニット: best matching unitとも呼ばれる)として選ばれる。すなわち入力データ<math>x</math>にもっとも近い参照ベクトル<math>m_i</math>を持つニューロンが勝者となり、そのデータを学習する権利をすべて獲得する。この競合原理は[[winner-take-all]]とも呼ばれる。


 自己組織化マップは競合原理と近傍学習原理という2つの原理で動作する。第一の競合原理では、入力データにもっとも合致するニューロンが勝者(最適ユニット: Best Matching Unitとも呼ばれる)として選ばれる。すなわち入力データxにもっとも近い参照ベクトルmiを持つニューロンが勝者となり、そのデータを学習する権利をすべて獲得する。この競合原理はWinner-Take-Allとも呼ばれる。
 第二の原理である近傍学習は、勝者が獲得した学習の権利を近傍のニューロンに分配するものである。勝者に隣接するニューロンには入力データを学習する権利が分配される一方で、勝者から離れたニューロンには学習の権利が与えられない。近傍学習原理により、勝者およびその近傍ニューロンの参照ベクトルは入力<math>x</math>との誤差が小さくなるように更新され、次に同じ入力が来たときに再び勝者になりやすくなる。この2つの学習原理が位相的な順序を自己組織化する上で重要な役割を果たす。
第二の原理である近傍学習は、勝者が獲得した学習の権利を近傍のニューロンに分配するものである。勝者に隣接するニューロンには入力データを学習する権利が分配される一方で、勝者から離れたニューロンには学習の権利が与えられない。近傍学習原理により、勝者およびその近傍ニューロンの参照ベクトルは入力xとの誤差が小さくなるように更新され、次に同じ入力が来たときに再び勝者になりやすくなる。この2つの学習原理が位相的な順序を自己組織化する上で重要な役割を果たす。


===オンライン型アルゴリズム===
===オンライン型アルゴリズム===
 自己組織化マップの学習アルゴリズムは、競合・協調・適合という3プロセスの繰り返し計算である<ref name=Haykin1998> aykin, S. (1998).<br>Neural Networks - A Comprehensive Foundation (2nd ed). Prentice Hall.</ref> [2]。時刻 tにおける入力データをx(t)とすれば、それにもっとも近い参照ベクトルを持つニューロンc(t)が時刻tの勝者となる:
 自己組織化マップの学習アルゴリズムは、[[競合]]・[[協調]]・[[適合]]という3プロセスの繰り返し計算である<ref name=Haykin1998>'''Haykin, S. (1998).'''<br>Neural Networks - A Comprehensive Foundation (2nd ed). Prentice Hall.</ref>。時刻<math>t</math>における入力データを<math>x(t)</math>とすれば、それにもっとも近い参照ベクトルを持つニューロン<math>c(t)</math>が時刻<math>t</math>の勝者となる:
c(t) = arg min ∥x(t) − mi (t)∥. i
 
::<math>c(t)=arg\ m\underset{i}in||\mathbf{x}_{(t)}-\mathbf{m}_i(t)||</math>
 
これが競合プロセスである。
これが競合プロセスである。
一方、各ニューロンが学習する量はマップ空間上で勝者c(t)に近いニューロンほど大きい。この配分は近傍関数h(·,·)で決まる。近傍関数は勝者ニューロンcに対してニューロンiがどれくらいデータを学習するかを表し、しばしばガウス関数が用いられる:
hci =h(zc,zi)=exp −2σ2(t)∥zc −zi∥2


 ここでzc,ziはマップ空間上でのニューロンc,iの座標であり、σは近傍の広さを決めるパラメータである。これが協調プロセスである。
 一方、各ニューロンが学習する量はマップ空間上で勝者<math>c(t)</math>に近いニューロンほど大きい。この配分は近傍関数<math>h(\cdot,\cdot)</math>で決まる。近傍関数は勝者ニューロン<math>c</math>に対してニューロン<math>i</math>がどれくらいデータを学習するかを表し、しばしばガウス関数が用いられる:


 最後に、入力x(t)との誤差が小さくなるように各ニューロンの参照ベクトルを更新する: mi(t + 1) := mi(t) + εhci (x(t) − mi(t)).
::<math>h_{ci} =h(\mathbf{z}_c,\mathbf{z}_i)=exp\left [-\frac{1}{2\rho^2(t)}||\mathbf{z}_c-\mathbf{z}_i||^2\right ]</math>


 ここでεは正の小さな定数である。これを適合プロセスである。
 ここで<math>\mathbf{z}_c</math>, <math>\mathbf{z}_i</math>はマップ空間上でのニューロン<math>c</math>, <math>i</math>の座標であり、<math>\rho</math>は近傍の広さを決めるパラメータである。これが協調プロセスである。


 このように入力x(t)を変えながら競合・協調・適合プロセスを繰り返すのがオンライン型自己組織化マップのアルゴリズムである。また近傍の広さσは学習の初期に広くしておき、学習が進むに連れて小さくしていく。このオンライン型アルゴリズムは、他の数理モデルや現実の脳との関連性を考えるうえで有用である。しかしオンライン型は学習時間がかかる上に計算結果が不安定であり、実データ解析には次に述べるバッチ型アルゴリズムを用いるべきであるとKohone自身も指摘している<refname=Kohonen2013><pubmed>23067803</pubmed></ref>[6]
 最後に、入力<math>x(t)</math>との誤差が小さくなるように各ニューロンの参照ベクトルを更新する:
 
::<math>\mathbf{m}_i(t + 1) := \mathbf{m}_i + \epsilon h_{ci}(\mathbf{x}(t)-\mathbf{m}_i(t)).</math>
 
 ここで<math>\epsilon</math>は正の小さな定数である。これを適合プロセスである。
 
 このように入力<math>x(t)</math>を変えながら競合・協調・適合プロセスを繰り返すのがオンライン型自己組織化マップのアルゴリズムである。また近傍の広さ<math>\rho</math>は学習の初期に広くしておき、学習が進むに連れて小さくしていく。
 
 このオンライン型アルゴリズムは、他の数理モデルや現実の脳との関連性を考えるうえで有用である。しかしオンライン型は学習時間がかかる上に計算結果が不安定であり、実データ解析には次に述べるバッチ型アルゴリズムを用いるべきであるとKohone自身も指摘している<ref name=Kohonen2013><pubmed>23067803</pubmed></ref>。


===バッチ型アルゴリズム===
===バッチ型アルゴリズム===
 入力データすべての集合をX={xn}とする。バッチ型アルゴリズムでは、学習の各ステップですべてのデータを用いる。
[[ファイル:Furukawa Self organizing map fig3.gif|サムネイル|'''図3. バッチ型自己組織化マップがデータ分布を学習する過程'''<br>自己組織化マップはデータ分布を多様体でモデル化する。]]
 
 入力データすべての集合を<math>X={\mathbf{x}_n}</math>とする。バッチ型アルゴリズムでは、学習の各ステップですべてのデータを用いる。
 
 競合プロセスでは、全データに対する勝者をすべて求める。
 競合プロセスでは、全データに対する勝者をすべて求める。
∀n, cn(t) = arg min ∥xn − mi(t)∥ i
 
続く協調プロセスでは、すべてのデータとニューロンの組み合わせについて学習量を決定する。
::<math>\forall n,</math>   <math>c(t)=arg\ m\underset{i}in||\mathbf{x}_{(t)}-\mathbf{m}_i(t)||</math>
∀n, i, hni(t) = h (cn(t), i) 最後の適合プロセスでは、参照ベクトルを学習量の重み付き平均値へ更新する。
 
 続く協調プロセスでは、すべてのデータとニューロンの組み合わせについて学習量を決定する。
n hni(t)xn ∀i, mi(t+1):=
 
これらを収束するまで繰り返すのがバッチ型アルゴリズムである。オンライン型が数百ないし数千ステップの繰り返し計算が必要なのに対し、バッチ型は数十ステップで収束する。また学習結果の安定性についてもバッチ型が優れている。
::<math>\forall n,i,</math>   <math>h_{ni}(t) = h (c_n(t), i)</math>
 
 最後の適合プロセスでは、参照ベクトルを学習量の重み付き平均値へ更新する。
 
::<math>\forall i,</math>   <math>\mathbf{m}_i(t+1):=\frac{\sum_nh_{ni}(t)\mathbf{x}_n}{\sum_{n'}h_{n'i}(t)}</math>
 
 これらを収束するまで繰り返すのがバッチ型アルゴリズムである。オンライン型が数百ないし数千ステップの繰り返し計算が必要なのに対し、バッチ型は数十ステップで収束する('''図3''')。また学習結果の安定性についてもバッチ型が優れている。


=== 自己組織化マップの学習理論 ===
=== 自己組織化マップの学習理論 ===
 自己組織化マップの学習理論に関しては多くの研究が行われてきた。Kohonenの自己組織化マップに直接対応する目的関数は存在しないが、アルゴリズムをわずかに修正することで目的関数を得ることができる<ref name=Heskes2001><pubmed>18249959</pubmed></ref> [3]。また自己組織化マップのアルゴリズムは競合・協調プロセスをEステップ、適合プロセスをMステップとするEMアルゴリズムとして解釈できる<ref name=Heskes2001 /><ref name=Verbeek2005>J.J. Verbeek, N. Vlassis, and B.J.A. Kröse. Self-organizing mixture models. Neurocomputing, 63(SPEC. ISS.):99-123, 2005 [https://doi.org/10.1016/j.neucom.2004.04.008 PDF]</ref> [3, 13]
 自己組織化マップの学習理論に関しては多くの研究が行われてきた。Kohonenの自己組織化マップに直接対応する目的関数は存在しないが、アルゴリズムをわずかに修正することで目的関数を得ることができる<ref name=Heskes2001><pubmed>18249959</pubmed></ref>。また自己組織化マップのアルゴリズムは競合・協調プロセスをEステップ、適合プロセスをMステップとするEMアルゴリズムとして解釈できる<ref name=Heskes2001 /><ref name=Verbeek2005>'''J.J. Verbeek, N. Vlassis, and B.J.A. Kröse. (2005).'''<br>Self-organizing mixture models. Neurocomputing, 63(SPEC. ISS.):99-123 [https://doi.org/10.1016/j.neucom.2004.04.008 PDF]</ref>。


===自己組織化マップと機械学習===
===自己組織化マップと機械学習===
 自己組織化マップは高次元データを低次元に射影して可視化するため、次元削減法の一種とみることができる。したがって高次元データの可視化やデータマイニングのみを目的とする場合は、他の次元削減法、たとえばt-SNE<ref name=VanDerMaaten2008>'''L. Van Der Maaten and G. Hinton. (2008).'''<br>Visualizing data using t-sne. Journal of Machine Learning Research, 9:2579-2625, 2008.</ref>[12], Isomap<ref name=Tenenbaum2000><pubmed>11125149</pubmed></ref> [10], Locally Linear Embedding <ref name=Roweis2000><pubmed>11125150</pubmed></ref>[9]などでも代用できる。これらの手法と自己組織化マップの大きく異る点は、学習終了後、新規の入力データに対してもマップ上へ射影できること、および新規データの予測や生成ができるという点である。
 自己組織化マップは高次元データを低次元に射影して可視化するため、[[次元削減法]]の一種とみることができる。したがって高次元データの可視化やデータマイニングのみを目的とする場合は、他の次元削減法、たとえばt-SNE<ref name=VanDerMaaten2008>'''L. Van Der Maaten and G. Hinton. (2008).'''<br>Visualizing data using t-sne. Journal of Machine Learning Research, 9:2579-2625, 2008.</ref>、Isomap<ref name=Tenenbaum2000><pubmed>11125149</pubmed></ref>、Locally Linear Embedding <ref name=Roweis2000><pubmed>11125150</pubmed></ref>などでも代用できる。これらの手法と自己組織化マップの大きく異る点は、学習終了後、新規の入力データに対してもマップ上へ射影できること、および新規データの予測や生成ができるという点である。


 新規データの射影・予測・生成も含めた自己組織化マップと等価な手法として、ガウス過程潜在変数モデル(Gaussianprocess latent variable model, GPLVM)がある<ref name=Lawrence2004>N.D. Lawrence. Gaussian process latent variable models for visualisation of high dimensional data. 2004.</ref> [7]。GPLVMはベイズ推論に基づくため柔軟な拡張が可能である。また教師なしカーネル回帰(Unsupervisedkernelregression, UKR) は自己組織化マップと同じ目的関数を用いており、自己組織化マップの直接的な発展形と見ることができる<ref name=Meinicke2005><pubmed>16173183</pubmed></ref>[8]。マップ空間を離散化する自己組織化マップと異なり、GPLVMとUKRは低次元空間を連続空間のまま扱える。また可視化を目的としないのであれば、変分オートエンコーダ(Variational auto-encoder, VAE)も自己組織化マップと同じ機能を持つ。現在の機械学習・AIの分野では自己組織化マップに代わってこれらの手法が広く使われている。
 新規データの射影・予測・生成も含めた自己組織化マップと等価な手法として、[[ガウス過程潜在変数モデル]](Gaussianprocess latent variable model, GPLVM)がある<ref name=Lawrence2004>'''N.D. Lawrence. (2004).''' Gaussian process latent variable models for visualisation of high dimensional data.</ref>。ガウス過程潜在変数モデルは[[ベイズ推論]]に基づくため柔軟な拡張が可能である。また[[教師なしカーネル回帰]](Unsupervisedkernelregression, UKR) は自己組織化マップと同じ目的関数を用いており、自己組織化マップの直接的な発展形と見ることができる<ref name=Meinicke2005><pubmed>16173183</pubmed></ref>。マップ空間を離散化する自己組織化マップと異なり、ガウス過程潜在変数モデルと教師なしカーネル回帰は低次元空間を連続空間のまま扱える。また可視化を目的としないのであれば、[[変分オートエンコーダ]](Variational auto-encoder, VAE)も自己組織化マップと同じ機能を持つ。現在の[[機械学習]]・[[AI]]の分野では自己組織化マップに代わってこれらの手法、とりわけガウス過程潜在変数モデルと変分オートエンコーダが広く使われている。


==参考文献==
==参考文献==
<references />
<references />

2022年1月8日 (土) 11:42時点における最新版

古川 徹生
九州工業大学 大学院生命体工学研究科 脳情報専攻
DOI:10.14931/bsd.9976 原稿受付日:2021年8月21日 原稿完成日:2022年1月7日
担当編集委員:我妻 広明(九州工業大学大学院 生命体工学研究科 人間知能システム工学専攻)

英:self-organizing map, Kohonen map
英略称:SOM
同義語:自己組織化写像

 自己組織化マップはT. Kohonenによって提案された教師なしニューラルネットの一種である。自己組織化マップはもともと大脳の機能局在の自己組織的な分化現象を説明する数理モデルに由来する。しかし、データ解析へ応用するため、ニューロン間の結合やダイナミクスが簡約化され、計算の効率化が図られている。自己組織化マップの学習原理はwinner-take-allによる競合学習とニューロンの空間的配置に基づく近傍学習の組み合わせである。自己組織化マップはデータの次元削減や可視化を行うニューラルネットであり、高次元データの可視化やデータマイニングなどの目的で幅広い分野で利用されてきた。

脳の数理モデルとしての自己組織化マップ

 大脳皮質には機能局在性があり、機能の類似するニューロン皮質上で隣接して分布することが知られる。また感覚系・運動系では身体的な空間的トポロジーが保存されるトポグラフィックマッピング体部位再現が知られる。これらの空間的な機能分化が自己組織的に生じる原理について、形式ニューロンを用いた数理モデルの研究が行われた。たとえばMarsburg[1]やAmari[2]は外界からの刺激によりニューロンの機能局在と位相的な配置が自己組織化することを示した。

 このような空間的機能分化の自己組織化は2種に分けられる[3]

 タイプ1はレチノトピーを典型例とするトポグラフィックマッピングであり、入力が類似するニューロンが皮質上で近くに配置される自己組織化である。

 タイプ2は視覚皮質における方向選択性ニューロンなどの機能局在であり、出力が類似するニューロンが皮質上で近くに配置される自己組織化である。

 Kohonenはタイプ2の自己組織化の数理モデルを元に、ニューロン間の結合やダイナミクスを簡約化し、実データ解析に応用可能なシンプルなアルゴリズムに帰着した[4]。これが自己組織化マップである。自己組織化マップは初期の提案からいくつかの改良を重ねており、最終形であるバッチ型自己組織化マップにおいては安定した学習が達成できる一方で、形式ニューロンを用いた数理モデルからは大きく様変わりしている[5]

ニューラルネットとしての自己組織化マップ

図1. 自己組織化マップによる動物マップ
下表のデータをバッチ型自己組織化マップで学習した結果。哺乳類/鳥類、肉食/草 食、大型/小型などの動物の特徴に基づき、類似した動物の地図を作っている。このマップはU-matrix法[6]で色付けしており、赤い領域がクラスタ境界を表す。

入力と出力

 自己組織化マップの入力は通常、高次元のベクトルデータセットである。一方、出力はデータセットを低次元(通常は2次元)に射影したものであり、データ分布を地図として可視化して見ることができる。また低次元マップ空間から高次元データ空間への写像も、学習によって得られる。

 図1は自己組織化マップにより得られた「動物マップ」である。入力データ()は16種の動物データであり、それぞれ15次元のベクトルで表されている。マップ上で類似する動物(哺乳類や鳥類、肉食や草食)は互いに近くに配置されている。

 学習が終了した後、得られたマップは主に3つの用途で使うことができる。第一は、可視化によるデータマイニングである。動物マップの例ならば、どの動物が互いに似ているか、どのような動物クラスタ(類似する動物群)が存在するかを知ることができる。第二は新規データをマップ上へ射影することである。これにより新規データがマップのどこに位置するかを可視化できる。またラベル付き学習データを用いた場合は、新規データのラベルを推定することも可能である。動物マップの例ならば、新規の動物がマップのどこに位置するかを示したり、その動物が哺乳類鳥類かを推測したりできる。第三は、新規データの予測や生成である。たとえば2種の中間的な性質を持つ動物の特徴を予測することができる。

構造と学習原理

図2. 自己組織化マップのアーキテクチャ
ニューロンはマップと呼ばれる低次元(通常は2次元)空間に格子状に配置されている。また各ニューロンは参照ベクトルを保持している。入力データに対し、もっとも近い参照ベクトルを持つニューロンが「勝者」となる。そして勝者ニューロンとその近傍ニューロンは、参照ベクトルが入力データとの誤差が小さくなるように学習する。

 自己組織化マップではニューロン(ユニット)が低次元(通常は2次元)のマップ空間に格子状に並んだ構造を持つ(図2)。これは皮質上にニューロンが並んでいるものに見立てられる。またマップ空間においてニューロンの位置は固定されている。これらニューロンへの入力は次元のベクトルであり、すべてのニューロンへ等しく入力される。個の感覚ニューロンから皮質ニューロンへの入力に相当する。

 一方、各ニューロンは参照ベクトルと呼ばれる次元のベクトル値を保持する(はニューロンの番号)。参照ベクトルは感覚ニューロンから皮質ニューロンへのシナプス強度と解釈できる。ただし自己組織化マップでは各ニューロンが参照ベクトル値を記憶さえしていればよく、必ずしもシナプスという形で実装される必要はない。

 自己組織化マップは競合原理近傍学習原理という2つの原理で動作する。第一の競合原理では、入力データにもっとも合致するニューロンが勝者(最適ユニット: best matching unitとも呼ばれる)として選ばれる。すなわち入力データにもっとも近い参照ベクトルを持つニューロンが勝者となり、そのデータを学習する権利をすべて獲得する。この競合原理はwinner-take-allとも呼ばれる。

 第二の原理である近傍学習は、勝者が獲得した学習の権利を近傍のニューロンに分配するものである。勝者に隣接するニューロンには入力データを学習する権利が分配される一方で、勝者から離れたニューロンには学習の権利が与えられない。近傍学習原理により、勝者およびその近傍ニューロンの参照ベクトルは入力との誤差が小さくなるように更新され、次に同じ入力が来たときに再び勝者になりやすくなる。この2つの学習原理が位相的な順序を自己組織化する上で重要な役割を果たす。

オンライン型アルゴリズム

 自己組織化マップの学習アルゴリズムは、競合協調適合という3プロセスの繰り返し計算である[7]。時刻における入力データをとすれば、それにもっとも近い参照ベクトルを持つニューロンが時刻の勝者となる:

これが競合プロセスである。

 一方、各ニューロンが学習する量はマップ空間上で勝者に近いニューロンほど大きい。この配分は近傍関数で決まる。近傍関数は勝者ニューロンに対してニューロンがどれくらいデータを学習するかを表し、しばしばガウス関数が用いられる:

 ここで, はマップ空間上でのニューロン, の座標であり、は近傍の広さを決めるパラメータである。これが協調プロセスである。

 最後に、入力との誤差が小さくなるように各ニューロンの参照ベクトルを更新する:

 ここでは正の小さな定数である。これを適合プロセスである。

 このように入力を変えながら競合・協調・適合プロセスを繰り返すのがオンライン型自己組織化マップのアルゴリズムである。また近傍の広さは学習の初期に広くしておき、学習が進むに連れて小さくしていく。

 このオンライン型アルゴリズムは、他の数理モデルや現実の脳との関連性を考えるうえで有用である。しかしオンライン型は学習時間がかかる上に計算結果が不安定であり、実データ解析には次に述べるバッチ型アルゴリズムを用いるべきであるとKohone自身も指摘している[5]

バッチ型アルゴリズム

図3. バッチ型自己組織化マップがデータ分布を学習する過程
自己組織化マップはデータ分布を多様体でモデル化する。

 入力データすべての集合をとする。バッチ型アルゴリズムでは、学習の各ステップですべてのデータを用いる。

 競合プロセスでは、全データに対する勝者をすべて求める。

   

 続く協調プロセスでは、すべてのデータとニューロンの組み合わせについて学習量を決定する。

   

 最後の適合プロセスでは、参照ベクトルを学習量の重み付き平均値へ更新する。

   

 これらを収束するまで繰り返すのがバッチ型アルゴリズムである。オンライン型が数百ないし数千ステップの繰り返し計算が必要なのに対し、バッチ型は数十ステップで収束する(図3)。また学習結果の安定性についてもバッチ型が優れている。

自己組織化マップの学習理論

 自己組織化マップの学習理論に関しては多くの研究が行われてきた。Kohonenの自己組織化マップに直接対応する目的関数は存在しないが、アルゴリズムをわずかに修正することで目的関数を得ることができる[8]。また自己組織化マップのアルゴリズムは競合・協調プロセスをEステップ、適合プロセスをMステップとするEMアルゴリズムとして解釈できる[8][9]

自己組織化マップと機械学習

 自己組織化マップは高次元データを低次元に射影して可視化するため、次元削減法の一種とみることができる。したがって高次元データの可視化やデータマイニングのみを目的とする場合は、他の次元削減法、たとえばt-SNE[10]、Isomap[11]、Locally Linear Embedding [12]などでも代用できる。これらの手法と自己組織化マップの大きく異る点は、学習終了後、新規の入力データに対してもマップ上へ射影できること、および新規データの予測や生成ができるという点である。

 新規データの射影・予測・生成も含めた自己組織化マップと等価な手法として、ガウス過程潜在変数モデル(Gaussianprocess latent variable model, GPLVM)がある[13]。ガウス過程潜在変数モデルはベイズ推論に基づくため柔軟な拡張が可能である。また教師なしカーネル回帰(Unsupervisedkernelregression, UKR) は自己組織化マップと同じ目的関数を用いており、自己組織化マップの直接的な発展形と見ることができる[14]。マップ空間を離散化する自己組織化マップと異なり、ガウス過程潜在変数モデルと教師なしカーネル回帰は低次元空間を連続空間のまま扱える。また可視化を目的としないのであれば、変分オートエンコーダ(Variational auto-encoder, VAE)も自己組織化マップと同じ機能を持つ。現在の機械学習AIの分野では自己組織化マップに代わってこれらの手法、とりわけガウス過程潜在変数モデルと変分オートエンコーダが広く使われている。

参考文献

  1. von der Malsburg, C. (1973).
    Self-organization of orientation sensitive cells in the striate cortex. Kybernetik, 14(2), 85-100. [PubMed:4786750] [WorldCat] [DOI]
  2. Amari, S. (1980).
    Topographic organization of nerve fields. Bulletin of mathematical biology, 42(3), 339-64. [PubMed:6246997] [WorldCat] [DOI]
  3. Kohonen, T. (2006).
    Self-organizing neural projections. Neural networks : the official journal of the International Neural Network Society, 19(6-7), 723-33. [PubMed:16774731] [WorldCat] [DOI]
  4. T. Kohonen.(1982).
    Self-organized formation of topologically correct feature maps. Biological Cybernetics, 43(1):59-69 PDF
  5. 5.0 5.1 Kohonen, T. (2013).
    Essentials of the self-organizing map. Neural networks : the official journal of the International Neural Network Society, 37, 52-65. [PubMed:23067803] [WorldCat] [DOI]
  6. A. Ultsch. (1993).
    Self-organizing neural networks for visualization and classification. In O. Opitz, B. Lausen, and R. Klar, editors, Information and Classification, pages 307-313. Springer, Berlin. PDF
  7. Haykin, S. (1998).
    Neural Networks - A Comprehensive Foundation (2nd ed). Prentice Hall.
  8. 8.0 8.1 Heskes, T. (2001).
    Self-organizing maps, vector quantization, and mixture modeling. IEEE transactions on neural networks, 12(6), 1299-305. [PubMed:18249959] [WorldCat] [DOI]
  9. J.J. Verbeek, N. Vlassis, and B.J.A. Kröse. (2005).
    Self-organizing mixture models. Neurocomputing, 63(SPEC. ISS.):99-123 PDF
  10. L. Van Der Maaten and G. Hinton. (2008).
    Visualizing data using t-sne. Journal of Machine Learning Research, 9:2579-2625, 2008.
  11. Tenenbaum, J.B., de Silva, V., & Langford, J.C. (2000).
    A global geometric framework for nonlinear dimensionality reduction. Science (New York, N.Y.), 290(5500), 2319-23. [PubMed:11125149] [WorldCat] [DOI]
  12. Roweis, S.T., & Saul, L.K. (2000).
    Nonlinear dimensionality reduction by locally linear embedding. Science (New York, N.Y.), 290(5500), 2323-6. [PubMed:11125150] [WorldCat] [DOI]
  13. N.D. Lawrence. (2004). Gaussian process latent variable models for visualisation of high dimensional data.
  14. Meinicke, P., Klanke, S., Memisevic, R., & Ritter, H. (2005).
    Principal surfaces from unsupervised kernel regression. IEEE transactions on pattern analysis and machine intelligence, 27(9), 1379-91. [PubMed:16173183] [WorldCat] [DOI]