1.機械学習と脳の違い Part 3: レイヤー構造の違いまとめ
・機械学習のレイヤーは整然とした層状構造だが脳は無秩序な結合を多数含んでいるように見える
・脳の160億の各ニューロンを他の全ニューロンと完全に接続するのは物理的に不可能
・機械学習をより生物学的な構造に近づけるにはハードウェアや誤差逆伝搬法が障害になる
2.レイヤー間結合の違い
以下、www.kdnuggets.comより「Machine Learning Is Not Like Your Brain Part Two: Perceptrons vs Neurons」の意訳です。元記事は2022年6月2日、Charles Simonさんによる投稿です。
アイキャッチ画像はlatent diffusionで脳とレイヤー構造を表現しようとしてやっぱり上手くプロンプトエンジニアリングが出来なかった画像
本連載の第3回は、機械学習と脳の根底にある基本的なアーキテクチャについて考察します。
今日の人工知能(AI:Artificial Intelligence)は、とんでもないことをやってのけます。しかし、その機能は、人間の脳が同じタスクを達成するために働く方法とはほとんど関係がないのです。AIがその固有の限界を克服し、人工的な汎用知能へと進化するためには、脳とその人工物の違いを認識する必要があります。
この9回シリーズでは、このことを念頭に置きながら、生物学的なニューロンの能力と限界、そしてそれらが機械学習(ML:Machine Learning)とどのように関連しているかを検証していきます。本シリーズの最初の2つのパートでは、ニューロンの速度が遅いためにニューロンにおけるML学習アプローチがいかに非現実的であるか、またパーセプトロンの基本アルゴリズムがスパイクを含む生体ニューロンモデルといかに異なるかを検討しました。第3部では、MLと脳の基礎となるアーキテクチャについて検討します。
MLの人工的なニューラルネットワークの図を見たことがあるでしょう。各レイヤーのニューロンが次のレイヤーのニューロンと完全に結合しており、整然としたレイヤーになっていたと思います。
一方、脳は、明らかに無秩序な結合を多数含んでいるように見えます。脳内の個々の結合を追跡することは非常に難しいため、脳の層構造が実際にどのようなものであるかは分かっていません。しかし、MLのような整然とした層状構造ではないことは明らかです。
この根本的な違いは、MLで使えるアルゴリズムに大きな影響を与えます。パーセプトロンやMLアルゴリズムがいかに整然としたレイヤー構造に依存しているかはあまり考えられていませんが、もしパーセプトロンがネットワーク内の任意のニューロンからシナプスを持つことを許すと問題が発生します。
シナプスの数
各レイヤーが次のレイヤーに完全に接続されているニューラルネットでは、シナプスの数は(計算しやすいようにすべての層が同じサイズであると仮定すると)各層のニューロン数の二乗で増加します。
どのニューロンもネットワーク内の他のニューロンと接続できるようにすると、シナプスの数はネットワーク内のニューロン総数の2乗で増加します。1層あたり1,000個のニューロンを持つ10層ネットワークは(出力層はシナプスを必要としないため1を引いて)合計900万個のシナプスを持つことになります。
もし、どのニューロンも他のニューロンと接続できるのであれば、1億個のシナプスが存在する可能性があり、性能は11倍になる可能性があります。
脳では、これらのシナプスのほとんどは存在しません。新皮質には160億(\(16\times10^9\)個のニューロンがあり、どのニューロンも他のニューロンと接続する可能性があり、\(256\times10^{18}\)個のシナプスの可能性がある(シナプスあたり1バイトとすると56エクサバイト)。しかし、実際のシナプスの数は、ニューロンあたり104個と見積もられており、合計しても\(16\times10^{13}\)個と、かなりの数(160テラバイト)に過ぎません。
このうち膨大な数のシナプスは、重みがゼロに近いはずです。この「待機中のシナプス」は、必要なときに素早く重みを変えて記憶を保存するためにあるのです。いずれにせよ、ほとんどの項目がゼロの「まばらな配列」になってしまいます。ゼロでないシナプスのみを表現する構造を考えるのは簡単ですが、そうすると現在のGPUの驚異的な性能向上が利用できなくなる可能性が高いのです。
パーセプトロンのアルゴリズム
パーセプトロンの基本的なアルゴリズムは、前のレイヤーからの入力値を合計するものです。後続のレイヤーからの接続を許可する場合、前のレイヤーからすでに計算されたニューロン内容と、まだ計算されていないニューロン内容を区別する必要があります。もしアルゴリズムにこの拡張がなければ、パーセプトロンの値はニューロンの処理順序に依存することになります。マルチスレッドの実装では、これによってパーセプトロンの値が不定になります。
この問題を修正するために、パーセプトロンのアルゴリズムは、PreviousValueとCurrentValueという2つの内部値を持つ2つのフェーズを必要とします。最初のフェーズでは、アルゴリズムは入力ニューロンの PreviousValue に基づいて CurrentValue を計算します。第 2 段階では、CurrentValueをPreviousValueに変換します。このように、計算に使用されるすべてのPreviousValueは、最初のフェーズでの計算の間は、変動しない値です。 このアルゴリズムの変更により、やはりパフォーマンス上のペナルティはあるものの、問題はクリアされます。
オープンソースのBrain Simulator IIのNeuronBase.cpp(https://github.com/FutureAIGuru/BrainSimII)というファイルに、この2フェーズ・アルゴリズムの実装があります。このパフォーマンスを取り戻すには、カスタムハードウェアを構築するか、ニューロンが発火しない限り処理が不要なスパイクモデルの長所を生かすことができます。16コアのデスクトップコンピュータで、上記のアルゴリズムは1秒間に25億シナプスの速度を記録しています。
データ構造
人間の新皮質の 160 億の各ニューロンは、他のすべてのニューロンと完全に接続されることはあり得ないので、より生物学的な構造に近いデータ構造に移行することができます。この方法では、各ニューロンは有用なシナプスのみをリストまたは配列で保持することで表現します。これはメモリの点ではるかに効率的で、重みゼロの実体をすべて処理する必要がないため、高速化できる可能性があります。しかし、これは GPU 処理の優位性を大きく損ないます。なぜなら、現在の GPU は、この構造をサポートするために必要な小さな配列、ループ、および if 節を処理するのが得意ではないからです。
バックプロパゲーション
よりランダムなニューロンやシナプスの構造をMLに適用することの本当の問題は、バックプロパゲーションアルゴリズムがあまりうまく適応できないことです。バックプロパゲーションの勾配降下は安定した誤差表面に依存しています。しかし、ループ状の接続を許容すると、この誤差面は時間と共に一定ではなくなります。
3.機械学習と脳の違い Part 3: レイヤー構造の違い関連リンク
1)www.kdnuggets.com
Machine Learning Is Not Like Your Brain Part 3: Fundamental Architecture