🔙

AIと読む「Inferring neural activity ~ beyond backpropagation」④

2025/02/18に公開

前回からの続きです。
https://zenn.dev/tanegoma/articles/7a2aa92f627168


方法

このセクションでは、本文で説明されている結果を再現するために必要な詳細を提供します。

モデル

本研究全体を通して、確立されたバックプロパゲーションの理論と、提案された新しい見込み構成の原理を比較します。本文で説明したように、バックプロパゲーションはANNのトレーニングに使用されます。ここでは、ニューロンの活動はその入力に基づいて値に固定されます。一方、見込み構成はエネルギーベースネットワークで発生します。ここでは、ニューロンの活動は固定されていません。

ANNでは、ニューロンxの活動はその入力によって決定されるため、ネットワークの出力は、計算グラフを介して入力を「順方向」に伝播させることで取得できます。次に、出力をターゲットパターンと比較して、損失として知られる差異の尺度を取得できます。計算グラフ内のノードの値(ニューロンの活動)は、その入力の関数として明示的に計算されるため、計算グラフは通常微分可能です。したがって、バックプロパゲーションを使用したANNのトレーニングでは、荷重wを変更して、損失\mathcal{L}の負の勾配に向かってステップを進めます。

\Delta w = -\alpha \frac{\partial \mathcal{L}}{\partial w}, \tag{1}

この間、ニューロンxの活動は固定されており、αは学習率です。修正が必要な荷重wは、損失\mathcal{L}が計算される計算グラフ上の出力から多くのステップ離れている可能性があります。したがって、\frac{\partial \mathcal{L}}{\partial w}は、中間変数(出力ニューロンと隠れニューロンの活動)を介して導関数を計算する連鎖律を適用することによって取得されることがよくあります。たとえば、4つの層を持つネットワークを考えてみましょう。x^lを層lのニューロンの活動とし、w^lを層ll+1の間の接続の荷重とします。次に、最初の層から発生する荷重の変化は、次のように計算されます。

\frac{\partial \mathcal{L}}{\partial w^1} = \frac{\partial \mathcal{L}}{\partial x^4} \cdot \frac{\partial x^4}{\partial x^3} ... \frac{\partial x^2}{\partial w^1}

これにより、損失をグラフを介してバックプロパゲートして、すべての荷重の更新方向を提供できます。

ANNとは対照的に、エネルギーベースネットワークでは、ニューロンxの活動は前の層からの入力に固定されていません。代わりに、エネルギー関数Eが、ニューラル活動xと荷重wの関数として定義されます。層に編成されたネットワーク(本稿で検討)の場合、エネルギーはローカルエネルギー項E^lの合計に分解できます。

E = \sum_l E^l(x^l, w^{l-1}, x^{l-1}). \tag{2}

ここで、E^lは、隣接しており、互いに接続されているx^lx^{l-1}、およびw^{l-1}の関数であるため、ローカルエネルギーと呼ばれます。これにより、エネルギーEの最適化はローカル回路によって実装できることが保証されます。これは、Eの任意のニューラル活動(または荷重)に関する導関数が、ローカル活動(または荷重)と隣接するニューロンの活動のみを含む方程式になるためです。エネルギーベースネットワークによる予測は、入力ニューロンを入力パターンにクランプし、次に他のすべてのニューロンの活動を変更してエネルギーを減少させることによって計算されます。

\Delta x = -\gamma \frac{\partial E}{\partial x}, \tag{3}

ここで、\gammaはニューラルダイナミクスの積分ステップです。Eの項はローカルエネルギー項に分割できるため、これによりローカル回路で実装できる方程式が得られます。エネルギーを減少させるためにニューラル活動を変更するこのプロセスは緩和と呼ばれ、緩和を記述する方程式をニューラルダイナミクスと呼びます。これは、エネルギーベースネットワークにおけるニューラル活動のダイナミクスを記述するためです。緩和の収束後、出力ニューロンの活動は、エネルギーベースネットワークによって行われた予測と見なされます。異なるエネルギーベースネットワークは、わずかに異なる方法でトレーニングされます。予測符号化ネットワーク[^12],[^18]の場合、トレーニングには、入力ニューロンと出力ニューロンをそれぞれ入力パターンとターゲットパターンにクランプすることが含まれます。次に、緩和が収束するまで実行されます(\dot{x} = x)。その後、収束時の活動を使用して荷重が更新され、エネルギーがさらに減少します。

\Delta w = -\alpha \frac{\partial E}{\partial w}|_{x = \dot{x}}. \tag{4}

