見出し画像

Neuromatch Academy 2021(US時間)の体験談(Week2編)

みなさんこんにちは!

前回・前々回の記事では、神経科学に関する夏期集中講座であるNeuromatch Academy 2021の概要と参加登録方法、またWeek1での講座内容に関してまとめました。

今回は、前回に引き続き、Week2での講座内容についてまとめていきたいと思います!(このあたりから個人的に理解が怪しい部分も出てきたので、説明がわかりにくかったらすみません。。。!)

ちなみに、全ての学習教材は以下のwebページ内で公開をされています。

6日目:ディープラーニング (Deep Learning)

6日目は、ディープラーニングの神経科学における応用方法について学んでいきます。神経科学において、より複雑な行動を行っている中で、より大きな集団神経活動データを記録できるようになるにつれ、ディープラーニングのような新しい解析手法の必要性は日に日に増してきています。

ディープニューラルネットワークは、実際に脳が情報を処理するために用いているかもしれない様々な非線形な関数を学習し表現することができます。また、ディープニューラルネットワークは、柔軟なアーキテクチャを構築が可能なため、デコーディング・エンコーディングモデルの構築にも広く用いられています。

様々な応用が期待されているディープラーニングですが、この講座では、3つの具体的な応用方法について学習をしていきます。

応用方法1: デコーディングモデル

・デコーディングモデルを使うことで、ある脳領域から記録され
 た神経活動が、実際に行われた行動や思考を復号するためにど
 の程度の情報を含んでいるかを理解することができる
・例として、こちらの研究で用いられた〜20,000個の一次視覚野
 のニューロンの活動をもとに、マウスが見ていた刺激の方向を
 デコーディングする問題を考える

画像2

画像1

・この問題に取り組む方法はいくつもあるが、以下3つの理由で
 ディープラーニングは優れた手法である
 1) 扱うデータが〜20,000次元であり、非常に高次元のデータ
  である。多くの機械学習手法は、このような高次元データを
  扱うと学習に失敗するが、ディープラーニングはデータ量が
  十分あれば、このような高次元データでも高い性能を発揮す
  ることができる
   2) 本データでは、異なるニューロンがそれぞれの刺激に対して
  様々な形で反応している。そのため、このような傾向を捉え
  るためには線形関数を用いた手法では難しく、デコーディン
  グにおいて非線形関数を用いる必要がある。ディープラーニ
  ングでは、非線形関数を活性化関数として利用することで、
  この点を容易に解決できる。
   3) ディープラーニングのアーキテクチャは非常に柔軟性が高
  い。そのため、デコーディングの問題において、アーキテク
  チャを簡単に変更することで、最適なデコーディングモデル
  を検討することができる。
・本チュートリアルでは、Pytorchを用いてディープニューラルネ
 ットワークを実装し、デコーディングモデルを構築するための
 コードが紹介されている (参考)

応用方法2: エンコーディングモデル

・エンコーディングモデルは、ある外部からの入力に対して、脳がどのよう
 に情報を処理するのかを近似することで、脳がどのように情報を表現して
 いるのかを理解するのに役立つ
・本チュートリアルでは、畳み込みニューラルネットワーク(CNN)を用いて
 エンコーディングモデルを構築するためのコードが紹介されている(参考)
・全入力に対する加重合計(weighted sum)がそれぞれのユニットで計算され
 る全結合層(fully connected layter)とは異なり、畳み込み層ではそれぞれ
 のユニットが小さいパッチの中での加重合計を計算する
・このパッチは受容野(receptive field)と呼ばれる
・全結合層では、それぞれのユニットが独自の重みを用いて加重合計を計算
 するが、畳み込みそうではユニット間で共通の重みが用いられる。この共
 通の重みは畳み込みフィルター、もしくはカーネルと呼ばれる
・畳み込みフィルターとして使われる例として、以下のようなcenter-
 surroundフィルタや、Gaborフィルタがあるが、これらは実際に網膜や視
 覚野でも使われていると考えられている

画像3

