Sideswipe

情報工学、計算論的神経科学など、真面目なこと書くブログ。お仕事の話は Twitter: @kazoo04 にお願いします。

海馬のモデル

これは 人工知能アドベントカレンダー の21日目の記事です。

海馬の生理学的な話はアドベントカレンダー9日目で扱ったので、併せてご覧ください。

kazoo04.hatenablog.com

海馬の機能

海馬(hippocampus)がどんな機能を担当しているのかをおさらいしておきましょう。
大きく分けると、以下の2つが挙げられます。

エピソード記憶

特に前者のエピソード記憶については昔からよく研究されており、海馬が障害されると前向性健忘(新しくものを覚えることができない)がみられます*1。たとえば、ある人に会って、挨拶をしたり会話を交わしたりしている間は問題ないのですが、別れて10分ほど経ってからまた同じ人に会うと、まったく覚えていないのでまた初めて出会ったかのように振る舞います。年をとった自分の顔も覚えられないので、前向性健忘が起きてから何年も経ったあとに鏡を見ると患者は困惑しますが、それもやはり10分程経つと驚いていたこと自体も忘れてしまいます。

その他様々な知見から、脳が得た情報というのは大脳皮質を経由してからいったん海馬に貯蔵され、その後時間を掛けて「これはずっと覚えておくべきだ」と判断されたものだけが少しずつまた大脳皮質に保存されるという多段構成になっているといわれています。前向性健忘も、海馬を失っても大脳皮質は残っているので、昔の記憶は失われなかったというわけです。

自己位置推定

場所細胞(place cell)、グリッド細胞(格子細胞, grid cell)、頭の向きに選択的に反応する細胞(head direction cell)などの場所に選択的に反応するニューロンが見つかり、「自分がどこにいるのか」、「目的地はどの方向にどれくらい離れた場所にあるか」といった情報も海馬で処理されていることがわかりました。

海馬の本当の役割はなにか?

エピソード記憶と自己位置推定は全く別の機能のように思えるので、なぜ海馬がそのような質の異なる情報を一手に担っているのかと思いますが、エピソード記憶的に考えれば、「どこで」起きた情報かは非常に重要ですから、場所細胞と密接に関わっているということはいえます。また、大脳皮質の感覚野には、聴覚、触覚、視覚といった様々な情報(モダリティ, modality)が別々の場所に入力されてきますが、それらは少しずつ統合されて様々な感覚が混じったもの(超感覚種)になり、その結果だけが海馬に入力されます*2エピソード記憶を組み立てるときは、そのような高次の情報を扱えたほうが効率よく情報を格納できる*3ので、海馬で位置情報とエピソード記憶を一緒に扱うのは都合がいいのでしょう。

それ以上に、この2つは別々の機能に思えるというだけで、実は単一のものであり、エピソード記憶と自己位置推定は同じような処理によって成り立っているのかもしれません。両者を担当している細胞は完全に別々なのか、一部は共通しているのか、完全に共通しているのかといった重なり具合についてはまだわかっておらず、今後注目すべきトピックかと思います。

海馬のモデル

生理学的な知見は蓄積されてきていて、海馬体のどの部分がどこと接続されているかといった情報は比較的よく知られています。
とはいえ、そのような構造がどのようにして、なにをしているのかについてはよくわかっていません。このあたりは様々なモデルが提案されていますが、ここでは少し変わった趣向のモデルを紹介します。

Slow Feature Analysis

Slow Feature Analysis (SFA) *4を使ったモデルは一部で人気があるようで、視覚野や海馬のシミュレートに使われています。

SFA は日本では非常にマイナーな手法なので、まずその概念について説明します。

SFA とは

動物を取り巻く環境は時々刻々と変化していきますが、その変化の度合いは様々です。たとえば、「今自分がいる場所」はまったく変わっていないか、ごくゆっくりとしか変わりません(車や飛行機に乗っているときは別ですが…)。逆に、目で見ているものは眼球運動によって(自覚できないが)かなりガクガク動いていますし、そもそもすべての感覚器からの入力にはノイズが含まれるのですべての信号は少なからず高速に変化しています。

いま、目の前を車が横切るように走っていくとします。視覚入力を局所的に見れば、時間にそって車に含まれる様々な形のエッジやテクスチャ、動きの情報がどんどん変化していきます。ただ、その変化の度合いは情報の性質によって異なり、単純なエッジのような特徴はどんどん変化していく一方で、「見ているものは車である」という情報は視界に入ってから出て行くまでは変わりません。さらに「今自分は屋外にいる」という情報はもっと変化の度合いがゆっくりしています。

このように、より高次の情報というのは、時間領域で見ると「ゆっくり変化する」という特徴がある(傾向がある)といえます。そこで、時々刻々と変化するデータ(時系列データ)から「ゆっくり変化する」データを抽出できたら、なにか有意義なことができるかもしれません。

SFAでは、時系列データから最もゆっくり変化する成分(slow feature)を抽出するためのアルゴリズムで、当初は視覚野のモデルとして提案されました。

f:id:kazoo04:20151221012316p:plain
SFAの概念。入力(x)は高速に変動していくが、その中からゆっくりと変化する成分だけを抽出する(y)。Wiskottらの資料から引用

その後、海馬のモデルとしてSFAを使う研究が発表され、比較的シンプルな方法で場所細胞やグリッド細胞を再現することができました。

SFA による海馬のモデル

ここでは Franzius らの研究を紹介します*5

なにをしてるのかちょっとわかりづらい研究なので補足すると、場所細胞の再現のために、ゲームのような三次元空間をコンピュータ上に用意して、そこをキャラクター(ネズミ)が動き回ります。キャラクターには目の部分にカメラがついているので、キャラクターの動きにあせて視覚情報がどんどん変わります。要するにFPSゲームと同じですね。


f:id:kazoo04:20151221004713p:plain
視覚情報を入力し、SFAで特徴抽出をして最後にsparse coding + ICA(独立成分分析)をする、というアーキテクチャ。少しDeep Learning (CNN) に似ているところがある。Franzius et al.(2007) から引用

得られた視覚情報を Franzius のモデルに入力すると、グリッド細胞のような反応をするニューロンや、場所細胞のような反応をするニューロンが得られた、というものです。
下図はマウスの実際の場所細胞の記録です。

f:id:kazoo04:20151221010424p:plain
マウスの場所細胞の測定結果*6。これは海馬支脚の細胞を測定している。Boccara et al.(2010) から引用

次に示すのが、Franziusらのモデルによるシミュレーション結果です。

f:id:kazoo04:20151221010023p:plain
シミュレーション結果。Franzius et al.(2007) から引用

ただ、「ゆっくりと変化する信号を抽出する」という単純な発想*7で、なかなか悪くない結果が得られます。

生理学的な根拠

ただ、いくらSFAが場所細胞とグリッド細胞の再現に有効そうなことがわかっても、海馬で「ゆっくり変化する信号を抽出する」ようなことをしているのでしょうか?生理学的な根拠がないと、優れたアルゴリズムでも脳のモデルとしては説得力に欠けます*8