これにより、ローカルエネルギーの勾配降下であるため、ローカルな可塑性で実装できる方程式も得られます。エネルギーベースネットワークにおける荷重のダイナミクスを記述するため、このような方程式を荷重ダイナミクスと呼びます。

バックプロパゲーションと見込み構成は、特定のモデルに限定されません。ネットワークの構造とエネルギー関数の選択に応じて、バックプロパゲーションまたは見込み構成の原理を実装する異なるモデルを定義できます。本文および補足ノートのほとんどでは、最も標準的な階層化されたネットワークを調査します。この場合、ANNとエネルギーベースネットワークの両方に、w^1, w^2, ..., w^LL層の荷重と、x^1, x^2, ..., x^{L+1}L+1層のニューロンが含まれます。ここで、x^1x^{L+1}は、それぞれ入力ニューロンと出力ニューロンです。ANNの隣接する層の活動間の関係は、次のように与えられます。

x^l = w^{l-1} f(x^{l-1}), \tag{5}

また、EBNのエネルギー関数は次のように記述されます。

E^l = \frac{1}{2} (x^l - w^{l-1} f(x^{l-1}))^2. \tag{6}

これにより、ANNは標準的な多層パーセプトロン(MLP)として定義され、エネルギーベースネットワークは予測符号化ネットワークとして定義されます。式(6)および以下では、二乗演算子(v)^2は、ベクトルv自体の内積を表します。したがって、本文におけるバックプロパゲーションと見込み構成の比較は、上記のMLPと予測符号化ネットワークの間で行われます。この選択は、(1)それらが最も標準的なモデルであり[^61]、(2)2つが密接に関連していることが確立されているため[^12],[^14](つまり、同じ荷重と入力パターンで同じ予測を行う)、公正な比較が可能になるため正当化されます。それにもかかわらず、バックプロパゲーションと見込み構成の間の理論(補足図5)と経験的比較(補足図6および7)は、ネットワーク構造とエネルギー関数の他の選択肢、つまりGeneRec[^62]やAlmeida–Pineda[^63]–[^65]などの他のエネルギーベースネットワークおよびANNに一般化されることを示しています。

式(5)および(6)を一般的なフレームワークに入れると、MLPおよび予測符号化ネットワークをそれぞれ記述する方程式を取得できます。入力パターンとターゲットパターンがそれぞれs^{in}s^{target}であると仮定します。MLPによる予測は次のとおりです。

x^1 = s^{in} \text{ and } x^l = w^{l-1} f(x^{l-1}) \text{ for } l > 1, \tag{7}

ここで、x^{L+1}は予測です。バックプロパゲーションを使用したMLPのトレーニングは、次のように記述されます。

\Delta w^l = -\alpha \frac{\partial \mathcal{L}}{\partial w^l} = -\alpha \frac{\partial \mathcal{L}}{\partial x^{L+1}} \cdot \frac{\partial x^{L+1}}{\partial x^L} ... \frac{\partial x^{l+1}}{\partial w^l} \text{ where } \mathcal{L} = \frac{1}{2} (s^{target} - x^{L+1})^2, \tag{8}

これにより、出力ニューロンから層ごとにエラー\frac{\partial \mathcal{L}}{\partial x^l}がバックプロパゲートされます。

予測符号化ネットワークのニューラルダイナミクスは、式(2)を使用して取得できます。

\Delta x^l = -\gamma \frac{\partial E}{\partial x^l} = -\gamma \frac{\partial (E^l + E^{l+1})}{\partial x^l}. \tag{9}

同様に、予測符号化ネットワークの荷重ダイナミクスは、次のように見つけることができます。

\Delta w^l = -\alpha \frac{\partial E}{\partial w^l} = -\alpha \frac{\partial E^{l+1}}{\partial w^l}. \tag{10}

予測符号化ネットワークのニューラルな実装を明らかにするために、予測誤差を次のように定義します。

\varepsilon^l = x^l - w^{l-1} f(x^{l-1}). \tag{11}

予測符号化ネットワークのニューラルおよび荷重ダイナミクスは、(式(9)および(10)で導関数を評価することにより)次のように表すことができます。

\Delta x^l = -\gamma \varepsilon^l + f'(x^l) \circ (w^l)^T \varepsilon^{l+1} \text{ and } \tag{12}
\Delta w^l = \alpha \varepsilon^{l+1} (f(x^l))^T, \tag{13}