・CNNは視覚システムをモデリングする上で、主に以下の二つの理由から適
 していると考えられている
  1) 他のニューラルネットワークと同様に、CNNは計算において分散表現
  を使っている。脳も分散表現(*)を使っていると考えられることから、
  CNNは、脳内で実際にどのように分散表現が用いられているのかを考
  え、説明するのに適している
  (*) 単体のニューロンである情報を記述するのではなく、複数のニュー
   ロンの活動の組み合わせにより情報を記述する
  2) 他のニューラルネットワークと同様に、複数層を持つCNNでは、出力
  により近い層が入力された刺激のより抽象的な情報を記述するという階
  層が存在する。これは、同じように階層的な表現を持っている視覚野の
  働き(**)と類似しているため、一つのCNNを用いることで、そのような
  階層表現をモデリングすることが可能である
  (**) 例えば、V1はエッジ等の単純な視覚情報を記述するのに対し、V4は
  より抽象どの高い物体の特徴を記述していると考えられている

応用方法3: Representational Similarity Analysis (日本語訳がわからない。。。)

・CNNを用いて、上記で紹介した提示された刺激の方向を答えるタスクを解
 くモデルを構築した上で、その内部表現と、実際に記録された神経活動と
 の類似度を分析する問題を考える (参考)
・ここでは、類似度を比較するために、
 Representational Similarity Analysis (RSA)を用いる
・RSAでは、多数の刺激を提示した際に、モデルにおいて似ている(もしくは
 似ていない)と判断された刺激が、脳活動においても似ていると判断され
 ている場合、モデルと脳が同じようなスキーマを用いて刺激を表現してい
 ると考える

7日目:線形力学システム (Linear Dynamical Systems)

7日目は、Linear Dynamical Systemについて学びます。Dynamical systemとは、時間によって変化するシステムのことを指します。また、その変化を表現するために、微分方程式が用いられます。ここで学ぶLinear Dynamical Systemとは、時間による変化(微分方程式)が線形関数で表現されるシステムのことを指します。

Forward Euler Integrationとは? (日本語訳不明。。)

・時間変化を表す微分方程式がシンプルなもので、なおかつ変化の時間単位
 であるdtが十分に小さい時、システムが時間毎にどのように変化するのか
 を計算するために用いられる
・より具体的には、ある単位時間dtにおけるxの変化が以下のように表され
 る場合、

画像4

 時間t_iにおけるxの値は、以下の数式のように、t_(i-1)の状態に、上記の
 変化量を加えることで計算することができる

画像5

・但し、この手法は、微分方程式が多くのノイズを含む場合や、xがある時
 点において急激に変化するような傾向を含む場合、うまく機能しない
・ちなみに、時間変化を表すdt/dxが、係数が常に一定である線形関数で表
 現される場合、そのシステムはDeterministic linear dynamical systemと呼
 ばれる
・Deterministicなsystemの場合、同じ初期値から活動が始まれば、常に同じ
 値に収束をする
・一方で、時間変化にランダム性を含むProbablistic dynamical systemの場
 合、同じ初期値から始めたとしても、同じような時間変化を辿るとは限ら
 ない

マルコフ過程 (Markov process)とは?

・現在の状態のみが次の状態への遷移確率を決定する場合、そのシステムは
 マルコビアンと呼ばれる
・本チュートリアルでは、マルコビアンの一つであるポアソン過程を用い
 て、シミュレーションを行うコードが紹介されている(参考)
・ポアソン過程は以下の三つの条件を満たす必要がある
 1) ある出来事が起こる確率は、他のイベントが起こる確率から独立である
 2) ある時間内にある出来事が起こる確率は一定である (指定された時間内
  に出来事が起こる確率が途中で変化しない)
 3) 二つの出来事は同時に起こることはできない

Drift-diffusion model (Ornstein-Uhlenbeck(OU) process)とは?

・DeterministicとProbablisticの両方を組み合わせたシステムの例
・Deterministicなシステムにより、平均値がある値に向かって収束していく
 傾向(drift)と、Probablisticなシステムにより、時間がたつにつれ、分散が
 大きくなっていく傾向(diffusion)を持っている
・以下は、平均が0、分散が1の時のシミュレーション結果。全体として平均
 値は時間が経ってもおおよそ0となっている一方で、分散は時間が経つに
 つれ大きくなっている傾向が読み取れる

