機械学習と脳の違い Part 4: ニューロンは数値表現が苦手

その他の調査

1.機械学習と脳の違い Part 4: ニューロンは数値表現が苦手まとめ

・機械学習は細かく数値を表現する能力に長けているが生物学的なニューロンでは難しい
・MLで要求されるような高精度な数値計算を実現する生物学的脳は遅すぎて使い物にならない
・脳は速度とニューロン数に問題があるのでMLと同様なアルゴリズムで動く事は出来ない

2.ニューロンの数の数え方

以下、www.kdnuggets.comより「Machine Learning Is Not Like Your Brain Part Two: Perceptrons vs Neurons」の意訳です。元記事は2022年6月22日、Charles Simonさんによる投稿です。

なお、第5回はまだアップされていません。

アイキャッチ画像はlatent diffusionで脳とコンピューターが数を数えているところを表現しようとしてやっぱり上手くプロンプトエンジニアリングが出来なかった画像。複雑な表現は文字化されてしまう時がありますね。

第4回は、「ニューロンでは数値を表現することが難しく、正確に表現することは非現実的である」という根本的な問題に焦点を当てます。

MLアルゴリズムは、高度な解像度と精度で数字を表現する能力に依存しています。これは、生物学的なニューロンでは難しいか不可能です。さらに、精度が高ければ高いほど、ニューロンベースのシステムの動作は遅くなります。MLで要求されるような高精度な数値計算を実現する生物学的脳は、遅すぎて使い物にならないでしょう。

コンピュータ、または貴方の脳では、トランジスタまたはニューロンとがデジタル的に情報を表現します。ニューロンはスパイクを、トランジスタは2つの電圧状態のうちの1つを取ることで情報を表現します。このようなデジタルな構成要素がある場合、数値を符号化する方法はいくつもあります。

手法1.1つのシリアル信号に含まれるスパイク(ビット)の頻度
手法2.1つの信号のスパイクのタイミング
手法3.並列信号の何らかの符号化
手法4.2進整数、浮動小数点、ユニコードなど、より複雑な符号化方式

手法4、すなわち、ニューラルスパイクのストリームが2進数やユニコード文字列を符号化することは理論的には可能ですが、あり得ないほど低い確率です。最初の3つの手法は、あなたの神経系に実際に存在し、コンピュータシステムにも存在します。

手法1

脳内では、数値は一定時間内のニューラルスパイクの数で表すことができます。しかし、ニューロンは非常に遅く、1回のスパイクの最大周波数は約250Hz、4msであることを忘れてはなりません。0から10までの数値を表現する場合、40msの時間帯を割り当てることができます。その間に10個のスパイクが発生すれば10を表し、スパイクが発生しなければ0を表す、といった具合です。この方法のいくつかの問題点は以下です。

(1)分数のスパイクを持つことはできないので、40msの間に11以上の異なる値を表現することはできません。

(2)100個の異なる値を表現する場合、どの値を表現したかを知るために400ms(ほぼ0.5秒)待つ必要があります。高度な神経処理には複数のレベルの処理が必要なので、遅すぎて使い物になりません。

(3)より多くの値を扱うには、シナプスの重みを徐々に小さくしていく必要があり、脳の内部電子ノイズが問題となります。

(4)値が変動する場合、新しい値を知ることができるのは、その時間間隔の終了時だけになります。例えば、40ms間に20ms間だけ10で他の時間がゼロの信号は、脳内のニューラルネットワークでは20msの間には5スパイクしか記録できないため、40msの時間間隔で5と記録されることになります。

手法2

一定時間内のスパイクの数を数えるのではなく、隣り合うスパイクの間隔を調べる方法です。多くの末梢神経は、刺激が大きいほど早く発火します。例えば、網膜神経は、明るい方が速く発火するものがあります。最も速い発火間隔は4ms毎なので、これを10とし、5ms毎に発火する場合を9とする、など。

この方式で11(10+1)を手法1の40msではなく、14msで表現できるようになります。実は、神経細胞はこのような区別が得意なのです。例えば、ミリ秒以下の精度で音の方向を検出する脳の能力は、正確な到着時間差のある信号を区別することに依存しています。

4msがある値を表すなら、4.01msが別の値を表すようにすれば、任意の精度が得られると思うかもしれません。しかし、残念ながら、この方法ではうまくいきません。なぜなら、昔から言われていることですが、ノイズがあるからです。脳は電気的にノイズの多い環境であり、神経信号はミリ秒単位で揺らぐことがあります。

このような信号の受信側を見てみましょう。ニューロンモデルのさまざまなパラメータを調整することで、個々のニューロンは任意の発火タイミングに反応することができます。

つまり、10種類の信号のタイミングを識別するためには、10個のニューロンが必要です。しかし、ニューロンのペアは、2つの信号のうちどちらが速く発火しているかをかなりの精度で検出することができます。つまり、このタイプの信号は、2つの異なるレベルの明るさの境界を検出するような相対的な値には非常に有効ですが、絶対的な信号の値を検出するのにはあまり使えません。

さらに、個々の脳神経細胞はこの種の信号を検出できても、その信号を生成する方法がないことも問題です。6msと7msのパルスギャップを生成する唯一の方法は、ニューロンがそのような入力信号を受け取ることです。このため、この種の信号に関する脳内計算は法外に複雑になります。

手法3

信号を表現するためにニューロンのクラスターを考えます。発火しているニューロンの数が多ければ多いほど、値は高くなります。興味深いことに、人間の触覚はこの仕組みを利用しています。したがって、指先を強く押せば押すほど、感覚神経が多く発火します。

これは、1回の発火時間で任意の数の値を表現できるという利点がありますが、現実的には多くのニューロンを使うという制約があります。1000 x 1000の視覚的配列を、それぞれ1000色のいずれかで表現しようとすると、10億個のニューロンが必要になります。人間の視覚野には1億4,000万個のニューロンしかないため、この仕組みの有用性は限られたものでしかありません。

まとめ

ニューロンの発火によって表現できる値の最大数は10個から100個の間です。MLアルゴリズムでは、勾配降下の基礎となる概念が連続的な勾配面を前提としているため、これよりはるかに高い精度が要求されます。脳内の情報を表現するために必要な値が多ければ多いほど、実行速度は遅くなります。

3.機械学習と脳の違い Part 4: ニューロンは数値表現が苦手関連リンク

1)www.kdnuggets.com
Machine Learning Is Not Like Your Brain Part 4: The Neuron’s Limited Ability to Represent Precise Values

タイトルとURLをコピーしました