ここで、記号は要素ごとの乗算を表します。\varepsilon^lx^lがそれぞれ誤差ニューロンと値ニューロンの活動でエンコードされていると仮定すると、式(11)および(12)は図2cのニューラルな実装で実現できます。特に、誤差\varepsilonおよび値xニューロンは、それぞれ赤と青のノードで表されます。興奮性+および抑制性−接続は、それぞれ実線と空洞のノードを持つ接続で表されます。したがって、式(11)および(12)は、それぞれ赤と青の接続で実装されます。荷重ダイナミクスもローカルに実現されることに注意してください。式(13)で記述される荷重の変化は、図2cのニューラルな実装における単純なヘブの可塑性[^66]に対応します。つまり、荷重の変化は、シナプス前ニューロンとシナプス後ニューロンの活動の積に比例します。したがって、予測符号化ネットワークは、エネルギーベースネットワークとして、エネルギー項のローカルな性質により、ローカル回路のみで実装できます(このセクションで前述したように)。ネットワークが十分に表現力があり、学習がエネルギーEを0に減らすことができる場合、損失\mathcal{L}も0になる必要があります。これは、\mathcal{L}がエネルギーEの項の1つであるためです。つまり、\mathcal{L} = E^{L+1}であり、この場合、予測符号化ネットワークは、バックプロパゲーション[^67]と同様に、損失を最小限に抑えることが保証されています。

予測符号化ネットワークの完全なアルゴリズムをアルゴリズム1にまとめます。本稿のすべてのシミュレーションでは(特に明記されていない限り)、ニューラルダイナミクス(つまり、緩和)の積分ステップは\gamma = 0.1に設定され、緩和は128ステップ実行されます(アルゴリズム1の\mathcal{T})。緩和中に、全体的なエネルギーが最後のステップから減少していない場合、積分ステップは50%削減されます。積分ステップが2回削減された場合(つまり、0.025に達した場合)、緩和は早期に終了します。実行された緩和ステップの数を監視することにより、実行したほとんどのタスクで、緩和が約60回の反復で早期に終了することに気付きました。


Algorithm 1. Learn with a predictive coding network[^12],[^18]

補足情報では、ネットワーク構造とエネルギー関数の他の選択肢も調査し、他のANNとエネルギーベースネットワークをもたらします。全体として、調査されたエネルギーベースネットワークには、予測符号化ネットワーク[^12],[^18]、ターゲット予測符号化ネットワーク、およびGeneRec[^62]が含まれ、調査されたANNには、バックプロパゲーションとAlmeida–Pineda[^63]–[^65]が含まれます。すべてのモデルの詳細は、対応する以前の研究に記載されており、補足ノートのセクション2.1にも記載されています。

干渉と干渉の測定(つまり、ターゲットアライメント)

図3aでは、図1の例をシミュレートしているため、ネットワークには1つの入力ニューロン、1つの隠れニューロン、および2つの出力ニューロンがあります。荷重はすべて1に初期化され、入力パターンは[1]、ターゲットパターンは[0, 1]でした。両方の学習規則の学習率は0.2で、荷重は24回反復して更新されました。図3dは、図3aと同じ実験を繰り返しましたが、学習率は(0.005, 0.01, 0.05, 0.1)から検索されました。これは、実際に深層ニューラルネットワークをトレーニングするために使用されるすべての学習率を本質的にカバーするのに十分な広さです。

図3eでは、各ネットワークの各層(入力層と出力層を含む)に64個のニューロンがありました。荷重は、標準的なXavier均一初期化[^68]を介して初期化されました。アクティベーション関数は使用されませんでした。つまり、線形ネットワークが調査されました。ネットワークの深さ(L)は、x軸に報告されているように、{1, 2, ... , 24, 25}の値を取りました。入力パターンとターゲットパターンは、平均0、標準偏差(s.d.)1のランダムに生成されたパターンのペアでした。両方の学習規則の学習率は0.001でした。荷重は1回反復して更新され、ターゲットアライメントが測定されました。実験全体は27回繰り返され、個々の実験はポイントとして報告されました。

図3f〜hのシミュレーションは、図4a〜hの実験設定に従いました。これらは、生物学的に関連するタスクの最後に説明されています。

生物学的に関連するタスク

