忍者ブログ

Memeplexes

プログラミング、3DCGとその他いろいろについて

ニューロンの活動電位っぽいシミュレーション

ニューロンは電気信号で情報を処理しますが、その活動のかんたんなシミュレーションです。


活動電位

操作方法

キーボードの[←]キーを押す:活動電位を下げる。この操作ができない時は一度キャンバスをクリックして下さい。

キーボードの[→]キーを押す:活動電位を上げる。この操作ができない時は一度キャンバスをクリックして下さい。

解説

このシミュレーションは、神経細胞(ニューロン)が情報を伝えるのに使う電気信号「活動電位」のかんたんなシミュレーションです。かんたんなので波の形が本物の波形と微妙に違いますが、情報を伝えるのに必要な本質は同じです。鳥の羽の形は種類によって微妙に違いますが、どの羽も空をとぶのに役立ちます(ニワトリやダチョウを除く!)。つまり、将来意識を持ったソフトウェアが誕生したとして、このシミュレーションの波形で作られている可能性も0ではないのです!それに、ニューロンの測定技術によって波の形はもっと大きく変わるので、これくらい些細なもんです。

波形の比較

次の図は、wikipediaに載っているニューロンの活動電位の図です:

(wikipediaより。ニューロンの電気信号の形の図です。ニューロンは電気信号を出す時、電圧は上がって下がり、少し行き過ぎたあともとに戻ります。この様子はこのページのシミュレーションでも確認することができます。)

いっぽう、このシミュレーションの活動電位は、次のような形です(回転&反転して上の図と比べられるようにしてあります。紫と緑の線は無視して、黒い線にだけ注目して下さい。黒い線は紫の高さから緑の高さを引いたグラフです。)。これもやはり、上がって下がり、少し行き過ぎたあともとに戻っています。

両者は波形が少し違うという点はあるものの、次のような本質的な共通点があります:①少しの刺激では発火しない。②刺激が一定レベルを超えると大きく上昇し、その後下がる。③下がったあと通常の状態に戻るまでしばらく刺激に反応しなくなる。この3つは、知的な行動を取る機械を作るのに十分な性質です。

普通のDeep Learningのニューロンとの違い

ちなみに、最近流行のDeep Learningで使われている「ニューロン」はこれよりもずっとかんたんな仕組みです。ふつう、Deep Learningのニューロンはこんなトゲトゲ波形など扱わず、それがどのくらいの頻度で生じているかを表すという設定の数字1つを出力するだけです(このページのシミュレーションは波形が本物と微妙に違いますが、Deep Learningのニューロンにはそもそも波形がありません)。これは言わば、天候のシミュレーションをするときに、雨粒一つ一つをシミュレートするのではなく、それらをまとめてある地点の降水量を表す数字として扱うようなものです。これには良い点も悪い点もあるでしょう。計算量を少なくできるというメリットは有ります。しかし、現実のニューロンで使われている学習方法がこれでは使えません。

Deep Learningの学習方法は現実の脳とは似ても似つかないものです。現実のニューロンでは、この活動電位の棘(スパイク)が生じたタイミングで学習を行います。たくさんのスパイクをまとめて一つの数字にしてしまったDeep Learningのニューロンではこんなことはできません。Deep Leareningは成功を収めているので、このやり方で行き着くところまでやってみるべきなのかもしれませんが、ひょっとしたらこのやり方でうまくいかない何かがあるかもしれません。

拍手[0回]

PR