自己組織化ニューラルネットワーク(SOM)法

2021.6.1改訂(2002年頃の記事)

情報化学+教育 > 情報化学 > 自己組織化ニューラルネットワーク SOM

SOM: Self Organization Map

SOMというのは、N次元事象の2次元へのマッピング方法です。
そのマッピングする際に”似たN次元ベクトル“を2次元の似た位置(近く)に配置させます。

SOMのJavascript版 (2018.11)

もし、N次元が2次元であれば簡単な事です。
X軸とY軸を使ってグラフを描けば、似たベクトルは似た位置に配置されます。

では、3次元、例えばクラスの[算数の点、国語の点、音楽の点]の一覧があったとします。似た点数ベクトルの子供を、教室の座席で似た位置に座らせることを考えてみましょう。Z軸まで使って、3次元グラフを書く事はできます。
そして、3次元の点を、X-Y平面、X-Z平面、Y-Z平面に投影して、ハサミでZ軸に沿って切って仕舞えば2次元に展開できます。
でも、その平面図を見ても、似た得点傾向(ベクトル)の子供が似た位置に配置されているわけではありません。

最近のデータサイエンスの本を見ると、クラスター分析を行って、デンドログラムを描いて、散布図と重ね合わせて XXXXXX……とか記載されています。

そういう小難しい話は専門家に譲ります。(質問禁止です。)

化学者なら毎日、そういう事やっているでしょう?
何にも難しいことはありません。
そう。3次元の分子を上手に2次元に変換しているではありませんか

頭の中でどうやっているか考えてみましょう。
3次元空間の適当な位置に原子が配置されています。(それが、算数の点、国語の点、音楽の点であっても同じです。)
各原子から一番近い原子を特定します。
一番”近い距離”の距離の取り方には、ユークリッド距離とかマハラノビスの距離とか色々ありますが、n次元に拡張しやすいベクトルの内積を使っておきましょう。
3次元では
ルート((X1-X2)^2 + (Y1- Y2)^2 + (Z1-Z2)^2 )
になります。

距離が同じになる原子ペアが2つあることもあります。それが環を巻いていることもあります。
でも全ての原子はどれかと結合しています。
そうして出来上がった分子模型を2次元平面に潰したものが、2次元の分子構造式です。

ルールとしては、
結合角度は再現できていなくても良い。
結合長はなるべく一定にするけど、重なってしまう場合には適当に動かしても良い。
です。
イメージ的には、化学結合がゴムの棒のようにっていて角度は力を入れなくても変えられるし、長さは力を入れれば変えられる。
そのようにすると、3次元情報を2次元情報に変換できます。

英語や理科、社会の点数が入ってきて、n次元になっても同じことです。距離が近いものにゴムの結合を作ってベターっと潰して、電車の路線図のように2次元化すれば良いのです。

潰す方向が一つではないので、2次元の分子図はいくつもできてしまうのですが、幸い人間の脳みそは、回転していようが、デフォルメされていようが同じ分子は同じと認識できるようです。

そのような多次元を2次元に潰すと言うのは,1984年にコホネンさんが自己組織化マップ法を開発されてから、一気に広がりました。

私は2001年ごろ、先生のWebページからCで書かれたプログラムをダウンロードしてきて書き直して使っていました。

自己組織化マップの応用
自己組織化マップ応用事例集
海文堂出版
などで勉強したものです。

最近はクラスター分析などが主流で、SOMなどをやる人は少なくなってしまったようです。

でも計算が簡単で、できたSOMのチャートの意味合いがわかりやすいことからも、使わない手はありません。

まずは習うより慣れろで、本家本元の例題、動物の分類を計算してみましょう。

Readボタンを押してデータを読み込み、Startしてください。何か模様が出てきたら成功です。動きが止まったらStopボタンを押してください。(SOMのバージョンによって以下の画面は異なります)

このように、テーブルを準備して、SOMのWebアプリに流し込んで計算をスタートするだけなのでとても簡単です。

動物を実際に計算したとして、簡単に原理を説明しておきましょう。

まず、2次元の平面のメッシュにn-次元ベクトルを乱数でばら撒きます。
40*40のマス目があったら1600個のn-次元ベクトル(動物の場合には15次元)がばら撒かれます。
最初、動物1(鳩)のベクトルと一番近いベクトルを1600個の中から探します。

ここで、一番近いというと言うのは、単純にユークリッド距離を使います。

4次元以上は図を思い浮かべることもできないので、距離と言われてもピンとこないでしょうが、とりあえず内部ではこのように計算します。

平面に散らばっているベクトルと鳩のベクトルの距離を1600回計算すると、一番小さな距離を持つ平面上のベクトルが1つ決まります。
そうしたら、そのベクトルと、ベクトルの近傍のベクトルを少しだけ、鳩のベクトルに近づけてあげます。「近傍とか少しだけ」という表現は気持ち悪いかもしれませんが、プロ版ではもう少しちゃんとしています。

次には、動物2(めんどり)のベクトルを使って同じことを繰り返します。
16番目の動物が終わったら1番目に戻ってstopボタンが押されるまで繰り返します。