教師あり学習シミュレーションでは、図4a〜hの完全に接続されたネットワークはFashionMNIST[^60]でトレーニングおよびテストされ、畳み込みニューラルネットワーク[^35](図4i、j)はCIFAR-10(参考文献36)でトレーニングおよびテストされました。FashionMNISTでは、モデルは、ズボン、プルオーバー、ドレスなどの10個のカテゴリにグレースケール化されたファッションアイテム画像を分類するようにトレーニングされました。FashionMNISTが選択されたのは、多層非線形深層ニューラルネットワークにとって適度で適切な難易度であるため、エネルギーベースネットワークとの比較が有益であるためです。CIFAR-10のデータの分類は、車、鳥、猫などのカテゴリに属するカラーの自然画像が含まれているため、より難しく、畳み込みニューラルネットワークでのみ評価されます。両方のデータセットは、60,000個のトレーニング例(つまり、トレーニングセット)と10,000個のテスト例(つまり、テストセット)で構成されています。

図4a〜hの実験は、特定のパネルで調査されたパラメータ(バッチサイズ、データセットのサイズ、アーキテクチャのサイズなど)を除き、以下に説明する構成に従いました。これらは、特定の実験の説明に記載されているように調整されました。ニューラルネットワークは、4つの層と、各隠れ層に32個の隠れニューロンで構成されていました。FashionMNISTの最先端のMLPモデルはすべて非常に大きいことに注意してください[^69]。ただし、それらは高度に過剰パラメータ化されており、過剰パラメータ化により学習規則に関係なく精度が95%を超えるため、比較の基礎として適していません。したがって、これらの最先端の過剰パラメータ化されたモデルでは、意味のある比較を示す余地はありませんでした。全体として、本稿で示されているFashionMNISTのモデルのサイズは妥当な選択であり、ベースラインモデルは妥当なパフォーマンス(標準的な機械学習設定で〜0.12のテストエラー)に達し、異なる学習規則のパフォーマンスの違いを示すのに十分な余地を維持しました。入力層のサイズは、FashionMNIST[^60]グレースケール化では28 × 28、出力層のサイズは両方のデータセットのクラス数として10でした。荷重は、平均0、標準偏差s.d.が\sqrt{\frac{2}{n^l + n^{l+1}}}の正規分布から初期化されました。ここで、n^ln^{l+1}は、それぞれ荷重の前後の層のニューロンの数です。この初期化は、Xavier正規初期化[^68]として知られています。アクティベーション関数f()はシグモイドです。1回の反復は、ミニバッチに基づいて1ステップで荷重を更新することとして定義しました。各反復には、(1)エネルギーベースネットワークの緩和の数値積分手順が含まれており、その連続プロセスを捉えています。および(2)上記の手順の最後に荷重を1回更新します。ミニバッチ内の例の数(バッチサイズと呼ばれる)は、デフォルトで32でした。1つのエポックは、複数のミニバッチに分割されたトレーニングセット全体を提示することで構成されていました。各エポックの終わりに、モデルはテストセットでテストされ、分類エラーはエポックの「テストエラー」として記録されました。ニューラルネットワークは64エポックでトレーニングされたため、64個のテストエラーが得られました。エポックにわたるテストエラーの平均(つまり、トレーニングの進行中)は、モデルがどれだけ速く学習するかを示す指標であり、エポックにわたるテストエラーの最小値は、トレーニング時間が長すぎるために過剰適合の可能性を無視して、モデルがどれだけうまく学習できるかを示す指標です。学習率は、各構成および各モデルに対して個別に最適化されました。各実験は10回繰り返されました(特に明記されていない限り)、エラーバーはブートストラップを使用して計算された68%の信頼区間を表しています。

次に、個々の実験に固有の設定について説明します。図4bでは、異なるバッチサイズがテストされました(x軸に示すように)。図4cでは、バッチサイズは1に設定されました。図4dの継続的な学習では、トレーニングは2つのタスク間で交互に行われました。タスク1には、データセットでランダムに選択された5つのクラスを分類することが含まれ、タスク2には、残りの5つのクラスを分類することが含まれていました。ネットワーク全体は2つのタスクで共有されました。したがって、他のパネルで使用されているネットワークとは異なり、ネットワークには5つの出力ニューロンしかありませんでした。これは、本質的に複数のタスクでの継続的な学習に対応しています。たとえば、人間が2つの異なるタスクを実行することを学習する場合、通常、1つの脳と1組の手を使用します(つまり、ネットワーク全体が共有されます)。これは、2つの異なる組の手を持っていないためです(つまり、人間はタスク間で出力層を共有します)。タスク1は4回反復してトレーニングされ、タスク2は4回反復してトレーニングされ、トレーニングは合計84回の反復に達するまで継続されました。各反復後、各タスクのテストセットのエラーは「テストエラー」として測定されました。図4eでは、異なる学習率での図4dのトレーニング中の両方のタスクのテストエラーの平均が報告されています。概念ドリフトを調査する図4d〜gでは[^31],[^70],[^71]、クラスラベルの変更は64エポックごとに行われ、モデルは合計3,000エポックでトレーニングされました。したがって、64エポックごとに、10個の出力ニューロンのうち5つが選択され、これらの5つの出力ニューロンからセマンティックな意味へのマッピングは、擬似ランダムにシャッフルされました。図4hでは、クラスごとの異なる数のデータポイント(x軸に示す)がトレーニングセットに含まれていました(サブセットは、異なるシードに従ってランダムに選択されました)。

