えちょ記

語らないブログ

モンテカルロ法とシェフの気まぐれニューロン系シミュレーション(3)

もうちょっと書いてみる。超絶割り切りのための前提条件です。

ニューロンらしいこと

  • ニューロンはだいたい100個前後くらいが一つのグループになっているらしい。
  • ニューロンの入力のうち、グループ内からの(閉じた)入力は9割。外からの入力は1割らしい。
  • ニューロンは軸索(通信ライン)からの入力以外に、近隣のニューロンなどが出す化学物質によっても感度が増減するらしい。
  • 化学物質による入力は群レベル(周辺細胞を巻き込む)で発動し、個別制御ではないらしい。
  • 性格上、入力以上の出力(入力が1で出力が2になるようなこと‥‥つまり発散や暴走に該当)はあり得ないはず。というか発散したら発狂しますね‥‥。もしかしたら個別のニューロンは発散するような出力を持つのかもしれないですが、ここでは想定から省きます。

とりあえず割り切る

  • 入力 / 出力比は、とりあえず0.8位で見積もろう。
  • クロックは8Hzとか16Hz位で。
  • ニューロンの1群(グループ)は、16*16の256セルにしよう。
  • セルの外への出力は1/8としよう。つまり、処理の7/8は郡内に閉じ、通信は発生しない。

さらに超絶割り切り

ここで、モンテカルロ法を適用することを前提とした無茶な割り切りします。数学的に正しいかどうかはさっぱりわかりませんが、とりあえず直感を信じます(ぉ)。

たとえば、Bへの入力がAから2、他のニューロンから4あるとします。このとき、ニューロンAはニューロンBに対して1/3の影響度があります。このような状態の場合、Aが発火すれば、多分Bは1/3の確率でやはり発火する、と考えます。
このように仮定を行い、ニューロンAの発火を確認したときに、サイコロを振って1/3の数字が出れば、次にニューロンBが発火する、とします。

ニューロン発火サイコロの作成

上記の考え方を、ニューロンAに繋がるすべてのニューロンに拡張します。その際に先ほどの前提、「入出力比は0.8程度」を利用します。

  • ニューロンAの発火により、他のニューロンが次に発火する確率は0.8。
  • すべての出力先ニューロンへの影響度を全部足して、そのうちどれか1つが発火する確率が0.8になるサイコロを準備しておく。
  • ニューロンAが発火したとき、サイコロを振って、その出目に応じて、次のクロックで発火するニューロンを1つ決定する。

つまり、1つ発火したら、次のタイミングで7/8の確率で、関連するどれか1つを発火させる。発火するニューロンはサイコロを振って決める。そう取り決めます。サイコロを1回振るだけではこの発火パターンはまるでデタラメですが、複数のコンピュータの実行結果をすべて合成すれば、積分した精度でそれなりのシミュレーションが出来るんじゃないか‥‥な?多分。うん、数学的にどうなのか解らないけど!
なお、乱数をわざわざ利用する利点については次の会で。