この点では Sprekeler らが SFA が STDP で再現できるとの研究*9を発表していて、私がまだちゃんと理解していないので細かく紹介できないのですが、完璧ではないにしろ、一部については生理学的な妥当性もあるようです。

STDPってなんだっけ?という方は、過去のアドベントカレンダーを参照してください。

kazoo04.hatenablog.com

おわりに

今回は海馬はもちろん、あまり知られていないSFAの紹介も兼ねて書きました。

海馬は「記憶」というわかりやすくてロマンがあって昔からその機能が知られている部位なので、色々なモデルが提案されています。日本でも海馬のモデルを研究している方が結構いるようです。

ただ、たとえば海馬は扁桃体(恐怖などを司る部位で、恐怖を感じたときの記憶は強く残る)の影響を大きく受けますが、このような感情に応じて記憶の残りやすさが違うといった点や、海馬から大脳皮質にどのように記憶が転写(固定)されるのかといった長期記憶との関係についてはわかっていない点が多く、これらを組み込んだモデルも皆無です。

一方でSFAのような変わった角度からのアプローチがあり、それなりに成果も出ているので、今後は生理学的なアプローチはもちろん、計算機科学な発想から神経科学的根拠を求める逆のアプローチも活発になるのではないかなと思います。

*1:ある程度の逆行性健忘も見られることが多い

*2:E G Jones, T P Powell, An anatomical study of converging sensory pathways within the cerebral cortex of the monkey. Brain: 1970, 93(4);793-820

*3:例えば人は写真のように正確に視覚のコピーを撮っておけるわけではなく、もっと抽象的な形でしか記憶できない

*4:Wiskott, L. and Sejnowski, T. Slow feature analysis: unsupervised learning of invariances. Neural Computation, 14(4):715--770, 2002.

*5:Franzius M, Sprekeler H, Wiskott L. Slowness and sparseness lead to place, head-direction, and spatial-view cells. PLoS Comput Biol. 2007 Aug;3(8):e166.

*6:Boccara, C. N., Sargolini, F., Thoresen, V. H. et al.: Grid cells in pre- and parasubiculum. Nat. Neurosci., 13, 987-994, 2010

*7:あとスパースコーディングを組み合わせることが重要で、そうでないと場所細胞のような特異的に反応するニューロンが得られない

*8:鳥がジェットエンジンを搭載していないように、必ずしも知的なマシンを作るのに生理学的な妥当性は必要ではないが、現在はまったく手がかりがないので、とりあえず生き物の模倣をしようという考え

*9:Sprekeler H, Michaelis C, Wiskott L. Slowness: an objective for spike-timing-dependent plasticity? PLOS Comput Biol 3:1136–1148.

運動野のモデル

これは 人工知能アドベントカレンダー の20日目の記事です。

今までは主に感覚器、つまり入力を扱いましたが、今回は出力について扱います。
今もさまざまな生物を模したロボットがあり、人型ロボットも今では珍しくなくなりましたが、どうしても動きを見ていると「ロボットっぽい」と感じてしまいます。これはアクチュエータの問題もありますが、ソフトウェア側の問題もあります。生物とは異なる制御方法をしているので、必然的に生き物のような動きにはならないわけです。

一次運動野のモデル

コラム構造

そもそも、一次運動野のコラムがそれぞれどんなことを担当しているのかについては統一見解がないのですが、他の領野同様に各コラムはある特異的な出力のときにだけ反応することはわかっています。

たとえば、

  • 筋肉をどれくらい伸縮させるかと関節をどれくらいの角度にするかは別々のニューロンが担当している*1
  • ニューロンは一対一でどこかの筋肉を制御しているわけではなく、あるニューロンは特定の複数の筋肉を制御している*2
  • ニューロンの活動の活発さは実際に発揮される力の大きさに比例する*3*4

などはわかっています。特に一次運動野の働きを解明することは、BCI(Brain Computer Interface)開発に非常に重要なため、運動野の活動がどのように運動に反映されるのかは活発に研究されています。

運動制御のモデル

机の上のコップを手に取るような運動を考えます*5。目標(コップ)に手を到達させるためには、目標の座標は(ほぼ)唯一の正解があります*6。しかし、そこまでにどのような軌跡で手を動かせば良いのかは無数の答えがあります。どの筋肉を、どのタイミングで、どれくらいの力で収縮させるかはいくらでもパターンが考えられますが、人は誰でもほとんど同じような軌道で手を動かします。大雑把に言えば、「なめらかに」動きます。そのため、運動制御においてはなんらかの基準があってその基準に従って軌道を決めていると考えられます*7

昔からこの基準(評価方法)には様々なものが提案されていましたが、ここでは特に有名なモデルを紹介します。

躍度最小モデル

躍度はあまり一般的でない言葉ですが、手の位置を時間で3回微分したものです。躍度最小モデル*8は、躍度の2乗を運動の開始から終了まで積分した量が最小になるような軌道を適切とします。この意味は一見よくわかりませんが、「加速度の変化率が小さくなるような軌道」が良い軌道ということで、力の入れ具合の変化があまりないように動かすということになります。このモデルは非常に簡単でシミュレーションも容易ですが、到達運動のかなりの部分を説明することができます。

分散最小モデル

Wolpertの分散最小モデル*9は、躍度最小モデルとはまた違った評価基準で到達運動の軌道を説明します。

人の筋肉も神経も、必ずノイズの影響を受けます。筋肉を動かそうと思っても、誤差が全く無い思った通りの動きをできるわけではなく、少なからず変動があります。神経もたとえば今関節がどれくらい曲がっているかの情報は正確な値が得られるわけではなく、やはりノイズの影響を受けます。このノイズは、概ね大きく、力強く手を動かすとそれに比例して増加すると考えられます。

そこで、このノイズを最小にし、手が到達したときの誤差が最も小さくなるように手を動かすというのが分散最小モデルです。言い換えれば、「ノイズだらけの環境で、なるべくノイズの影響を受けないような動かし方」が良い、という基準です。

躍度最小モデルと違って、最終到達地点の正確さを基準にする点でずいぶん異なるモデルですが、Wolpertの実験ではこの誤差を減らすように運動を続ければ、最終的には非常になめらかかつ自然な動きが得られることが実験的にわかっています*10。分散最小モデルでは、生体に必ず存在する避けては通れないノイズを、むしろ積極的に利用している点で新しい考えです。今では、この分散最小モデルを改良したモデルがいくつか提案されています。

まとめ

運動には小脳の関わりが不可欠のため、これは後日の小脳の項目で改めて触れることにします。
運動野は生理学的知見とモデルの結びつけが不十分な点もあるものの、特に到達運動に関しては様々な研究があり非常に自然な軌道を得ることに成功しています。

今後は運動野と他の領野との関係や、一次運動野のコラム構造がどのように構成されているのか、また躍度最小モデルにしろ、分散最小モデルにしろ、脳のどの領域がどのように連携してこのフィードバック制御を実現しているのかといった点が重要になってくると思います。