このような単純な操作で、似たベクトルが似た位置にマッピングされるので驚きです。

基本形はこのようになりますが、実際には色々な機能を考えて実装していくところが楽しいところです。

応用問題

化学者は、3次元分子構造を2次元に落とし込んでいますが、それ以外、もう一つ多次元ベクトルを2次元に落とし込んでいます。

そうです。
周期律表です。元素は様々な物性値を持っているので、多次元ベクトルです。
それをメンデレーエフが物理的または化学的性質が似たものが似た位置に来るように並べたものです。

現代でこそ原子核の周りを電子が回る電子殻から合理的に説明されていますが、1869年に戻ってSOMにそれをやらせてみましょう。

元素の持つ物性値などは、様々なデータブックに記載されているでよう。どんな物性値を持ってきて、どのように2次元化させるかは腕の見せ所です。

私は触媒設計を念頭にデータを集めてテーブルを作りました。


周期律表の横は赤い線、縦は青い線で表しています。

これは、自分の知っている(非常に狭い範囲の触媒ですが)触媒の元素が非常に面白く配置されています。
メンデレーエフの2次元の距離では遠くても、SOM上では近く、置き換えた合金や触媒設計2つかったらどうか考えるのに役に立ちそうです。

このように自分の意識した物性値で自分なりの2次元の「Pirika周期律表」を作ることができます。
ぜひ応用問題としてMy周期律表にトライしてください。

去年の学生と話していたところ、私の資料は「ボタンをポチするとそれなりの答えが帰ってきてしまうので、わかった気になってしまう、できた気になってしまう」のが良くないと手厳しいです。周期律表に関しては自分でデータを集め放り込むを体験してもらうため、敢えてテーブルはつけません。頑張りましょう。

こうした元素のクラスタリングは実はかなり昔から行われています。
化学総説 No.18 1978年 「情報化学」 日本化学会編の125ページには、階層的Qモードクラスター化法を使って、分類をかけたところ、酸化物の酸性、塩基性によって次のように分類されたとあります。

先ほど作ったMy周期律表の元素の所に色を塗ると次のようになります。

アルミニウムや亜鉛、スズ、鉛は両性元素です。
My周期律表のどこにいるか確認してみましょう。

他の古い例題としては、
動物やあやめの分類
黒曜石の産地特定
の古い資料がありますので、興味があればお読みください。

2002年ごろの古い記事(▶︎をクリックして開く)

非常勤講師:山本博志 講義補助資料

うちの「えのころチビズ」は型はめ遊びが大好きです。型はめって言うのは数字とか星形、三角の穴の開いたところに同じ形の図柄を正しい向きで入れると中に入るおもちゃです。

こうした形状認識は最近の脳科学では次のように説明されているようです。

目から入った視覚情報は形の要素に分解され脳の中の数字だったら数字の要素が格納されているところに届き照合されてどの数字だか認識される。

手に持ったピースの形状を認識して箱の図柄と比較して同じところを探すというのが型はめ遊びです。

ここで重要なのは脳の中の数字の要素が格納される格納のされ方です。

傾いていようがひっくり返っていようが同じものとして認識するのは結構訓練が必要です。

傾いていたりひっくり返っていたりは先の話としても、図形を数字と認識したり丸×三角と分類するのはどのようなメカニズムでコンピュータにやらせるにはどうしたらいいでしょうか? 

人間の脳の中では似たものは似た位置に記憶されているようです。

例えば数字は皆、脳の中のある部分にかたまって格納され、図形は図形、色は色とかたまって格納されているらしいです。

この似たものは似た位置にマッピングされるという機能のことを自己組織化と呼びます。

これを模倣したニューラルネットワークに自己組織化のニューラルネットワークがあります。

これはコホーネン先生が最初にはじめたので、コホーネン・マップとかSelf Organization Map (SOM) とか呼ばれたりもします。

このニューラルネットワークは先の2つのニューラルネットワークとは違って教師なしニューラルネットワークに分類されます。

先のNNは本当の答えはこれだよ、という教師データとNNが出す答えの差を小さくするように動作してきましたが今度のは勝手に自分から分類されて行きます。

これは非常に便利な機能で分析化学には結構多用されています。

面白い例では色々な出所の拳銃の火薬の成分分析値を自己組織化させると事件に使われた拳銃はどんなものだったかもわかるそうです。

「えのころチビズ」は乗り物が大好き。

電車とバスを覚えて見かける度に「でんしゃー、でんしゃー」「ばしゅー、ばしゅー」と叫びます。

この所トラックを認識するようになり、バイクとか「しゃ」(救急車)を覚えつつあります。

今朝新聞の折り込みにお正月用のおせちのお重の広告が載っていました。

それを見て「とらっくー、とらっくー」って叫んでいます。

奥さんと、「んー、想像力を働かせればこれがトラックに見えても不思議はないかもしれない」と話していたのですが、いったい彼等の脳みその中ではどんなマッピングが行われているのか? 

少なくとも「でんしゃー」は好きなものの代名詞なのはたしかなんだけど。

Copyright pirika.com since 1999- 
Mail: yamahiroXpirika.com (Xを@に置き換えてください) メールの件名は[pirika]で始めてください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です