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

編集の要約なし
編集の要約なし
79行目: 79行目:


===構造と学習原理===
===構造と学習原理===
[[ファイル: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>個の感覚ニューロンから皮質ニューロンへの入力に相当する。
 自己組織化マップではニューロン(ユニット)が低次元(通常は2次元)のマップ空間に格子状に並んだ構造を持つ('''図2''')。これは皮質上にニューロンが並んでいるものに見立てられる。またマップ空間においてニューロンの位置は固定されている。これらニューロンへの入力は<math>q</math>次元のベクトル<math>x = (x_1 , . . . , x_q )</math>であり、すべてのニューロンへ等しく入力される。<math>x</math>は<math>q</math>個の感覚ニューロンから皮質ニューロンへの入力に相当する。


108行目: 109行目:


===バッチ型アルゴリズム===
===バッチ型アルゴリズム===
[[ファイル:Furukawa Self organizing map fig3.gif|サムネイル|'''図3. バッチ型 SOM がデータ分布を学習する過程'''<br>自己組織化マップはデータ分布を多様体でモデル化する。]]
 入力データすべての集合を<math>X={\mathbf{x}_n}</math>とする。バッチ型アルゴリズムでは、学習の各ステップですべてのデータを用いる。
 入力データすべての集合を<math>X={\mathbf{x}_n}</math>とする。バッチ型アルゴリズムでは、学習の各ステップですべてのデータを用いる。


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


::<math>\forall n, c(t)=arg\ m\underset{i}in||\mathbf{x}_{(t)}-\mathbf{m}_i(t)||</math>
::<math>\forall n,</math>   <math>c(t)=arg\ m\underset{i}in||\mathbf{x}_{(t)}-\mathbf{m}_i(t)||</math>


 続く協調プロセスでは、すべてのデータとニューロンの組み合わせについて学習量を決定する。
 続く協調プロセスでは、すべてのデータとニューロンの組み合わせについて学習量を決定する。
120行目: 123行目:
 最後の適合プロセスでは、参照ベクトルを学習量の重み付き平均値へ更新する。
 最後の適合プロセスでは、参照ベクトルを学習量の重み付き平均値へ更新する。


::<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>
::<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>


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