発表資料作りがてら、今度の口頭発表向けの研究結果をここにまとめておこうと思います。
修士の学生が研究室での成果をブログで公開しちゃうのはどうなのか?とも思うんですけど、僕はもう数か月でここからいなくなるし、先生もあと2年で退官しちゃうので、自分の研究(先輩方の成果も含む)が論文として日の目を見る可能性もうなくなりました。
なんで、完全にロストしてしまうのであれば、個人ブログの記事として誰かの目に留まればと思った次第です。
ワーキングメモリにおける時系列情報の保持と行動のための神経機構
この研究を一言で言うと
ニューラルネットワークでリカレント(層内)結合を鍛えてワーキングメモリを再現するとどうなるのか?
という研究になります。
そもそもワーキングメモリとは何ぞ?という人もいると思いますが、今回は同業の人に向けた発表なので説明しません。(あとでワーキングメモリについて別にまとめておきます)
テーマの背景 -ワーキングメモリの役割と重要性とは?-
ワーキングメモリ(作業記憶)の説明は省くと書きましたけど、ワーキングメモリの定義って分野とか研究によってまちまちなので、海馬の短期記憶よりも短い数秒の保持情報、もしくは保持機能と思ってください。
ミラーのマジックナンバー7を知っている人は、あのワーキングメモリ近いと思ってもらえればいいです。
ワーキングメモリの役目
まず、ワーキングメモリの役目ですが、高次の処理ではワーキングメモリ絡む処理ってすごく多いです。
ワーキングメモリ関連でよく話に出てくるのは、言語処理でしょうか。
言語処理では時間的に連続して入力してくる言葉を、時系列情報として保持して前後の関係性から文意を推測しています。その際に4~7単語の位の言葉の塊を作って処理しているといわれています。
僕が良く例に使うのは数値計算です。
視覚で数字の並びをよみとっていったん頭に保持しながら計算を進めます。計算結果や桁上りもワーキングメモリに保持されます。
状況判断にもワーキングメモリは必ず使われます。人が何か行動を起こすとき、必ず保持した過去の状況から未来の予測を行いそれに適切なアクションを起こすということをしています。
ワーキングメモリが脳のさまざまな処理に関係するというのは脳に情報が保持されるときに見られる遅延発火が前頭前野だけではなく脳のさまざまな領域で見られることからも納得できます。
Sreenivasan, K. K., & D’Esposito, M. (2019). The what, where and how of delay activity. Nature Reviews Neuroscience, 10–14. https://doi.org/10.1038/s41583-019-0176-7
前頭前野におけるワーキングメモリが持つの二つの機能
さっき、ワーキングメモリは脳のいろいろな領域で見られると書きましたが、この研究で扱うのは前頭前野のみです。
各領域でワーキングメモリの機能は住み分けられていて、高次と低次でワーキングメモリの意味合いもだいぶ違ってくるのですが、高次の前頭前野では主に二つのことをやっていると考えています。
二つの機能とは
- 下層から流れてくる情報をいったん保持
- 認識した情報を時系列に整理して、一つの情報にエンコード
神経を扱っている人でワーキングメモリを思い浮かべると1の保持の働きしか思い浮かばないと思いますが、前頭前野ではワーキングメモリの機能として情報の整理、識別するということも必要になってきます。マジックナンバー7は認知心理学の研究ですが、数チャンク渡って情報を保持していることを考えると、その時系列情報を解析しまとめることが必要だと思うんですよね。
インターバルも含めて時間軸に広がっている情報を圧縮して一つの情報にパッケージングしているイメージです。
認識まで行ってしまうと大げさなのですが、海外の研究を見てるとエンコードといってることがあります。ただ、日本語で符号化といってしまうとまた違う気がするんですよね。
ちなみに個々の部分は結構重要になってきます。
ということで、本研究の目的は
前頭前野の層内結合を学習させることで ワーキングメモリを実現し その神経機構を解明する
になります。いきなり、学習って言われてもと思いうかもしれませんがモデルのところでちゃんと説明します。
先行研究 -Freedmanらによる提示画像のカテゴリ一致不一致タスクとNチャンク課題-
うちの研究室は脳神経科学の理論屋なのですが、実験しない脳科学の理論屋の研究手法はだいたい
- 実験屋の人がとったデータを見る
- いろいろ考察してモデルを考える
- モデルを形式ニューロン(AIよりも神経的なやつ)でニューラルネットワークに
- シミュレーション
- 結果を考察
という流れになります。(理論屋というよりシミュレーション屋の間違いです。本当に理論だけやってる人もいると思います)
この研究にも元となった実験があって、シカゴ大学のFreedmanという方がニホンザルを実験台にやった提示画像のカテゴリー一致不一致タスクという実験もとにしてます。
Freedman, D. J., Riesenhuber, M., Poggio, T., & Miller, E. K. (2003). Rol Biarticular Power. 23(12), 5235–5246.
さてこの実験はどんな実験かというと、ニホンザルにモニターで犬と猫の特徴持ったCG画像を1秒のインターバルを挟んで連続で2枚みせて、二つの画像の猫か犬かのカテゴリーが一致しているか不一致なのかをあてさせるというものになります。
正解すればジュースもらえるんでおサルは頑張るんですよね。
実際は画像は犬猫の特徴が任意の割合で混ぜられていたり、実験手順がもうちょい複雑なのですが説明は省きます。
とにかくおサルは2枚の画像が同じか違うかを比較するために、画像の情報をワーキングメモリに一時的に保持していると思ってください。
[ここまでは記事にするにあたって表現を変えましたが、ここからは当日使うスライドと原稿をそのまま載せます]
実験では提示された画像は2枚つまり2チャンクでしたが、サンプルの画像を増やすことでこのタスクをNチャンク課題に拡張することができます。
補足として、犬猫犬のように途中のサンプルのカテゴリーが他と一致しない場合でもサルは不一致と判断することとしました。
ここで、フリードマンの実験で観測されたITとPFCのニューロンの発火を見てください。画像が提示されていないインターバル時、ITでは発火が見られないのに対し高次のPFCでは発火の持続が観測されました。よってこの発火が一時的に情報を保持していたと思われます。
また、PFC内では不一致の入力パターンに対して特異的に反応するニューロンも発見されました。
この知見をふまえたPFCのニューラルネットワークモデルとは
ITに加えPFC内を反回層、リカレント層、判断層の3層のネットワークに分けました。
ITの出力は提示された画像の特徴量に伴い発火します。
反回層は同一カテゴリーのITからは興奮性を、他カテゴリーのITからは抑制性の結合を受け、さらにメインとサブのニューロンで興奮させ合うことでインターバル時でも発火を持続させることができます。
リカレント層は100個のニューロンが層内のすべてのニューロンに層内結合しています。
判断層はリカレント層の出力を受け、matchかnon-matchかを判断します。
反回層のニューロンモデルですがLeaky integratorモデルを使用しました。
ITからの入力は主ニューロンが受け主ニューロンは副ニューロン、副ニューロンは主ニューロンからの興奮性入力を受け発火を持続させます。
リカレント層も同様にLeaky integratorモデルで実装しました。
一つのニューロンには犬猫の反回層の入力と自己を含む層内の全ニューロンからの入力を受けます。
反回層は猫犬共に一様乱数で定められた結合強度でリカレント層に結合しています。リカレント層の層内結合と判断層への結合はBPTT法による教師あり学習で決定します。
ワーキングメモリの作用に層内結合が関係していることはよく言われていることですが、リカレント層が層内全結合型のネットワークなのは、機械学習におけるRNNから着想を得ています。
また、このBPTT法ですが、RNNの層内結合を過去の状態に遡って誤差逆伝搬することでニューロンの結合を更新させる機械学習の手法で、今回は層内結合の教師あり学習則として便宜的に使用しました。
学習時はLIモデルでの実時間に即した学習を行うのは技術的に難しかったので、学習時のニューロンは機械学習で使われるような形式ニューロン的な挙動をしめすようになっています。
結果 下層から順に
このように100%DOG-DOGmatchの場合はサンプル提示時に反回層の出力が増加し、インターバルでは落ちて、テスト時にまた上がるようになってます。Dog60%、Cat40%の場合も大体同じです。Non-matchの場合は反回層の犬と猫の出力がテスト時に逆転します。
また、リカレント層のシミュレーションはテスト前後の300msしか行っていないのでこのオレンジ部分だけがリカレント層に伝わります。
次にリカレント層の学習結果ですが、まずこのグラフは学習回数による2乗誤差の変遷を表していて、最終的に誤差は0.2ぐらいに落ち着いたので、Matchのパターンで判断層のMatchニューロンが80%、non-matchニューロンが20%程度発火していると思ってください。
リカレント層の出力結果ですが、テスト前後の300msの間、10個のニューロンを抜粋してプロットするとこのようになっていて、最終的なリカレント層の100個のニューロンの出力を10*10のカラーマップにするとこのようになりました。
見方なんですがサンプルがdog、でテストがDogの場合はこれになります。別々の出力が出ていることが見てとれます。
判断層の出力はDOG-DOGmatchの場合はMatchが発火し続けます。
Non-matchの場合はインターバル時はmatchが発火しているのですが、テスト時に違うカテゴリーが提示されるとnon-matchが発火します。
この結果により先行研究を再現することに成功しました。
フリードマンの実験では2チャンクでしたが、人間の場合はマジックナンバー7で示された通り複数チャンクを保持できますし、動物のカテゴリーは犬と猫だけじゃないので多チャンク、他カテゴリー化に挑戦しました。
課題を多チャンク化するために、反回層の出力は生データを使わずにこのように矩形波に近似しました。さらに、2枚目の後にもこのように入力を入れることで多チャンクを表現しました。
また、犬、猫の他にもネズミ、蛇のようにITと反回層をそれぞれのカテゴリーで用意することでタスクを他カテゴリー化しています。
こうすることで、リカレント層への出力をこのようにデジタルデータとして表現できます。
結果ですが、90%以上の正答率で正解できたのでは2チャンクでは10カテゴリー以上、3チャンクでは8カテゴリーまで、4チャンクでは4カテゴリーまで成功しました。
モデルの解析
リカレント層の出力ですが、学習前は割と全体的に発火するのに対し、カテゴリーが増えるにつれて発火がまばらになります。こうすることにより限られたニューロンで多くのカテゴリーを区別すると考えられます。
次にリカレント層の出力の主成分解析の結果を示します。リカレント層は時系列情報を100個のニューロンの出力による100次元のベクトルで情報を判断層に提示していると考えることができます。
このリカレント層の表現を可視化するために主成分解析によって100次元から2次元まで次元を圧縮した図がこれらのグラフになります。
タスクは3チャンク課題で、3カテゴリー、4カテゴリー、5カテゴリー徐々にカテゴリー数を増やしていきました。
結果は当初はmatch、non-matchのグループによってまとまるのではなく、一番極端な入力であるmatchパターンが頂点となる多角形のような図形内にnon-matchのパターンが散らばりました。
したがって、リカレント層は一致不一致の判断に関わらず、タスクの内容とは関係ないすべてのパターン事象を重なることなく均等に認識するための汎用的な学習を行っているといえます。
さらに学習過程の主成分解析の結果を示すと、最後の入力カテゴリーで固まっていた点が学習が進むことことで広がっていくことが観測されました。
結論 -ワーキングメモリは異なるタスクに対して共用のものを使っている-
ワーキングメモリは前頭前野内の反回性の結合が最初の例に挙げた情報を一時的に保持する作用を、リカレント結合が時系列情報をエンコードする作用を担っていると考えられます。
これらの神経回路からなるワーキングメモリには、下層から入力してくる時系列情報の意味を推測する機能はなく、各々のパターンを均等に識別する役割を担っています。つまり、タスクが異なっていても学習時はタスクの内容に関係なくそれぞれの事象を汎用的な学習で認識しているということになります。
このことから考えられることは、同じ概念を扱うタスク、例えば言葉や数字などを処理する場合、共用のワーキングメモリを使って時系列情報を保持していると考えられます。
電話番号を電話にプッシュするタスクと2桁×2桁の足し算行うタスクには数桁の数字を記憶する共用のワーキングメモリを使用します。
電話をかける場合はハイフンで区切られた4桁をワーキングメモリに保持し順番に運動野に送ることで電話番号を正確にプッシュすることが可能です。
また、足し算では計算する桁の数字を読み出し、計算結果と繰上りをワーキングメモリに戻すという作業を繰り返している考えられます。
リカレント結合を学習するためにかかるコストは通常の順伝播型の結合より非常に高く、それはニューラルネットワークででシミュレーションでも実際の神経細胞でも変わらないと思われます。
よって、保持する時系列情報が少ないタスクや簡単なタスクにおいても層内結合に対して汎用的な学習をしていることは、一つのタスクをこなすという意味では非常に冗長的です。
この研究を始めた当初は左のようにタスク一つ一つにワーキングメモリをその都度形成する系を考えていましたが、右のように関連するタスクをこなすために必要な時系列情報を同じワーキングメモリにプールしておくことで、例えば、数字に関する時系列情報を保持するワーキングメモリは幼少期に構築していしまい。その後ほかのタスクをこなす場合は判断層のみを学習して、ワーキングメモリはさらに長い時系列情報を必要とするときのみ汎用的な学習をして保持力を向上させるとした方が効率ではないでしょうか。