画像6

・Drift-diffusion modelは、短期記憶や意思決定のモデリングにおいて頻繁
 に用いられている

8日目:生物学的神経モデル (Biological Neuron Models)

8日目は、実際の脳におけるニューロンとシナプスの活動を表現した生物学的なモデルについて学んでいきます。これらは、1日目に学んだモデルの種類(What/How/Whyモデル)で考えるとHowモデルにあたります(参照:1日目 モデルの種類)。これらのモデルを学ぶことは、神経活動に起こった変化がニューロンやシナプスの変化によるものなのか、入力が変化したからなのか、もしくはそれらの組み合わせによるものなのかを考えるのに役立ちます。

The Leaky Integrate-and-Fire (LIF) Neuron Model (漏れ積分発火モデル)

・LIFモデルは、ニューロンが入力をどのように出力に変換しているかを単純
 化して表現するモデル
・LIFモデルは、以下のような4つのニューロンの特徴を捉えることができる
 モデル
  1) シナプスへの入力を時間軸(temporal)・空間軸(spatial)において統合
  する
  2) ある閾値に電圧が達した時に、スパイクを生成する
  3) 活動電位が生じている間、不応な状態(refractory)に入る
  4) 膜(Membrane)からイオンが漏れる特性を捉えている
・LIFモデルは、入力の統合が線形的に起こると仮定している
・LIFモデルにおけるスパイク閾値付近の膜電位の活動は、実際のニューロン
 よりも非常に遅い
・LIFモデルはオイラー法を用いて以下のように数式で表現される

画像7

 V: 膜電位 (Membrane potential)
 g_L:漏れコンダクタンス (Leak conductance)
 E_L: 静止電位 (Resting potential)
 I: 外部入力 (External input current)
 τ_m: 膜時定数 (Membrane time constant)

・本チュートリアルでは、上記LIFモデルを実装し、それを使って簡単なシミ
 ュレーションを行うためのコードが紹介されている (参考)

LIFモデルにおいて、入力の相関はどう出力に影響するか?

・二つのニューロンは、ある確率で同タイミングにスパイクを引き起こすこ
 とがある
・そのような複数のニューロン間の同期した神経活動を引き起こす要因とし
 て以下のようなことが考えられる
  1) 二つのニューロンが共通のニューロンからインプットを受け取る
  2) 活動が相関している異なるニューロンからそれぞれインプットを受け
   取る
  3) 二つのニューロンがそれぞれ繋がっている (但しこの場合、時間差あ
   りの相関が見られる 例:ニューロンAが発火するとニューロンBも続
   いて発火する)
  4) ニューロンの初期状態やその他の設定値が似ている
・二つのニューロンが同時にスパイクを引き起こすことにより、下流のニュ
 ーロンへより大きな影響を及ぼすことができる
・一般的に、LIFモデルにおいて、入力における相関が大きい程、出力におけ
 る相関も大きくなる
・但し、入力における相関より、出力における相関は小さくなる

化学的シナプス伝達モデル (Chemical synaptic transmission model)

・脳においては、化学的シナプス(chemical synapses)は、電気的シナプス
 (electrical synapses)よりも多く存在する
・化学的シナプスは、前のニューロンのスパイク活動によって神経伝達物質
 (excitatory or inhibitory)を放出し、その放出によって膜電位を変化させる
・シナプスは大きく二種類に分けて考えることができる
  1) 静的シナプス(static synapses):シナプス荷重(synaptic weight)が常
   に一定のシナプス
  2) 動的シナプス(dynamic synapses):シナプス荷重が直近のスパイク活
   動の履歴に依存する
・シナプス荷重(synaptic weight):シナプスで各スパイクによって引き起こ
 される最大コンダクタンス(電流の流れやすさ)
・短期可塑性(short-term plasticity):動的シナプスにおいて、後のニューロ
 ンへの影響の大きさを直近の発火率に基づいて段階的に増加
 (facilitation)・減少(depression)させる性質
・本チュートリアルでは、静的シナプスと動的シナプスをそれぞれモデリン
 グするためのコードが紹介されている (参考)

9日目:動的ネットワーク (Dynamic Network)