*1:Kakei S, Hoffman DS, Strick PL. Muscle and movement representations in the primary motor cortex. Science 285: 2136–2139, 1999.

*2:P D Cheney, E E Fetz, S S Palmer Patterns of facilitation and suppression of antagonist forelimb muscles from motor cortex sites in the awake monkey. J. Neurophysiol.: 1985, 53(3);805-20

*3:E V Evarts. Relation of pyramidal tract activity to force exerted during voluntary movement. J. Neurophysiol.: 1968, 31(1);14-27

*4: P D Cheney, E E Fetz. Functional classes of primate corticomotoneuronal cells and their relation to active force. J. Neurophysiol.: 1980, 44(4);773-91

*5:目で見た情報からどこに手を伸ばせば良いのかを計算する必要がある(逆モデル)が、視覚情報は二次元で実際の世界は三次元のため、これは厳密に解を得ることはできない。これを不良設定(ill-posed)問題 とよぶ

*6:ただし、コップを正しく手に取るためには、適切に手首をひねる必要があり、ほとんど無意識に行う運動ではあるがこのような手首のひねりが適切にできないような障害があり、比較的複雑な処理をしていると考えられている

*7:手を動かしているときに外力が加わると、もともとの軌道に戻ってからまた手を伸ばすような動きが見られることも、「理想の軌道」があってそれに沿って動いているということを支持する

*8:Flash, T., Hogan, N. 1985. The coordination of arm movements: an experimentally confirmed mathematical model. J. Neurosci., 5, 1688-1703.

*9:Harris C.M. and Wolpert, D.M. Signal-dependent noise determines motor planning. Nature, 394, 780-784, 1998.

*10:ただし、このモデルは「ノイズの分散が運動指令の2乗に比例している」ことを仮定しているものの、生理学的妥当性は充分でない

聴覚野のモデル

これは 人工知能アドベントカレンダー の19日目の記事です。

視覚野に続いて、聴覚野のモデルについて考えてみましょう。
ただ、視覚野と比べると聴覚野は不明な点が多く、一次聴覚野(A1)はまだしもA2以降の連合野のことはあまりわかっていません。それでも一次視覚野で得られた知見も参考にしつつモデル化を行う研究があります。

聴覚野のおさらい

アドベントカレンダーでは7日目で扱いました。必要に応じて併せてご覧ください。

t.co

トノトピー

一次視覚野にははっきりとしたレチノトピーマップが観察されます。一次聴覚野もトノトピー*1といって、音の波長(周波数)に応じて相対的な位置関係が対応しており、大雑把に言うと低周波数(だいたい100Hz)に反応するニューロンは一次聴覚野の背側、高周波数(だいたい20kHz=20,000Hz)に反応するニューロンは内側のほうにあり、皮質上をグラデーションのように担当する周波数が異なるニューロンが配置されている、と考えられてきました。

ところが、少なくともマウスの聴覚野を詳細に調べてみると、視覚野ほどは整然と並んでいない、むしろランダムといっていいような配置になっていることがわかりました*2*3

f:id:kazoo04:20151219005119j:plain
マウスの聴覚野のコラムがどの音によく反応するかを2-photon calcium imaging(2光子カルシウムイメージング)によって調査した図。以前から考えられていたような理路整然とした配列は見られないように思える (Bandyopadhyay et al. 2010)より

ここではいくつかの仮説が考えられます。

  • 音の分析に位相マップ(ここではトノトピー)は何らかの理由(おそらく音の物理的な特性)で必要が無い
  • 内側膝状体(medial geniculate nucleus, MGN)や下丘(inferior colliculus,IC)などの一次聴覚野より下位の領域ではトノトピーが重要だが、一次聴覚野ではより高度な情報処理を行っているので、マップが崩れているように見える
  • 一次聴覚野もある特定のルールに従って位相を保持しており、実は整然と並んでいるが、パッと見の印象ではそれが見られない

聴覚野のシミュレーション

ここでは、Terashimaらの研究を紹介します。基本的な考え方自体は簡単で、「一次聴覚野も一次聴覚野も、入力が違うだけでそれぞれの領野では同じ理論に従って動いている」とします。動作原理は同じでも、視覚情報が入ってくるのか、聴覚情報が入ってくるのかで情報の性質は違いますから、それに適応しようとすることで結果的に違った構造が生まれると考えるわけです。

たとえば、視覚情報は、「近くにあるものは似た色・テクスチャをしている」という特徴があります。写真を見たときに、ある部分から1mmだけ離れているところを見たら、多分大体同じ色なことが多く、ガラッと変わるということは少ないでしょう。

逆に、聴覚情報(音)はある周波数にピークがあっても、そこから僅かに違う周波数にもピークがあるとは限らず、むしろ(倍音など)離れた周波数との相関関係があります *4

このような特性の違いが視覚野と聴覚野の違いを生み出すと考えて、TICAを使ってマップを作ると、以下の様な出力が得られます*5

f:id:kazoo04:20151219011358p:plain
TICAによって得られた視覚野のマップ。前回同様、近いコラム(マス目)は似たような刺激に反応する

f:id:kazoo04:20151219011527p:plain
TICAによって得られた聴覚野のマップ。局所的に似たコラムが集まっているところもあるが、ほとんどランダムに見えるところもあり、あまり一定の法則があるようには見えない

ご覧のように、同一のアルゴリズムにも関わらず、視覚野ではレチノトピーが得られ、聴覚野ではランダムに近い出力が得られました。

連合野のモデル

二次聴覚野以降はわかっていないことが多く、少なくともヒトの二次聴覚野ではリズムやメロディの認識に関わっていることはわかっていますが、他にも音源の位置を処理している部分や、純音にはほとんど反応しないが複数の音が組み合わさっている特定の音に反応する部分、一次聴覚野の入力を組み合わせてより複雑な特徴抽出をする部分などは観察されているものの、どの部分がどのような仕組みで何を処理しているのかについては、視覚野ほどはわかっていません。

まとめ

聴覚野は視覚野ほどわかっておらず歯切れの悪い記事になりましたが、今回紹介したTICAを用いたモデルでは、「視覚野と聴覚野は同じ仕組みで情報処理をしているのではないか?」という魅力的な仮説を紹介しました。視覚野が行っているような階層的な処理を聴覚野にも当てはめることで、より妥当なモデルが得られるかもしれません。

また、まったく関係のなさそうな部分が同一のアルゴリズムで動作しているという仮説を支持する証拠が増えれば、「ある部分だけ解明すれば、残りの部分も芋づる式に解明できる」ことになりますから、AGI研究としては非常に魅力的に思えます*6

次回からは感覚野ではなく、運動野にスポットをあてて、動物がいかにして滑らかで無駄のない動きを実現しているかについて見ていきましょう。

*1:単に周波数マップともいう。こちらのほうがわかりやすいかもしれない

*2:Bandyopadhyay et al. Dichotomy of functional organization in the mouse auditory cortex. Nature Neuroscience, 2010; DOI: 10.1038/nn.2490