図4iでは、図4jに詳細に示されている構造で、見込み構成とバックプロパゲーションを使用して畳み込みネットワークをトレーニングしました。各学習規則について、{0.0005, 0.00025, 0.0001, 0.000075, 0.00005, 0.000025, 0.00001}の範囲の7つの学習率を個別に検索しました。両方の学習規則は、バッチサイズ200で80エポックの間トレーニングされました。深層畳み込みネットワークのトレーニングは、浅い完全に接続されたネットワークのトレーニングよりも難しく、遅いため、いくつかの改善が両方の学習規則に適用されました。具体的には、0.01の荷重減衰とAdamオプティマイザー[^72]が両方の学習規則に適用されました。実行時間を短縮するために、予測符号化ネットワークでは荷重がより頻繁に更新されました。つまり、荷重は推論の最後のステップではなく、推論のすべてのステップで更新されました。推論は固定数の16回の反復で実行されました。したがって、各データバッチに対して荷重は16回更新されました。したがって、公正な比較のために、バックプロパゲーションも各データバッチで16回荷重を更新しました。各構成(各学習規則と各学習率)でのトレーニングは、異なるシードで3回繰り返されました。

予測符号化ネットワークを畳み込みニューラルネットワーク(または層状構造を持つ任意のネットワーク[^58],[^73])に拡張するために、荷重w^lを使用して、層の順方向関数(つまり、層l+1の入力が層lのニューラル活動からどのように計算されるか)を次のように定義できます。

