DISCLAIMER
すみません!
今回はCNCでもEtherCATでも、CODESYSでもなく、特定のAIに関する話題です。ポエムかもしれません。
ED法
掘り起こしている人、すごいですね。
ディープラーニングの基礎や、BitNet b1.58( 1bit LLM )の話題をちょっと思い出しつつ、読んでみました。それと応用数学、基本的ロジックIC、あれ、なにかしら、共通点あるっぽい?つながるんでは?と思いました。
AIの大量の行列計算の基本的な部分が、脳神経伝達の仕組みをまねると高性能化する、なんて、めちゃくちゃロマンがあります!
AIの大量の行列計算の大幅な省力化については、大きな次元の行列の逆行列の計算に、内部が0で三角形になる行列をつかったり、ありましたね。Pythonの数学ライブラリでゴリゴリ解く時代になったかと思いますが、数式計算、手計算の推察も役に立ったりするのでしょうか・・
こちらでPythonで実装されている方もいらっしゃいました、動いている!お仕事速いです。
「仮説2) 各ニューロンは(-1, 1)の二値を取る」 に、0を加える
昨今、1.58bit LLMの衝撃もあったのですが、(-1,1)を、(-1,0,1)の3値( 1.58bit表現 )にしたときの知能化のメリットを考えてみます。
0の項目の多数の出現により、多層・多数になったときのの行列計算は必要入力だけに大きく簡素化されます。(-1,1)にくらべ、「どうでもよい入力」に対する出力振動が学習して抑えられる。
機械学習においてはなんでもつっこめるものをつっこむので「出力に関係がない、関係させないほうがよいもの」も沢山あります。
また、ハイパーパラメータのさじ加減が難しいです(職人技みたいな感じ)。
スパース化は、無関係な入力(いろんなものから推定して)の0の項を特定するなどして調整していきます。
これらは、1.58bit+ED法にすることで、いくつかのハイパーパラメータの調整や、スパース化が自動的におこなえる可能性があるのではという想像というか妄想です。
3値、というのは、なんとなく中途半端に思いますが
論理はH/Lの1bitです。すっきりしているというか、なんかこれにもう1個つけくわえるって・・なんていう無駄なんだ!
それなら、おまけにもう1個つけくわえて、2bitにしてみたら、と、思わないこともないです。
ただ、それだとfp8同様に、スパース化がはっきりしないのかもしれません。一方で、NVIDIAの生成AI向けプロセッサのライブラリではfpをつかっていますがビット数は8や4に削減される方向にあります。
ところで、原始的なMPU回路(マイコン基盤)では、回路(すなわちネットワーク)に対して、3ステートを処理するICの部分がかならずあって、H/Lとは無関係な状態、切り離された状態、をもっています。3ステートがないと、ちょっとしたマイコン基盤でも出来ないんですよね。
3値、あるいは、1.58bit、は、ネットワークの情報理論に対して、必要な数学的要素と想定できるし、おそらくは、脳神経伝達のメカニズムに相当する反応や分子があるんじゃないかな?なんかありそう。
以上のことを、ちょっと妄想してみた次第です。