*3:ただし、どれくらい乱雑なのか、人間ではどうなのかといったところはよくわかっていないことも多く、トノトピーの存在を支持するような研究もあり、より詳細な測定が必要だと思われる

*4:Terashima, H. and Hosoya, H.: Sparse codes of harmonic natural sounds and their modulatory interactions, Network: Computation in Neural Systems, Vol. 20, No. 4, pp. 253–267, 2009

*5:寺島裕貴, 岡田真人, 視覚野・聴覚野地図の同一適応アルゴリズムによる解釈 から引用

*6:もっとも、一次視覚野ひとつとっても非常に複雑な処理をしていることがわかっているし、脳は大脳皮質だけでなく様々な部位から構成されているのだから、「これだけがわかれば完璧」な統一的理論があるとは到底思えない

視覚野のモデル

これは 人工知能アドベントカレンダー の18日目の記事です。

今日からは、脳の代表的な部位に対して、いかにして計算機で再現するかといった部分を見ていきます。

視覚野を再現するには

視覚野の働きを再現するときの主な方針としては、以下のようなものが挙げられることが多いようです。

  • レチノトピーを再現
  • 階層的な特徴抽出
  • スパースネス

言うまでもなく、この3つで視覚野のすべてを説明できるわけではありませんが、概ね悪く無い結果が得られるので方針としては悪くありません。

視覚野のおさらい

まず動物(主に哺乳類)の視覚野をおさらいしましょう。アドベントカレンダーでは7日目で扱いました。必要に応じて併せてご覧ください。

t.co

特に大事なのは、特定の視覚刺激にだけ反応するコラムという構造が集まっていること、隣のコラムは少しだけ違う刺激によく反応する、言い換えると似たような処理をするコラムが集まっているということがまず挙げられます。

f:id:kazoo04:20131217175228j:plain
一次視覚野のコラム構造(再掲)

もう一つは、このようなコラムの集合がさらにひとかたまり(領野)となっていて、各領野は階層的な処理をしているということです。

f:id:kazoo04:20151119013115p:plain
腹側皮質視覚路の図(再掲)

V1(一次視覚野)では単純な線にしか反応せず、あるコラムは水平な線、そのすぐ近くのコラムはたとえば10度傾いた線、遠くにあるコラムは90度傾いた垂直な線に強く反応する、といった具合です(下図)*1。V2ではV1から入力を受けて、線の組み合わせ、つまりL字型の模様(コーナー)とか、もう少し複雑な例だと渦巻きのような形に反応するコラムがあります。

f:id:kazoo04:20131217175325j:plain
特定の刺激にのみ強く反応するニューロンの様子(再掲、Hubel, 1968)

IT野になるとさらに複雑な刺激に反応するコラムが現れ、たとえば手ならどのような角度で見ても、実写でもイラストでもとにかく手であれば反応するものや、顔に反応するものが現れます。このように、視覚野は低次の領野では単純な図形しか処理できませんが、これを繰り返していくことで少しずつ複雑なものが認識できるような階層構造になっています*2

レチノトピーの再現

レチノトピーや方位選択性をもった処理をコンピュータで再現するにはどうしたらいいのでしょうか。実は視覚野はかなり古くから研究されていることもあって、コンピュータで再現する(ことによってなにか有益なことに役立てる)アプローチも活発に研究されてきました。

たとえば、一次視覚野の反応はガボール(Gabor)関数でとてもよく近似できることが1987年には既にわかっていました*3

1982 年にも Kohonen が Self Organizing Map (自己組織化写像、SOM) を提案しました。これは一次視覚野を観察して得られた知識から、大幅な簡略化を加えつつも自己組織的に脳のコラム構造のようなものを生成できます。また、SOMは入力として画像でも音声でも与えることができ、次元数が多くても良いので制限が少なく、かつわかりやすいモデルです。

他にも、Yangqing Jia と Sergey Karayev が提案した Self-Organizing Sparse Codes では、SOMを改良して一次視覚野に似たマップを得ることができています。

f:id:kazoo04:20151217233648p:plain
Self-Organizing Sparse Codes に画像を学習させた結果。エッジに特異的に反応するようなコラム(SOMの場合はノードと呼ぶ)が得られており、かつ物理的に近くにあるノードは似たような画像によく反応するようになっている(Yangqing, 2010)

他の手法としては、Topographic Independent Component Analysis (Topographic ICA, TICA) が挙げられます*4

f:id:kazoo04:20151217234155p:plain
TICAによって得られたマップ。先ほど同様、エッジに特異的に反応するノード(Gaborフィルタで近似できる)が得られており、かつ近くのノードは似た刺激に反応する。

スパースネス

スパースコーディング(sparse coding) と呼ばれる方法が見つかってからは、この考えが非常に重要であることがわかって様々なところで使われるようになりました。神経科学でもそうですし、Deep Learningでも使われているこの概念について簡単に説明します。

スパースとは少数である、疎であるという意味ですが、ここでいうスパースコーディングは、なるべく少ない数の神経細胞の活動によって、なるべくたくさんの信号をなるべく正確に表現できるようにする、ということです。

下の図を見てください。左上は自然画像(写真)です。ここから、今まで見てきたエッジに反応するコラム構造のようなものを得ます(図右上、ここではこれを辞書と呼ぶ)。さて、次に図下段の一番左にある模様を再現したいとします。スパースコーディングでは、なるべく少ない辞書の組み合わせでこれを再現しようとします。ここでは、3つの辞書*5を選んできて足すことで近似できます。

f:id:kazoo04:20151218000240p:plain
スパースコーディング*6

なぜわざわざそんなことをするのでしょうか?たとえば、フーリエ変換やウェーブレット変換と呼ばれる手法でも、画像をたくさんの要素(波)に分解して、それを組み合わせて任意の画像を表現するということは行われます。しかも、こちらのほうがたくさんの基底を組み合わせてなるべく正確に表現しようとします。正確に表現できるならそれに越したことはないように思えますが、なぜスパースコーディングがそんなに重要なのでしょうか。

これにはいくつかの理由があります。ひとつは、脳の神経細胞数は有限なため、なるべく少ない神経細胞で様々な情報を表現できるようにしたほうが得だということです。極稀にしか使わないような専用の神経細胞を大事にとっておくよりは、たとえ少し精度が落ちてもあらゆるシーンで利用可能な反応的な神経細胞を用意しておいたほうが良いというわけです。もうひとつの理由は、どの情報も少数の神経細胞の発火で表現できるのですから、当然省エネになります。これは生存する上で非常に大切です。いくらパワフルな処理が可能でも、エネルギーの供給ができなければ餓死してしまいます。
最後の理由は、複雑な情報をより明確な形で表現できるということです。どのような情報でも少数の神経細胞しか発火しないということは、ある種の情報抽出ができているということですから、一見複雑に見える入力からその本質的な部分を取り出していると考えることができ、そうすると階層的な情報処理にも役立ちます*7 *8

