Biologically Plausible Neural Network について

「[ICML2019 読み会 in 京都](https://connpass.com/event/136462/)」で、「[Nøkland et al. Training Neural Networks with Local Error Signals](https://arxiv.org/abs/1901.06656)」を紹介しながら、「Biologically Plausible Neural Network（生物学的にもっともらしいニューラルネットワーク）」について解説したところ、意外に好評だったので、この分野についてQiitaにも投稿しておこうと思う。

「ICML2019 読み会 in 京都」で使用したスライドは、[こちら](https://www.slideshare.net/ssuser485a82/icml2019-kyoto-ohnover20190805)。
※スライド #25~26 の「Linear alignment」は「Feedback alignment」の誤植。

## Biologically Plausible Neural Network とは？
Biologically Plausible Neural Network は、その名の通り、生物の体の組織・臓器として妥当な構造を持つニューラルネットワークのことを指している。
Deep Learning 技術の進歩により、生物の脳から発想を得た Neural Network が画像認識や強化学習の分野で高い性能を示しているが、よくよく考えてみると、これらのネットワーク構造は、生物におけるそれとは__似て非なるものである__。
![NN.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/420723/a8650be3-e6e8-9eec-1766-e97d45dd4ed4.png)
上図は一般的なニューラルネットワークの構造を示したものであるが、入力層から信号 X が入り、それが全結合層を次々と伝っていき、最後の出力層の結果と正解ラベル Y との誤差を計算して、 Back-Propagation (誤差逆伝播法：以下 backprop) により各層の重みを更新する。しかしこの構造は、図中でも指摘しているとおり、①神経細胞の接続（上図：緑）と、②重み修正（上図：青）の観点から、”生物学的”とは言い難い。
### ①神経細胞の接続
生物の脳に限らず、あらゆるネットワーク（空港間の便のつながり、Facebook の友達関係など）には__スモールワールド性__があること確認されている。スモールワールド性とは、以下の３つの特徴を持つ構造のことを指す。

1. 各頂点の次数は__べき乗則__に従う
2. __平均（頂点間）距離 L__ は小さい
3. __クラスター係数 C__ が大きい

各用語の解説についてはここでは省略するが、上記の性質を人間関係のネットワークを例に翻訳すると、以下のようになる。

1. ほとんどの人はあまり多くの友達を持たないが、まれに、友達の数がとてつもなく多い有名人（__ハブ__と呼ばれる）が存在する
2. 友達の友達の友達...をたどっていけば、任意の人に比較的早くたどり着ける
3. 友達の友達は、たいてい友達（クラスタを形成する）

以上のような性質をもつネットワークのことを、__スモールワールド・ネットワーク__という。
ここで、ニューラルネットワークの構造について考えてみると、①すべての細胞が全結合し（次数は一様分布）、②平均距離は層の数が増えるほど長くなり（Deep Learning は層の数を増やすことで性能が高まったことを考慮せよ）、③同一の細胞に接続する２つの細胞は互いに接続していない、という点で、スモールワールド性を全く満たしていないと言える。
###②重み修正
現在、使われているニューラルネットワークのほとんどは、学習の際に backprop を用いて各層の重みを更新する。この手法では、出力層の結果と正解ラベルの誤差を求めた後、それをネットワーク上で逆流させて、各層における重みの更新勾配情報を計算していく。生物の神経細胞では、信号を逆流させることはできないため、この仕組みが生物の脳内にも存在すると仮定した場合、勾配情報を伝えるために別のネットワークを用意されている必要がある。
この時点でもなかなか怪しいが、[Bengio et al. 2015](https://arxiv.org/abs/1502.04156)では、”このような逆行路が存在した場合でも”、 backprop は以下の６つの生物学的問題点を抱えていると指摘している。

1. backprop は__純線形__の計算だが、神経細胞は__線形と非線形のくり返し__で信号を伝える
2. 逆行路は、対応する順行路の__神経活動__とその__微分__を保持する必要がある
3. 同様に、対応する__重み__も保持する必要がある
4. 神経活動は 0 or 1 であり、__連続値を持てない__
5. forward (推論) と backward (重み修正) の__時間的切り替え__が必要
6. __正解ラベル (Y)__ の情報源が不明

このうち、 1 と 4 は神経細胞の信号伝達メカニズムについての問題である。
2 と 3 は特に重要な問題であり、 backprop で各層の重みを更新するための勾配を計算していくには、各層の実際の神経活動と重みを、対応する逆行路の神経細胞が（順行路の神経細胞とは異なるにも関わらず）保持していなければならないことを指摘している。
加えて、 backprop を行うためには順行路による推論が終了するのを待っている必要があり、逆に backprop 中は推論ができないため、これらの切り替えを脳がどのように行っているのか (5) 、正解ラベル（予測すべきだった結果）の情報 (Y) が、なぜ一般の情報 (X) と同じように入力層からニューラルネットワークに入るのではなく、出力層の後に伝えられるのか (6) 、という問題についても考える必要がある。

Biologically Plausible Neural Network の実現には、以上の疑問を解決しなければならないが、この記事では②の 重み更新 (backprop) をメインに取り上げることにする。

## なぜ Biologically Plausible Neural Network が必要なのか
「既存の Deep Learning 手法が人間以上の精度を出すのであれば、わざわざ生物の脳を模倣する必要はないのではないか」、という議論は根強く存在する。しかし、以下の①機能と②実用性の面から、 Biologically Plausible Neural Network には大きなメリットがある。
### ①機能としてのメリット
#### 1. fast / one-shot learning の実現
人間の子供に「キリン」について教える際には、たった１枚写真を見せるだけで十分である。それに対して、既存のニューラルネットワークを訓練するためには、何百・何千枚もの学習データが必要となる。そのため、生物の脳の性能をニューラルネットワークで実現できた場合、このような「１を聞いて10を知る」学習が可能となるかもしれない。
#### 2. 創造性の獲得
既存のニューラルネットワークは、あくまで計算機としての能力しか持たず、入力された情報に適合するように自信を変化させているに過ぎない。そのため、生物の脳が持つ機構を導入すると、「外界への適合」以上の機能、すなわち自問自答による創造性の発現を可能にするかもしれない。
### ②実用面でのメリット
機能面のメリットはやや夢のような話かもしれないが、「生物学的ではない」とされている backprop の代替策を考えることによって、実用性の面でも恩恵が受けられる。
#### 1. 並列処理
「backprop の６つの問題点」の 5 でも述べたように、 backprop を行うためには forward処理（推論）が終了するまで待っていなければならず、さらに backprop 中も、とある層の重みを更新するためには、より上位の層の勾配計算の結果を必要とする。すなわち backprop は並列計算に不向きな性質を持つと言えるため、代替策を考えることで計算を高速化することができる。
#### 2. メモリの節約
こちらは「backprop の６つの問題点」の 2, 3 に関連することだが、 backprop を行うためには、各層の活動や重みなど、保持していなければならない情報は多い。そのためにかなり多くのメモリ領域を消費することになるが、 backprop を使用しなければ、この分のメモリを節約することができる。

## 研究の紹介
Biologically Plausible Neural Network の意義についての理解を深めたところで、この分野に関連する研究論文をいくつか紹介する。
### backprop を担う神経細胞（逆行路）は、順行路と同じ重みを保持する必要はない
[Lillicrap et al. 2016](https://www.nature.com/articles/ncomms13276) Fig.1
![fig1abcd.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/420723/af1d0f1d-af8a-0f5a-2970-7b483a8faf73.png)
「backprop の６つの問題点」の 3 に関連する研究である。前述のとおり、 backprop を行うためには、逆行路（b: 茶色の矢印）も順行路（b: 青色の矢印、右）と同じ重み行列 W を保持していなければならないと考えられてきたが、この逆行路が持つ重みを適当な行列 B で置き換えても学習が可能であることを示した。しかも、この行列 B は更新が不要である。
なぜこのようなことが可能になのか？それは、順行路の重み W の方が、更新を繰り返すごとに次第に B に寄せていくことになるためである。このような手法を __feedback alignment__ と呼ぶ。
### forward/backward 処理を並列実行できる微小回路
[Sacramento et al. 2018](https://papers.nips.cc/paper/8089-dendritic-cortical-microcircuits-approximate-the-backpropagation-algorithm) Fig. 1A
![fig1a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/420723/0258d54e-72a4-03bb-c746-24f963578166.png)
「backprop の６つの問題点」の 5 に関連する研究である。介在ニューロン（赤）を導入した微小回路モデルにより、 forward (推論) / backward (重み修正) 処理が同時に行えることを示した。
### ”想定外”に反応するドパミン作動性ニューロン
[Gadagkar et al. 2016](https://science.sciencemag.org/content/354/6317/1278.long)
歌っている最中の鳥に、その歌声を歪曲して聞かせると、歪曲しなかった場合とは大きく異なる振る舞いを示すドパミン作動性ニューロンが存在することが示された。また、鳥は聞こえた歌声に合わせて音の高低を変化させていることも確認され、これが「backprop の６つの問題点」の 6 で取り上げた正解ラベル (Y) の情報源となっているかもしれない。
### backprop を使わずに、局所的な誤差で学習
[Nøkland et al. 2019](https://arxiv.org/abs/1901.06656)
![fig1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/420723/e507c1a0-1e62-23ae-b014-24734acb4484.png)
今までの研究は「どのように backprop を実現するか」に注目してきたが、この論文ではそもそも backprop を使わずに、各層ごとに計算した誤差で学習を行うことを提案している。この時に学習で用いられる __local loss function__ は、 __sim__ (Sim Matching Loss) と __pred__ (Cross Entropy Loss) の２種類の誤差の和であり、これらはそれぞれ、ニューラルネットワークの各層から生えたサブネットワークによって計算される。
これら２つの誤差の組み合わせにより、画像認識課題において、従来法とほぼ同等の性能を示すことができた。また、各層の重みの更新には上位層の計算を待つ必要がないため、並列計算も可能である。
## 最後に
「飛行機を生み出したのは航空力学であり、鳥を模倣することでは、飛行機は生まれなかった」
Biologically Plausible Neural Network の実現に関しても、このような否定的な主張は根強い。そして、確かにその通りである。しかし、この例に即して言うならば、「鳥を研究することは確かに航空力学を進歩させ、更なる飛行機の改良につながる」。
脳とコンピュータの関係も、鳥と飛行機の関係に似ている。互いの研究領域が交差することで、予想外の発見が生まれるのではないだろうか。この記事が、 Biologically Plausible Neural Network という、魅力的な複合分野に興味を持つきっかけとなってくれたら幸いである。