注意
この記事は筆者が思いつきで適当に想像したことの備忘録ポエムです。ご了承ください。
はじめに
生物学的なニューロンをシミュレーションする手法として, ニューラルネットワーク分野では発火率モデルが扱われることが多い.
発火率モデルでは, 細胞の静止膜電流$I_m$に対して, 入力信号$I_{ipt}$が与えられた時, その合計が閾値を超えると必ず発火するというものである. この式は, 次式のようになる.
$f(I_{ipt}) = 1\ \ \mathrm{if} \ I_{ipt}+I_m>I_{bias}, \mathrm{otherwize}\ 0$
ニューラルネットワークではしばしばStep関数により実装されるため, 次式で見ることが多い.
$f(x) = 1\ \ \mathrm{if} \ x>0, \mathrm{otherwize}\ 0$
そんな発火率モデルであるが, 派生として次式に示されるSigmoid関数が存在する.
$$\sigma(x) = \frac{1}{1+e^{-x}}$$
Sigmoid関数は発火率モデルを誤差逆伝播法に対応可能な形にしたものだが, 微分値が小さいことから近年の深層ニューラルネットワークに用いられることはほとんどない.
今回疑問に思ったのは, 発火率の計算においてStep関数では純粋に閾値を超えた瞬間必ず1になるということである.
そこでほかの発火率モデルである積分発火方式を調べてみた.
積分発火モデルの概要
発火率モデルのほかにもバイオニューロンの発火に関する様々な手法があるらしい.その一つに積分発火モデル(LIF)があった. 次式が積分発火モデルの式である.
ニューロンを抵抗$R$とコンデンサ$C$を合わせた回路に近似することで, 下の式に従い, 膜電位$V(t)$が変動する.
$$CR\frac{dV(t)}{dt} = RI(t)-(V(t)-V_{reset})$$
$V_{reset}$が静止膜電位であり, $V(t)$がだんだん増加しある閾値$V_{peak}$に達すると発火するというものである.
発火すると再び$V_{reset}$に電位が戻り, $t_{cool}$のクールタイムが発生する.
簡略化
今回は直流電流に絞って考えてみる. さて, 先ほどの式の括弧の中$(V(t)-V_{reset})$では, 基準電位に対する上昇あるいは減少量だけ変化する値を抑制している.
基準との差だけを見ればよいので$V(t)$は$0$から始まり, バイアス値$b=V_{peak}$で発火することにすれば簡略化されるだろう.
基準点が0になるため, 静止膜電位の部分が消え次式のようになる.
$$CR\frac{dV(t)}{dt} = RI(t)-V(t)$$
あとは簡略化ではないが, 左辺の係数$CR$を右辺に移項する.
$$\frac{dV(t)}{dt} = \frac{RI(t)-V(t)}{CR}$$
計算:発火の閾値と最大発火率
$C, R, b$をパラメータとした微分方程式が完成した.
計算機によるシミュレーションなので, これに加えて, $dt$もステップパラメータとして, $dV(t)$に関する式に変形しておく.
$$dV(t) = \frac{RI(t)-V(t)}{CR}dt$$
さて, 発火するためには, 抑制項$-V(t)$が最大値$b$を迎えるまでの間$RI(t)-V(t)$が正でなければならない.
したがって, 発火率が存在する領域は$RI(t)>b$である.
また, 発火率の上限は, 1ステップで増加する膜電位が$dV(t)=b$であるときだろう.そのため, 計算すると, 最大発火率となる$I(t)$は$$I(t)>bC\cdot dt$$の領域であることがわかる.
このときの発火率はクールタイムを含めた$1+t_{cool}$に対して, 1度のパルスを発生させるため$\frac{1}{1+t_{cool}}$となる.
結論・今後
入力を直流電流に絞ったうえで積分発火モデル(LIF)の発火率の範囲を調べたところ, $\frac{b}{R}<I(t)<bC \cdot dt$の範囲で, 発火率が$0$から$\frac{1}{1+t_{cool}}$まで単純増加するだろうということがわかった.
今回は何となく思いついたようにやってみたものの, 実際の場面では, 入力が他のニューロンの出力であれば直流ではないし, 単純増加の部分の具体的な関数についてもシミュレーションする余地がある. 今後も筆者の興味が続けば研究材料としてみていきたい
最後に
某収容所による矯正の名残か, 普通に書いたつもりがレポート感あふれる書体になってしまいました.
適当に書き納めしとこうと思い書いてみました. ありがとうございました.