階層的な情報処理

ここまでアドベントカレンダーを見てきた方にとっては、既にDeep Learningで階層的な情報抽出・情報処理がいかに大事かは既におわかりかと思います。

f:id:kazoo04:20151215220703p:plain

段階的に情報を処理することによって、ネットワーク全体の能力をフルに使うことができるのです。実はスパースコーディングはこの段階的な処理に欠かせない概念で、Deep Learningの発展にも大きな役割を果たしました。この辺りの話は、過去のアドベントカレンダーを参照してください。

kazoo04.hatenablog.com

kazoo04.hatenablog.com

また、そもそも少しくらいコラム構造が正確な働きをしていなくても、階層的な構造をしているということ自体が視覚の認識において非常に重要な役割を果たしていることがわかっています*9。つまり、単に性能アップのために多層にする、というわけではなく、情報処理の観点から多層化は必須の存在であるといえそうです。

まとめ

今回は視覚野のモデルについて、現在研究されている部分を広く浅く紹介しました。視覚野、特にV1については完璧には程遠いにしろそれなりに近い結果が得られるモデルができていることや、Deep Learningの成功によって遠回りではありますが実践的な裏付けもされてきています。視覚野で得られた知見を活かすことで他の領野の機能を模倣する、というアプローチも十分ありえます。今後も活発な研究がなされる分野です。

*1:なぜ近くのコラムは似ている入力に反応するのか、という点については、回転や平行移動に対して頑健な処理を行うためだと考えられている。たとえば、V1の超複雑型細胞は、受容野のどの場所に線が提示されても、その線の傾きさえ合っていれば反応する。この超複雑型細胞の働きは、ある特定の場所のコラムの入力を束ねることで実現できる

*2:Quiroga RQ, Reddy L, Kreiman G, Koch C, Fried I. Invariant visual representation by single neurons in the human brain, Nature. 2005 Jun 23;435(7045):1102-7.

*3:Judson P. Jones and Larry A. Palmer, An Evaluation of the Two-Dimensional Gabor Filter Model of Simple Receptive Fields in Cat Striate Cortex, Journal of Neurophysiology, Vol. 58(6), pp. 1233–1258, 1987.

*4:Aapo Hyvärinen, Patrik O. Hoyer, and Mika Inki, Topographic Independent Component Analysis, Neural Computation 13(7):1527-1558, 2001

*5:正確には基底と呼ばれるもの

*6:Yu an Ng. Feature learning for image classification, ECCV10 のスライド

*7:Vinje WE, Gallant JL. Sparse coding and decorrelation in primary visual cortex during natural vision. Science. 2000 Feb 18;287(5456):1273-6.

*8:Olshausen BA, Field DJ. Sparse coding of sensory inputs. Curr Opin Neurobiol. 2004 Aug;14(4):481-7.

*9:A Saxe, PW Koh, Z Chen, M Bhand, B Suresh, AY Ng, On random weights and unsupervised feature learning, ICML2010

遺伝的アルゴリズム

これは 人工知能アドベントカレンダー の17日目の記事です。

Advent Calendar 2015ランキング - Qiita によれば購読者数ランキングで3位になったそうです。最近は内容があまり充実していませんが引き続きよろしくお願いします。

そろそろ機械学習の話も終わりにして、次回からは具体的に脳の機能をいかにして再現するかという点に焦点を絞っていきますが、その前にすこし趣向を変えて、遺伝的アルゴリズムについて説明します。

遺伝的アルゴリズムとは

遺伝的アルゴリズム(genetic algorithm, GA)は、生命の進化を模して計算を行うことで、従来より柔軟な処理ができるのではないかという発想から生まれたものです*1

生命は最初はごく単純な存在でしたが、非常に長い時間をかけて少しずつより環境に適応するよう進化してきました。「進化」という方法によって、最初は海を漂うタンパク質程度でしかなかったものが、泳ぐようになり、光合成するようになり、空を飛んだり、木に登ったり、さらには二足歩行をして月に行ったりすることができるようにまでなったことを考えれば、進化そのものをコンピュータで扱うという発想は自然なものといえます。

そんなわけで、1975年には John Henry Holland によって早くも遺伝的アルゴリズムが誕生しました(タイミング的には、パーセプトロンより後で、バックプロパゲーションよりは前、といったところ)。

初期の遺伝的アルゴリズムは効率の点からもはや使われていませんが、その改良アルゴリズムは今でも現役で使われています。有名な例だと、新幹線のN700系のノーズ形状は遺伝的アルゴリズムで設計されたようです。他の例としては、昔は巡回セールスマン問題*2の近似解法としてかなり盛んに研究されました。

遺伝的アルゴリズムが解けるのは基本的に組合せ最適化と言われる問題で、この世のありとあらゆる問題が解けるわけではありませんが、それでも強力な手法です。

特徴

遺伝的アルゴリズムが優れている点は、メタヒューリスティクスといって、「完璧ではないにしろ、幅広い問題*3に対して汎用的に適用できる」というものが挙げられます。
普通、アルゴリズムといえばある特定の問題を解くための手法であって、並び替えなら並び替えの、データ検索ならデータ検索の専用アルゴリズムがあるわけですが、遺伝的アルゴリズムは比較的どの問題を解かせてもそこそこ良い解を求めることができます。誤解を恐れずに言えば、万能というわけです*4

そのため、「一体どうすれば解けるのか解法がわからないので、完璧な解は諦めて、遺伝的アルゴリズムでそこそこ良い解を求めよう」といったことができるのです。

アルゴリズム

進化を模倣するなんてさぞ複雑なアルゴリズムなのだろうと思われますが、実際のところその概念は非常にシンプルです。
ここではわかりやすく  x^2-6x+9=0 のときの x の値を求めましょう。
まず、解の候補をいくつか生成します。初期のビットストリング型GAと呼ばれる、値を2進数で扱うものにして、とりあえず4bitで表現することにします。ランダムに4つくらい解の候補を生成しましょう。カッコ内はわかりやすさのための10進数表記です。

  • 0000 (0)
  • 0101 (5)
  • 1100 (12)
  • 1101 (13)

この解の候補を個体(individual)と呼びます。つまり、ひとつひとつが生命(遺伝子)だと考えるわけです。この個体を進化させて正しい解を求めるのが遺伝的アルゴリズムの目的です。この後の操作は

  • 選択(淘汰)
  • 交叉
  • 突然変異

の3つを繰り返すだけです。

選択

選択(selection)は、今の個体がどれくらい良いかを見ます。現実世界で例えるなら、環境に適応していない個体は厳しい自然界を生き残れず死ぬ可能性が高く、環境にうまく適応できる個体は生きて子孫を残す可能性が高くなるわけです。その適応度を測定します。ここでは、さきほどの  x^2-6x+9=0 の x に値を実際に当てはめてみましょう。

  • 0000 (0) → 9
  • 0101 (5) → 4
  • 1100 (12) → 81
  • 1101 (13) → 100