9日目は、ニューラルネットワークがどのように動的に変化し、活動しているのかを捉えるモデルについて学んでいきます。その中でも特に、ニューロンの発火率に基づいたモデルを中心に学んでいきます。このチュートリアルの内容は以下のような神経科学においてよく問われる質問を考えるための良いきっかけになります。

・どのようなメカニズムが、ネットワーク活動の動的な状態の変化をもたら
 すのか?
・どのようにネットワーク活動の状態の安定性が実現されるのか?
・複数の入力がどのように相互作用して出力を形成するのか?

Neural Rate Modelsとは

・脳内のニューラルネットワークの活動は、時間を追うごとに常に変化して
 いる
・そのため、ニューロンは動的なシステムとしてモデリングすることができ
 る (但し、動的システムを用いるアプローチは、神経科学において用いら
 れるものの一つのアプローチに過ぎない)
・Neural Rate Modelsは、その中でもニューロンを集団として捉え、その集
 団の発火率を用いることで、最も単純な形で動的なネットワーク活動を表
 現するモデルである
・このチュートリアルでは、Neural Rate Modelsを実際に構築し、いくつか
 のシミュレーションを実行するためのコードが紹介されている (参考)
・ニューロン集団の発火率と、その集団への入力の関係性を分析する際に、
 F-Iカーブがよく用いられる
 (F:スパイク頻度(spike frequency)  I:外部からの電流(injected current))
・F-I curveの中でもsigmoidal F-I curveは以下のような数式で表現される

画像8

 F(x):入力に対するニューロン集団の活動
 x:ニューロン集団への入力
 a:関数のゲイン (F-Iカーブの傾きを変える、入力によってどの程度ニュー
  ロンが反応するかに影響する)
 θ:関数の閾値 (F-Iカーブをx軸方向に動かす、ニューロンが反応をし始め
  る閾値に影響する)

・F-Iカーブにおいて、非常に弱い入力を与えた場合、神経活動は最終的には
 0に収束をする
・一方で、強い入力を与えた場合、神経活動はその最大値に収束する

画像9


・Neural Rate Modelsにおいて、発火率の時間変化が0になる点を探すこと
 で、どのような発火率にニューロン集団が落ち着くのか(fixed points)をシ
 ミュレーションすることができる
・但し、fixed pointsの中には、安定している(stable) fixed pointsと不安定な
 (unstable) fixed pointsが存在する

Wilson-Cowan Modelとは

・ここでは、excitatory populationだけでなく、inhibitory populationの両方
 を含むニューラルネットワークについて考える
・このようなネットワークをモデリングする際に用いられる一つのモデルが
 Wilson-Cowan Modelである

画像10

 r_E(t):Excitatory populationの時間tにおける平均の発火率
 r_I(t):Inhibotory populationの時間tにおける平均の発火率
 w:それぞれのpopulation間のつながりの強さ
 τ:それぞれのpopulationの時間軸を調整するための変数

・本チュートリアルでは、このモデルを実装し、実際にシミュレーションを
 行うためのコードが紹介されている (参考)
・Wilson-Cowan Modelのような二つのpopulationを含むシステムを用いる
 場合、Plane analysisが可視化の手法としてよく用いられる。
・Wilson-Cowan ModelをPlane analysisを用いて可視化するには、r_Eとr_I
 をそれぞれ軸に取り、以下のように表現する

画像11


・Plane analysisにおいて重要なコンセプトの一つとしてNullclinesが挙げら
 れる
・Nullclinesとは、Plane上において、一方のpopulationの活動が変化しない
 点の集合 (他方のpopulationの活動は変化していてもよい)
・Nullclinesは、数式では以下のように表現される

画像12

・また、Plane analysisにおいて、それぞれの点において軌道がどの方向に進
 むかを表現しているベクトルの集合はvector fieldと呼ばれる

画像13

10日目:プロジェクトDayのためお休み


おわりに

ふう。Week2、だいぶヘビーですね。(笑)
残るはWeek3!出来次第アップしますので、よければまたそちらも読んでみてください。

今日は以上です。

追記(2021.08.28)
Week3の記事をアップしました。


この記事が気に入ったらサポートをしてみませんか?