ブログ

ポップフィールド・ニューラルネットワーク

2024年のノーベル物理学賞だ。
人工知能(AI)の機械学習の基礎となる手法を開発した、米プリンストン大のジョン・ホップフィールド教授と、カナダ・トロント大のジェフリー・ヒントン教授に授与すると発表した。

ずーっとニューラルネットワークの研究をやっていて、ホップフィールド教授がご存命だとも知らなかった。恥ずかしい。。。。

この技術、普通の人に一番簡単に説明するのにいい例題は、郵便番号の手書き認識だ。マス目に書かれているのは0−9の数字のみ。みんなが丁寧に書いてくれるわけではない。大きかったり、小さかったり、傾いていたり。でも、ちゃんと読み取ってくれる。

そのあたりから入門して、今でもニューラルネットワークを使って化学系の物性推算を行なっている。

その時に作ったデモがある。


近代科学社、Cでつくる脳の情報システム、中野馨著にあるCのプログラムをJAVAで書き直して(さらにJavaScriptに書き直して)ついでにちょっとモディファイしたものだ。詳しい説明は原著を紐解いて欲しい。非常にいい本だ。(といっても絶版だろうけど)

まず、スタートボタンを押す。
マウスボタンを押しながら、ジグザグ、もしくはクネクネと自分が考える図形を描く。
そして、どちらを書いたのか、ボタンをクリックしてコンピュータに教えてあげる。
Clearして、次の図形を書く。
斜めに書いたり、大きく書いたり、小さく書いたり。
徐々にコンピュータが学習してどちらを描いたのか判断するようになる。

ページをリロードして、ZigZagの代わりに三角、Kunekuneの代わりに丸を入れて、Startしてみよう。同じように学習すれば判断できるようになる。

もちろん、自分のサインを書いてログインに使ったって良い。書かれた絵だけでなく、書くスピードも判断するので画像だけ似せてもログインできなくなるが。

出力の数を増やして0-9を学習させるのも簡単だ。
これまでのプログラミングは、ある判断をさせるときにそれを数式化しなくてはならない。それを学習=プログラムにしたあたりが面白い技術だ。数学が嫌いで化学に入った身には適している。脳のニューロンは学習するまでは何も反応しないが、全く同じニューロン・システムでも何を学んだかでアウトプットが異なる。そこもプログラムとは異なり面白い。

こういくことができるなら化学にどう役に立つか。化学オタクはその辺りにしか興味はないが、何かインスパイアーされると良いかな。と思ってHPに載せておこう。