この世界では値が0に近い個体ほど優れた生命体なので、どうやら 1100 と 1101 の個体はイマイチのようです。逆に0101の個体はかなり適応度が高い(0に近い)ことがわかります。

交叉

交叉(crossover)はふたつの個体から新しい個体(子供)を誕生させる操作です。さきほどの結果を見ると、 0000 の個体と 0101 の個体が良さそうなので、この2つを選んで子供を作りましょう。交叉の仕方は様々ですが、今回は一点交叉という方法をとりましょう。

適当なところで遺伝子を二つに分割して

  • 0000 → 00 | 00
  • 0101 → 01 | 01

入れ替えます

  • 0000 → 0001 (1)
  • 0101 → 0100 (4)

これが新しい子供です。たいてい2つの個体から2つの子孫ができます。このままだと個体が無限に増えていってしまうので、適応度の低い 1100 と 1101 の個体には死んでもらいましょう。結果として、以下の4つの個体が生き残ります。

  • 0000 (0) ←親
  • 0101 (5) ←親
  • 0001 (1) ←子
  • 0100 (4) ←子

突然変異

突然変異(mutation)は文字通りある個体の遺伝子に突然変異を起こします。ここではどれかひとつの個体を選んで、遺伝子を1つ書き換えてしまいましょう。

  • 0000 (0) → 0010 (2) に書き換え
  • 0101 (5)
  • 0001 (1)
  • 0100 (4)

突然変異は大抵あまり良くない個体が生まれるので一見デメリットしかないように思えますが、個体の多様性が維持でき、後々良い解が出やすくなるというメリットがあるので基本的に必須の操作です*5

これで1ステップ完了です。あとは解が得られるまで、つまり 0011 (3) の個体が誕生するまで計算を繰り返します*6

より複雑な例

先の例は簡単すぎましたが、実際にはどのように設計すればよいのかわからないようなものであっても、「どれくらい良いか」の基準だけがあれば遺伝的アルゴリズムで解を探索できるので、以下の動画のように適当な身体と間接を与えてうまく移動できるような仮想生命体を作ったりすることができます。

www.youtube.com

www.youtube.com

まとめ

実際の生物も、どのような性質があればこの世界で上手く生き残っていけるかという正解がわからない環境でうまく適応していく必要があります。このようなときに、効率は悪いものの前提知識を必要とせずに適応していける遺伝子情報を子供に伝えて進化していくという方法はかなり強力です。

人間は脳の発達によって、後天的に獲得できる能力が非常に多いものの、たとえば反射や快・不快の基準、もっとミクロに言えばどのような神経細胞がどのような場所に配置されどう繋がるのかといったものは当然先天的なものであって、長年自然界に適応していった結果です。

人工知能、汎用人工知能を作る上でも、必ず本能に近い部分を作る必要は出てくると思われますから、このような特別な仮定をおかずに汎用的に最適解を探索できるようなアルゴリズムは少なくとも部分的には確実に必要になるでしょう。

*1:他にも遺伝的プログラミングや人工免疫システムなど色々な手法があり、総称としては進化的アルゴリズム(evolutionary algorithm, EA)や進化的計算(evolutionary computation)と呼ばれるが、ここでは遺伝的アルゴリズムだけに絞って説明する

*2:ある地点から出発して、特定の地点を1回ずつ訪問して、またスタート地点に戻ってくるようなときの最短経路を求める問題。具体的には郵便局員がすべての訪問先を回ってまた郵便局に帰ってくるような問題

*3:とはいっても主に組合せ最適化が対象になる

*4:ノーフリーランチ定理(no free lunch theorem)といって、どんな問題も完璧にできるアルゴリズムは存在せず、汎用的なアルゴリズムは幅広い問題が解ける一方で、特定の問題だけを見ればそれ専用のアルゴリズムには勝てない。万能ナイフはいろいろな状況で使えるが専用器具に比べるとどの機能も中途半端なのと似ている

*5:局所解に陥らないように探索範囲を広げる効果がある

*6:大抵はもっと複雑な問題を扱うため、どんなに繰り返し計算してもピッタリの解が得られない、またはそもそも最適解がわからないことが多いので、十分な数繰り返したら適当なところで計算を打ち切ったり、似たような個体しか生まれなくなったところで打ち切ったりする

ディープラーニング

これは 人工知能アドベントカレンダー の16日目の記事です。

最近もっとも注目を集めている Deep Learning について見ていきましょう。なお、ニューラルネットワークとディープラーニング、人工知能との関係については、以下のエントリも併せてご覧ください。

kazoo04.hatenablog.com

前回までのおさらい

前回はパーセプトロンとバックプロパゲーション(BP)について説明しました。

パーセプトロンは次のような構造をとっています。

f:id:kazoo04:20151007200055p:plain

これだけでもある種の学習は可能でしたが、一方で原理的に学習が不可能な問題があることがわかりました*1

そこでバックプロパゲーションが登場します。これは結果だけ見れば簡単な話で、パーセプトロンをもうひとつくっつけて3層構造にしたというものです。

f:id:kazoo04:20151007200113p:plain

これで非線形な問題も扱えるようになりました。原理的には中間層(真ん中の層)のニューロンの数を増やすことでより難しい問題も扱えるようになります(モデルの表現能力が高くなる、というような言い方をする)*2

さらに、ある種の問題では、中間層のニューロン数をそのまま増やすのではなく、もうひとつ中間層をつけて4層構造にする、またはさらに層を追加して5層、6層構造にすると、よりすくないニューロン数でもモデルの表現能力が上がることがわかっていました。

f:id:kazoo04:20151007200341p:plain

直感的にも、形式ニューロンを組み合わせることでパーセプトロンができ、パーセプトロンを組み合わせることでバックプロパゲーションができたのですから、そのバックプロパゲーションをさらに組み合わせることでなにかあたらしいことができそうに思えます。

ところがこのアプローチはまったくうまくいかないために、結局バックプロパゲーションは3層のまま扱い、中間層のニューロン数を増やすか、パラメータを工夫するなどの方法でしか対応できませんでした*3

なぜうまくいかないのか

4層以上のバックプロパゲーションニューラルネットワーク)は、潜在的な能力は高そうだという期待はありつつも、どうしてもうまく学習することができませんでした。このためにニューラルネットワークは冬の時代を迎え、その後はSVMベイジアンネットワーク的な手法、Random ForestやBoostingなどなど様々な優れた手法が登場したこともあり、パーセプトロンバックプロパゲーションは完全に日陰者となっていました*4

ライン作業で例える

わかりやすく説明するために、ここではニューラルネットワークを工場のライン作業に見立ててみましょう。
ここでは、素材(入力)が送られてくるので、最初の工程(ネットワークの1層目)で簡単な加工をし、次の工程(2層目)に送ります。2層目は前の工程から送られてきた製品をまた加工して次の工程に送ります。これを繰り返していくと、なにかしらの商品が完成して、出力として出てくる(出荷)というわけです。

パーセプトロンの場合は、最初は各工程の作業者はランダムに動くので、メチャクチャな製品が出力されてきます。