F_{w^l}(x^l)。たとえば、上記のMLPの場合、F_{w^l}(x^l) = w^l f(x^l)です。畳み込みネットワークの場合、F_{w^l}(x^l)w^lx^lのより複雑な関数であり、w^lx^lはもはや単純な行列とベクトルではありません(後で定義されます)。F()でANNを定義すると(つまり、式(5)はx^l = F_{w^{l-1}}(x^{l-1})になります)、F()で予測符号化ネットワークのエネルギー関数を定義すると(つまり、式(6)はE^l = \frac{1}{2} [x^l - F_{w^{l-1}}(x^{l-1})]^2になります)、ニューラルダイナミクスと荷重ダイナミクスはそれぞれ\Delta x^l = -\gamma \varepsilon^l + \frac{\partial F_{w^l}(x^l)}{\partial x^l} \varepsilon^{l+1}および\Delta w^l = \alpha \varepsilon^{l+1} \frac{\partial F_{w^l}(x^l)}{\partial w^l}になります(つまり、式(12)と(13)はそれぞれ\Delta x^l = -\gamma \varepsilon^l + \frac{\partial F_{w^l}(x^l)}{\partial x^l} \varepsilon^{l+1}および\Delta w^l = \alpha \varepsilon^{l+1} \frac{\partial F_{w^l}(x^l)}{\partial w^l}になります)。F_{w^l}(x^l)が定義されているため、\frac{\partial F_{w^l}(x^l)}{\partial w^l}\frac{\partial F_{w^l}(x^l)}{\partial x^l}はPyTorch( https://pytorch.org/tutorials/beginner/basics/autogradqs_tutorial.html )で自動微分を介して取得されます。したがって、畳み込み予測符号化ネットワークのトレーニングは、アルゴリズム1の11行目と16行目を上記の対応する方程式に置き換えるのと同じくらい簡単です。

以下に、畳み込みネットワークのF_{w^l}(x^l)を定義します。まず、x^l \in \mathbb{R}^{c_l \times h_l \times w_l}であり、c_lh_l、およびw_lは、それぞれ特徴マップのフィーチャ数、高さ、および幅です。各層の数値は、形式c_l@h_l \times w_lで図4jに示されています。たとえば、最初の層(入力層)の場合、形状は3@32 × 32でした。これは、32 × 32のカラー画像であるため、赤、緑、青を表す3つの特徴マップがあります。この層のカーネルサイズ、ストライド、およびパディングをそれぞれk_ls_l、およびp_lと表記します。各層の数値は図4jに示されています。したがって、w^l \in \mathbb{R}^{c_{l+1} \times c_l \times k_l \times k_l}です。最後に、x^{l+1}は次のように取得されます。

x^{l+1}[c, x, y] = f \left( x^l[:, x s_l - p_l : x s_l - p_l + k_l, y s_l - p_l : y s_l - p_l + k_l] \right) \cdot w^l[c, :, :, :], \tag{14}

ここで、[a, b, ...]は各次元に沿ってテンソルをインデックス化することを意味し、:はその次元のすべてのインデックスを意味し、a:bはその次元のスライスをインデックスaからb-1までを意味し、\cdotはドット積です。上記の方程式では、2番目と3番目の次元でのx^lのスライス、つまりx^l[:, x s_l - p_l : x s_l - p_l + k_l, y s_l - p_l : y s_l - p_l + k_l]が定義された範囲\mathbb{R}^{c_l \times h_l \times w_l}の外にある場合、範囲外のエントリは0と見なされます。これはゼロのパディングモードとして知られています。

図3fでは、15層のネットワークがFashionMNIST[^60]データセットでトレーニングおよびテストされました。図3fの学習率は、図3gに示すように、各学習規則に対して(5.0, 1.0, 0.5, 0.1, 0.05, 0.01, 0.005, 0.001, 0.0005, 0.0001, 0.00005, 0.00001, 0.000005)でグリッド検索によって個別に最適化されました。つまり、図3fの各学習規則は、図3gの対応する曲線で最小点を与える学習率を使用しました。図3hの実験では、同じ設定で他のネットワークの深さ({1, 2, 4, 6, 8, 10, 12, 14, 15})を調査しました。図3fと同様に、各学習規則と各「層数」の学習率は、(5.0, 1.0, 0.5, 0.1, 0.05, 0.01, 0.005, 0.001, 0.0005, 0.0001, 0.00005, 0.00001, 0.000005)から個別に検索された最適な値でした(図のy軸としてのテストエラーの平均に関して)。隠れ層のサイズは、上記の実験では常に64でした。上記の実験では、トレーニングセットの一部のみが使用されました(クラスあたり60個のデータポイント)。これにより、調査された学習規則の効率の違いを反映するために、テストエラーがより頻繁に評価されました。使用されたアクティベーション関数f()は、標準のシグモイドの代わりにLeakyReLUです。これは、シグモイドが深層ニューラルネットワークのトレーニングを困難にするためです。言及されていない他の詳細は、上記で説明したデフォルトに従いました。

強化学習実験(図4k)では、3つの古典的な強化学習問題(Acrobot[^74],[^75]、MountainCar[^76]、およびCartPole[^77])でパフォーマンスを評価しました。OpenAI Gym[^78]による統一されたインターフェースを介してこれらの環境と対話しました。これらの環境の観測s_tは、システムのステータスを記述するベクトルです。たとえば、異なる可動部品の速度と位置などです(詳細については、元の記事またはOpenAI Gymのドキュメントを参照してください)。観測s_tの各エントリは、Welfordのオンラインアルゴリズム[^79],[^80]を介して平均0、標準偏差1に正規化されます。これらの環境のアクション空間は離散的です。したがって、観測s_tを入力とし、異なる出力ニューロンで各アクションa_tの値を予測するネットワークを持つことができます。このようなネットワークは、アクション値ネットワーク、略してQネットワークとして知られています。私たちの実験では、Qネットワークには2つの隠れ層が含まれており、それぞれに64個のニューロンが含まれており、前に説明した教師あり学習に使用されるネットワークと同じ方法で初期化されました。Qネットワークにs_tを入力し、アクションa_tに対応する出力ニューロンの予測を読み出すことで、特定の観測s_tでのアクションa_tの値を取得できます。このような値はQ(s_t, a_t)と表記されます。Qのトレーニングは、経験再生によるQ学習で取得されたターゲット\hat{R_t}への単純な回帰問題です(アルゴリズム2にまとめられています)。s_ts^{in}\hat{R_t}s^{target}と考えると、Qネットワークは、見込み構成またはバックプロパゲーションでトレーニングできます。R_tは、選択されたアクションa_tのターゲットです(つまり、出力ニューロンの1つのターゲットは、選択されたアクションa_tに対応します)。したがって、実際には\hat{R_t}s^{target}[a_t]と見なされます。見込み構成の場合、これはa_tに対応するものを除く残りの出力ニューロンが解放されることを意味します。バックプロパゲーションの場合、これはこれらのニューロンのエラーがマスクされることを意味します。

デフォルトとはわずかに異なる設定の予測符号化ネットワークが、見込み構成に使用されました。積分ステップはデフォルトの半分(γ = 0.05)に固定され、緩和は固定されたより少ないステップ数(\mathcal{T} = 32)で実行されました。この変更が導入されたのは、Q学習が教師あり学習タスクよりも不安定(より小さな積分ステップ)で、より高価(より少ない緩和ステップ数)であるためです。アルゴリズム2のSumRewardPerEpisodeから、図4kの「エピソードあたりの報酬の合計」のより滑らかな曲線を作成するために、SumRewardPerEpisode曲線は、長さ200のスライディングウィンドウを使用してTrainingEpisodeに沿って平均化されました。各実験は3つのランダムシードで繰り返され、影はそれら全体で68%の信頼区間を表しています。学習率は、各環境および各モデルに対して、範囲{0.05, 0.01, 0.005, 0.001, 0.0005, 0.0001}から個別に検索されました。図4kに報告されている結果は、トレーニングエピソード全体で「エピソードあたりの報酬の合計」の平均が最も高い学習率に対するものです。


Algorithm 2. Q learning with experience replay

運動学習のシミュレーション

図5に示すように、2つの入力ニューロン、2つの隠れニューロン、および2つの出力ニューロンを含むネットワークをトレーニングしました。2つの入力ニューロンは、2つの隠れニューロンに1対1で接続され、2つの隠れニューロンは、2つの出力ニューロンに完全に接続されました。2つの入力ニューロンは、それぞれ青と赤の背景の提示をエンコードすると見なされました。2つの出力ニューロンは、それぞれ正と負の方向への外乱の予測をエンコードすると見なされました。背景色の提示と非提示はそれぞれ1と0でエンコードされ、特定方向の外乱の提示と非提示はそれぞれ1と0でエンコードされました。荷重は、実験前に参加者が関連付けを構築していなかったことをシミュレートして、平均0、標準偏差(以下を参照)が行動データに適合した正規分布から初期化されました。知覚から信念への接続と、信念から予測への接続が異なる程度の可塑性を持つと予想されるため、学習率は2つの層で独立していました。2つの学習率もデータに適合しました(以下を参照)。

参加者の数とトレーニングおよびテストトライアルは、人間の実験で説明されているとおりに正確に従います[^38]。特に、シミュレートされた24人の参加者それぞれについて、荷重は乱数ジェネレーターの異なるシードで初期化されました。彼らはそれぞれ、トレーニングとテストの2つの段階を経験しました。人間の実験で実行された事前トレーニング段階は、人間の参加者にセットアップとデバイスに慣れてもらうことが目的であったため、ここではシミュレートされなかったことに注意してください。

トレーニング段階では、モデルは24ブロックのトライアルを経験しました。各ブロックでは、モデルに元の実験[^38]と一致する次のトライアルシーケンスが提示されました。

  • モデルは、外乱のない2つのトライアル、B0とR0でトレーニングされ、順序は連続するブロック間でバランスが取れていました。人間の実験では、外乱のないトライアルタイプが2つありましたが(チャネルトライアルとウォッシュアウトトライアル)、どちらも外乱を含んでいなかったため、ここではB0またはR0トライアルと同じ方法でシミュレートされたことに注意してください。
  • モデルは、外乱のある32のトライアルでトレーニングされました。ここでは、擬似ランダムな順序の8つのトライアルそれぞれに、B+とR–が同数含まれていました。
  • モデルは、連続するブロック間で順序がバランスが取れた2つのトライアル、B0とR0を経験しました。
  • モデルは、n ← {14, 16, 18}ウォッシュアウトトライアルを経験しました(擬似ランダムな順序でB0とR0トライアルが同数)。ここで、n ← {a, b, c}は、値a、b、およびcのセットから置換なしでサンプリングし、セットが空になるたびにセットを補充することを意味します。
  • モデルは、トリプレットを1つ経験しました。ここでは、曝露トライアルはB+またはR–のいずれかで、連続するブロック間でバランスが取れていました。ここで、トリプレットは3つの連続するトライアルで構成されていました:B0、指定された曝露トライアル、および再びB0。
  • モデルは、追加のn ← {6, 8, 10}ウォッシュアウトトライアルを経験しました(擬似ランダムな順序でB0とR0トライアルが同数)。
  • モデルは再びトリプレットを1つ経験しました。ここでは、曝露トライアルはB+またはR–のいずれかで、前のトリプレットで使用されなかった方でした。

テスト段階では、モデルは4ブロックのトライアルの8回の繰り返しを経験しました。各ブロックでは、B+、R+、B–、およびR–の組み合わせの1つがテストされました。4つのブロックの順序は、8回の繰り返しそれぞれでシャッフルされました。各ブロックでは、モデルは最初にn ← {2, 4, 6}ウォッシュアウトトライアルを経験しました(擬似ランダムな順序でB0とR0トライアルが同数)。次に、モデルはトライアルのトリプレットを経験しました。ここでは、曝露トライアルは、この組み合わせの単一トライアル学習を評価するために、特定のブロックでテストされた組み合わせ(B+、R+、B–、またはR–)でした。モデルの適応の変化は、上記のトリプレットの2つのB0トライアルでの外乱の予測の差の絶対値として計算されました。ここで、外乱の予測は、2つの出力ニューロンの活動の差として計算されました。予測は、参加者と上記の繰り返しにわたって平均化されました。

各学習規則のパラメータは、モデルが図5fに示す適応の変化を最もよく再現するように選択されました。具体的には、実験(d_c)とモデル(x_c)の平均適応変化の二乗差の、4つの曝露トライアルタイプのセットCにわたる合計を最小化しました。

\sum_{c \in C} (a x_c - d_c)^2. \tag{15}

行動データとモデル出力のスケールが異なるため、モデル予測は、データに適合した係数aによってさらにスケーリングされました。モデルパラメータに対して網羅的な検索が実行されました。初期荷重の標準偏差は、{0.01, 0.05, 0.1}の値を取ることができ、2つの層の2つの学習率は、{0.00005, 0.0001, 0.0005, 0.01, 0.05}の値を取ることができました。各学習規則と上記のモデルパラメータの各組み合わせについて、係数aは、式(15)の二乗誤差の合計を最小化するために解析的に(正に制限されて)解決されました。

人間の強化学習のシミュレーション

図6bに示すように、1つの入力ニューロン、1つの隠れニューロン、および2つの出力ニューロンを含むネットワークをトレーニングしました。入力ニューロンはタスクにいることをエンコードすると見なされたため、シミュレーション全体で1に設定されました。2つの出力ニューロンは、2つの選択肢の値の予測をエンコードしました。報酬と罰は、参加者がお金を稼ぐか失うかのいずれかであったため、それぞれ1と-1としてエンコードされました。モデルは、ソフトマックスルール(温度1)に従って、2つの選択肢の予測値(2つの出力ニューロンの活動でエンコード)に基づいて確率的にアクションを選択しました。荷重は、人間の参加者が実験前に関連付けを構築していなかったことをシミュレートして、平均0、標準偏差(以下を参照)が実験データに適合した正規分布から初期化されました。シミュレートされた参加者の数(異なるシードでの繰り返しの数)は、人間の実験[^38]と同様に16に設定されました。トライアルの数は元の論文に記載されていなかったため、両方の学習規則について128トライアルをシミュレートしました。

mPFCからの信号のパターンを説明する2つの学習規則の能力を比較するために、各規則について、モデルのセットアップ方法と学習方法を記述するパラメータ(初期荷重の標準偏差と学習率)を最適化しました。つまり、モデルが出力活動の最も類似したパターンを実験のものに生成するこれらのパラメータの値を探しました。特に、モデル予測x_cと平均mPFC信号のデータd_cの二乗差の、図6cの4つのトライアルタイプのセットCにわたる合計を最小化しました。

\sum_{c \in C} (a x_c + b - d_c)^2. \tag{16}

fMRI信号はモデルとは異なる単位とベースラインを持っていたため、モデル予測は、係数aでさらにスケーリングされ、バイアスbによってオフセットされました。特定のトライアルタイプのモデル予測を計算するために、選択されたオプションに対応する出力ニューロンの活動は、シミュレーション全体のこのタイプのすべてのトライアルにわたって平均化されました。モデルからのスケーリングされた平均活動は図6cにプロットされており、エラーバーはスケーリングされた活動の68%の信頼区間を示しています。モデルを実験データに適合させるために、モデルパラメータの値と係数は、前のセクションで説明したように見つけられました。特に、パラメータに対して網羅的なグリッド検索を使用しました。モデルは、次のセットからの初期荷重の標準偏差と学習率のすべての可能な組み合わせについてシミュレートされました:{0.01, 0.05, 0.1}。各学習規則と上記のモデルパラメータの各組み合わせについて、係数a(正に制限)とバイアスbは、式(16)の二乗誤差の合計を最小化するために解析的に解決されました。


お疲れ様でした。

Discussion