f:id:kazoo04:20151215214506p:plain

この商品を見て、「本当に欲しい物はこういうものなんだ」というお手本を見せると、各作業員が「なるほど、これは自分が作ってるものとずいぶん違うぞ。もっと似たものを作れるようにしよう」と動きを改めます。これをどんどん繰り返していくと、次第にどの工程でも適切な作業をしてくれるようになり、望む製品が出荷されてくる、というわけです。

f:id:kazoo04:20151215214512p:plain

多層にするということは、工程の数を増やすということです。なぜ工程を増やすとうまくいかないのでしょうか。

f:id:kazoo04:20151215214536p:plain

出力されたきたものと、実際に作りたいものを比べて、どれくらい工程を修正すればいいのかは、工程が少ないときはとても簡単にできます。自分しか作業する人間がいなければ、可能な限り自分だけでなんとかすればいいので、その工程の限界まで似せるように働けばよいだけです。

ところが、複数工程からなっていると、それぞれの役割分担という今までにないタスクが増えます。理想的には、各工程が適切に作業内容を分割・分担して、どの工程でもそこそこに働き、後の工程は前の工程の内容をうまく組み合わせることでより良い製品ができるようになるべきです。ニューラルネットワークはとても表現能力が高いので、一番最後にある層だけが頑張って活動して、入力に近い層は「どれくらい違うか」の情報が上がってこないので相変わらずランダムに作業しているといったパターンに陥りやすくなります。

f:id:kazoo04:20151215214543p:plain

最終工程が半端に優秀なために、ネットワーク全体が最終工程(最後の層)だけで学習を進めていってしまって、多層にした意味が薄れてしまうのです。これを Vanishing Gradient Problem といいます。

ここをなんとかして、「どの層もきちんと学習して、各層はもちろんネットワーク全体のパフォーマンスを上げる」ようにできればよいのですが、その方法は長らく謎でした。もちろんどの層でどれくらい学習すればいいのかを人間が決めてあげればそれなりに動くこともあるのですが、人間が一々ルールを決めなくても良いようにするのが機械学習なのに、それを人間が教えなければいけないのは本末転倒です。適切な役割分担を自動的に学習させなければなりません。

f:id:kazoo04:20151215214727p:plain

Deep Learning

この解決策はわかってしまえばとても簡単で、まず1層だけで学習し、学習が終わったら2層目を追加して2層目だけを学習し、それが終わったら3層目だけを学習し…というように1層ずつ学習させて、それが全て終わったらすべての層をつなげて、改めてひとつのネットワークとして学習させればよかったのです*5

さて、Deep Learningによってなにがそんなに良くなったのでしょうか。Deep Learningでは層を多段構成にすることで、意味のある階層構造を自動的に獲得できるようになったというメリットがあります。

f:id:kazoo04:20151215220703p:plain
Deep Learning (CNN) による特徴抽出の様子。最下段は1層目のニューロンが反応する刺激(画像)。まずどの画像でも単純な線が抽出され、それらが組み合わさって目やタイヤや脚などのより複雑な部分が抽出され、最後にそれらが組み合わさって顔や車を表現できるようになっている*6

従来、このような特徴抽出は問題ごとに人間が考えていたのですが、DeepLearningによってこの部分はすべて自動的に獲得できるようになり、かつそのほうが人間が長年にわたって試行錯誤を繰り返してきたものより優れていたのです。

また、このような構造は脳の視覚野の働きと非常に似ている部分があり*7、一次視覚野では簡単なエッジ(線)に反応するニューロンがあり、二次視覚野では複数の線を組み合わせたもう少し複雑なパターンに反応するニューロンがあり、さらにIT野までいくと、顔だけに反応するニューロンがあったりします。これはまさしく上記の画像と同じような構造です。

Deep Learningの細かい理論や数学的なモデルについてはここでは細かく触れませんが、前回と今回とで「ニューラルネットワークとはなにか?」「なぜ多層化するのか?」「なぜ今まで多層化できなかったのか?」「Deep Learningはなにが優れているのか?」などといったところはお分かりいただけたかと思います。

*1:非線形な問題は学習できない

*2:モデルの表現能力が高くなればより難しい問題も解けるのなら、どの問題に対しても十分に多いニューロンでBPをすればいい、と思えるかもしれない。ところがモデルの表現能力が必要以上に高くなると、「与えられた学習データはうまく分類できるが、そうでないデータはまったく対応できない」状態に陥りやすくなる。過去問は完璧に解けるが試験本番ではまったく結果を出せない学生と似た状態である。これを過学習とよぶ。また、無駄に多いニューロンは、より多くの計算資源、より多くの学習データを使う

*3:ただし、局所的に結合するようなネットワークだとうまく学習できることは早い段階でわかっていた。これをConvolutional Neural Network (CNN) と呼ぶが、当時はマシンスペックが足りないとか、学習データが十分にないなどの理由で注目はされなかった。これは2010年台になってからDeep Learningとして一躍注目を集めることとなる

*4:あまり注目されないがパーセプトロンバックプロパゲーション(他にはRBFネットワークなど)には他と比べた優れた点があった。SVMやBoostingが主に「分類」、つまり顔かどうかとか、イヌかネコかといった問題に着目していたのに比べ、ニューラルネットワークでは任意の関数を近似する能力がある、という比較的珍しい能力があった

*5:これはかなり簡単に書いてあって、実際はスパースネスを導入したり、次元圧縮をしたりして、より適切な表現ができるようにしなければならないし、学習方法についても活性化関数を旧来のSigmoidからReLUに変えるなど、全体的なアーキテクチャ変更とともに、細かいテクニックも多数導入することによって達成された。特にスパースネスの導入はDeep Learningに限らず極めて重要だが、もう一日アドベントカレンダーが必要になるのでここでは適当にぼかしながら説明している

*6:www.cs.stanford.edu/people/ang//slides/DeepLearning-Mar2013.pptx

*7:というよりは、CNNは人間の視覚野の一部を参考にしつつ設計されているので、似ているのは当然ともいえる

ニューラルネットワークとパーセプトロン

これは 人工知能アドベントカレンダー の15日目の記事です。

今回はニューラルネットワークについて扱います。ニューラルネットワークはかなり歴史が古く、流行ったり廃れたりを繰り返しながら少しずつ進歩を遂げてきました。今日では、Deep Learningによって幅広い層にその存在を知られるようになり、一躍最新のアルゴリズムへと進化しました。ここではそんなニューラルネットワークについて見ていきましょう。

なお、この内容は 人工知能は Deep Learning によって成されるのか? - Sideswipe でも触れているので、かなり重複していますが興味があれば併せて御覧ください。

形式ニューロン

脳が神経細胞のネットワークによって成り立っていることから、これを模倣することで高度な情報処理ができるのではないかと予想するのは自然な流れといえます。マッカロック(McCulloch)とピッツ(Pitts)は、1943年に以下のような形式ニューロン(formal neuron)を提案しました*1*2

f:id:kazoo04:20151007195948p:plain

この図の見方は簡単で、ここでは入力が3つあり、それぞれの入力に対して重みが掛け算されて、その値が閾値を超えていれば出力は1、そうでなければ出力は0となります。
たとえば、入力が1,2,3、重みが0.5, 0.7, 0.9だとすると、1*0.5 + 2*0.7 + 3*0.9 = 4.6 を計算して、閾値と比較するわけです。やっていることは掛けて足して比較するというだけの簡単なモデルです*3

実際の神経細胞は以下のようになっています。

f:id:kazoo04:20151117001007p:plain

いくつかの樹状突起(入力)が細胞体に入っていき、細胞体から1本の軸索(出力)があるという意味では両者はよく似ているといえますが、言うまでもなく神経細胞をかなり簡略化したもので、生理学的な根拠は大幅に削られています。ちなみに出力はコンピュータに扱いやすい0か1かのどちらかです。

f:id:kazoo04:20151117001033p:plain

実際の神経細胞は ニューロンの概要とそのモデル でも触れたように、もっと複雑な挙動をしますが、発火するかしないか(全か無か)の2パターンの振る舞いをするという意味ではやはり似ています。

パーセプトロン

f:id:kazoo04:20151007200055p:plain

こんな足し算と掛け算しかできないものがなんの役に立つのかと思われるかもしれませんが、形式ニューロンは非常に優れており、1958年に Rosenblatt が提案したパーセプトロンは形式ニューロンをいくつか並列に組み合わせてから出力ニューロンで束ねるという2層の構造をとることで、入力と出力のペアを学習することを示しました。

たとえば、2つの入力と1つの出力があるとします。パーセプトロンに対して、入力として1と2を、出力として両者を足した3を与えて、これを満たすように重みを変更します。次に、入力にまた適当な数、たとえば3と5、出力に両者を足した8を与えて学習させます。これを色々な数で学習させたあとに、学習に使わなかった数、たとえば1と5を入力すると、6を出力するようになるのです。つまり、「足し算」を学習したことになります。もちろん掛け算もできるし、平方根を計算することもできます。出力も2つにして、一方は足し算の結果が、もう片方は引き算の結果が出てくるような学習だってできます*4。これはまさに教師あり学習のことです。

パーセプトロンの終焉と復活

パーセプトロンはいかにも「なんでも学習できる」という万能感がありそうな感じで、ものすごく優れた方法に思えます。実際にパーセプトロンはとても流行したのですが、すぐにパーセプトロンでは理論的に学習できない問題が存在することがわかり、しかも悪いことに世の中の解きたい問題は大抵パーセプトロンでは解けないタイプの問題であることもわかりました。具体的には、教師あり学習の項で触れた、「線形分離可能な問題」しか解けなかったのです。そんなわけで期待していたほどの活躍ができないパーセプトロンの研究はすっかり廃れてしまいました。

f:id:kazoo04:20151007200113p:plain

約30年後の1986年、今度はラメルハート(Rumelhart)によってパーセプトロンを改良したバックプロパゲーション(Backpropagation, BP)が発表されました*5。これは上図のように、2つのパーセプトロンを合体したような形になっており、新しく出来た真ん中の層を隠れ層(hidden layer)と呼びます。

実はこれだけで先ほどの「線形分離可能な問題しか解けない」という制限を突破して、非線形分離可能なモデルになります。パーセプトロンは重みを調整しなければならないところが1層だけなので簡単にどれくらい調整すればよいかが求まるのですが、この場合は2層あるのでそれぞれの層でどれくらい値を調整すればいいのか決めるのが難しという問題がありました。BPはこの問題に対して誤差逆伝搬と呼ばれる方法を使ってうまく良い重み調整方法を手に入れたため、3層構造でも学習可能になったのです*6

さらなる進化

形式ニューロンを組み合わせることでパーセプトロンが登場し、ある種の問題が学習可能になりました。
パーセプトロンではできなかった問題については、パーセプトロンを組み合わせて3層構造にしたBPでパーセプトロンの制限を超えて様々な問題が学習可能になりました*7

それでは、そのBPをさらに組み合わせて多層にしたら、もっともっと複雑な問題が解けるようになるのではないでしょうか*8

f:id:kazoo04:20151007200341p:plain

ところがこのような複雑なネットワークはうまく学習するのがとても難しいことがわかり*9、理論的に優れた性能が発揮できるということはわかっていても、そもそも学習ができないのでした。

この問題は、Deep Learningの登場まで解決できないまま、ニューラルネットワーク自体が次第に忘れ去られていきます*10

*1:Warren S. McCulloch; Walter Pitts (December 1943). "A logical calculus of the ideas immanent in nervous activity". The bulletin of mathematical biophysics (Kluwer Academic Publishers) 5 (4): 115–133.

*2:マッカロックは神経生理学者、ピッツは数学者であり、異業種のコラボによって生まれたのが形式ニューロンである

*3:形式ニューロンの場合、普通は入力も0,1で、出力も0, 1、出力と閾値は実数であるが、以後紹介するニューラルネットワークでは入出力も実数であることが多いのでそのように紹介した。形式ニューロンの入出力を0と1に固定した理由は、ニューロンの発火モデル(発火するかしないかのどちらかの振る舞いしかしない)を導入したかったためであろう

*4:ここでは任意の自然数を与えているかのように書いているが、実際はパーセプトロンの場合0以上1以下の値しか与えられないので、適当に正規化する必要がある

*5:実はパーセプトロンは完全に廃れたわけではなく、今でもパーセプトロンに似たアルゴリズムが現役で活躍している。というのも、ある種のデータは線形分類器でも十分な精度が出ることがわかったり、線形分類器は過学習しにくいことや、学習が早く簡単なこと、カーネルトリックによって非線形分離可能にすることができるなど色々な応用例が出てきたためである

*6:この説明は簡略化した要約で、かなり正確さが犠牲になっている。バックプロパゲーションアルゴリズムについては様々な解説があるので、興味のある方はぜひ調べてみていただきたい

*7:色々な条件があるが、ざっくり言うと任意の連続な関数が任意の精度で近似可能になった。もっと簡単にいえば、世の中の大抵の問題が学習可能になった

*8:理論的には、3層構造のネットワークでも、中間層が十分な数だけあれば問題がない。ただし、ある種の問題に関しては、層を増やすことでより少ないニューロンで同じ問題を学習できる、言い換えるとより小さいネットワークで複雑な問題が解けることはわかっていました

*9:いろいろな理由があるが、主な壁はVanishing Gradient Problem という、重みを調整したくても適切な重み調整量がネットワーク中に拡散してしまって重みがほとんど変わらなくなってしまう問題があった

*10:とはいっても、SVMニューラルネットワークで表現できるし、Passive Aggressive や AROW, SCW のような、パーセプトロンを改良した(が、もはやニューラルネットワークとはみなされない)アルゴリズムが誕生し、それらは今でも用いられているので、正確には多層のBPを上手く学習するというアプローチが諦められていた、と言ったほうがいいかもしれない