compcogneuro/sims: ネットワークと入力
このページは外部資料の日本語訳です。原文の見出し順と本文順を保ち、コード・URL・出典表記はできるだけ原形のまま残しています。
出典とライセンス
原典: https://github.com/compcogneuro/sims/blob/main/ch9/a_not_b/README.md
ライセンス: BSD 3-Clause。このページは日本語翻訳であり、変更点は翻訳とサイト内整形です。
# 導入
このシミュレーションは、環境の変化に応じて行動を迅速に変化させることができるという意味で、PFC アクティブ メンテナンス能力の開発が行動をより柔軟にするのにどのように役立つかを調査します。柔軟性の開発は、ピアジェの有名な A-not-B タスクの文脈で広く研究されてきました。このタスクでは、おもちゃが最初に 1 つの隠し場所 (A) に数回隠され、次に新しい場所 (B) に隠されます。さまざまなタスクのパラメーターに応じて、幼い子供たちは B に更新するのではなく、確実に A に戻ります。
ネットワークと入力
まずネットワークを調べてみましょう。 Location、Cover、および Toy 入力と、GazeExpect (期待値) および Reach 出力があります。内部 Hidden 層は、反復的自己接続を使用しておもちゃが隠されている間、遅延にわたって情報を維持し、このモデルの前頭前野 (PFC) を表します。
ネットワーク内の位置ベースの単位で表される、位置 A、B、および C に対応する 3 つの位置単位があることに注意してください。また、デフォルトのカバー タイプである C1 と別のカバー タイプである C2 に対応する 2 つのカバー (蓋) 入力ユニットと、デフォルトの玩具である T1 と別の玩具タイプである T2 に対応する 2 つの玩具ユニットがあります。
- [[sim:Wts]] / [[sim:Wts/r.Wt]] をクリックして接続を調べます。最初に 3 つの隠れユニットのそれぞれをクリックし、次に出力ユニットをクリックします。
3 つの入力層はそれぞれ隠れ層に完全に接続されており、隠れ層は 2 つの出力層のそれぞれに完全に接続されています。同じ場所には重みが 0.7 でより強くアクティブになる初期バイアスがあるのに対し、他の場所の初期接続重みは 0.3 しかないことがわかります。 .3ではトイユニットやカバーユニットからの接続が比較的弱いです。 Hidden 層と GazeExpect 層には、各ユニットに戻る自己反復的な興奮性接続があり、最初はマグニチュード 0.4 ですが、これはパラメーター [[sim:Recurrent wt]] で変更できます。 ここでの重みを強化すると、アクティブな表現を維持するネットワークの能力が向上します。積極的な維持能力が乏しい幼児をシミュレートするために、比較的弱いものから始めます。
次に、ネットワークに提示される入力データ パターンを調べてみましょう。
- [[sim:AnotB Delay=3]] (
Delay3の隣) をクリックします。
トライアルには 3 種類あり (すべてを表示するにはスクロールする必要がある場合があります)、Group 列で使用されている 3 つの名前で示されていることに注意してください。
-
ptrial: (試行前または「練習」試行): これらは、乳児が A 位置に到達するように誘導するために実験の開始時に提示されます。項目の提示と選択テストの間には、単一タイム ステップの遅延しかありません。 -
Atrial: A ロケーションへのテスト トライアル。遅延が長いという点でのみ ptial と異なります。 -
Btrial: これは重要なテスト条件であり、おもちゃの入力が B 位置にあることを除いて心房と同じです。
各試験は、以下に示す A-not-B 試験の実験セグメントに対応する 5 つのセグメント (表の行) で構成されます。各セグメント中に、刺激イベントの目に見える/顕著な側面に対応する活動のパターンが入力ユニットに提示されます。他のすべての入力ユニットにはアクティビティがありません。入力アクティビティのレベルは、刺激の側面の顕著性を表し、より顕著な側面 (実験者が振るおもちゃなど) ほど、より多くのアクティビティが生成されます。
-
start: カバーは、幼児の手の届かない場所で、実験者が幼児の注意を特定の位置に向ける前に、装置上の所定の位置に置かれます (位置とカバー入力に対する弱い均等な活性化)。 -
おもちゃのプレゼンテーション (
toy-pres): 実験者は幼児の注意をおもちゃに引き付け(例: おもちゃを振る)、それを装置内の 1 つの場所に置きます (1 つの場所がより強くアクティブになり、おもちゃ T1 がアクティブになります)。 -
蓋の提示 (
lid-pres): 実験者は、おもちゃの場所に蓋を置きながら、その場所に幼児の注意をさらに引き付けます (おもちゃは、カバーがよりアクティブになり、場所がよりアクティブになる間、アクティブ化でフェードアウトします) -
delay: 装置はすべてのカバーを所定の位置に取り付けて (手の届かないところに) 設置されています (弱い場所とおもちゃの起動が等しい) -
choice: 実験者は、乳児の反応のために装置にアクセスできるようにします (カバーを所定の位置に置きます) (リーチはこのセグメントの間のみ可能/許可されます) (入力は遅延よりもアクティブですが、同じパターンです。リーチ層は抑制されません)
これらのトライアル タイプはそれぞれ、トライアル内のイベントと同様に複数回繰り返すことができます。実行するバージョンでは、タスクは 4 つの プレトライアル、2 つの A トライアル、および 1 つの B トライアル (その順序どおり) で構成されます。さらに、toy-pres 入力は各試行中に 3 回提示され、作業記憶の「負荷」を変えるために遅延イベントの数が「A」試行と「B」試行で変更されます。
Delay と RecurrentWt の影響
それでは、ネットワークを実行してみましょう。ネットワークの実行中に各トライアルのアクティブ化を観察しようとするよりも、グリッド表示を見ることで、ネットワーク内で何が起こっているかを知ることがはるかに簡単になります (ただし、入力を段階的に実行することは歓迎されます)。
※「[[sim:Train Trial]]」タブをクリックします。次に、ツールバーの [[sim:Init]]、[[sim:Run]] ボタンを押します。
これを行うと、ネットワークは A-not-B 実験全体を実行し、テーブルにアクティベーションを記録します。 TrialName 列は、どのイベントが発生しているかを示し、残りの列は、各イベント後のネットワークの各層でのアクティベーションを示します。
- まず、表の上部にあるプレトライアルに焦点を当てましょう。
p-toy-pres イベント中におもちゃが提示されると、対応する非表示の「A」位置も拡散アクティベーションによってアクティブになり、ネットワークも GazeExpect 層のこの位置を「探す」ことに注意してください。
さらに、ヘビアン学習は各試行後に行われるため、協調的な経験の重みが増加し、その結果、後続の試行で A 位置表現をアクティブにするネットワークの傾向が増加します。
- 次に、4 つのプレトライアルを過ぎて下にスクロールすると、最初の A トライアル イベント (
A-start) が表示されます。 (テーブルの真ん中を過ぎたところです。)
ここでは、A の場所に到達するネットワークの傾向が評価される A テスト トライアルが表示されます。 Hebbian 学習の結果として、ここでは隠れたユニットと GazeExpect ユニットがプレトライアルよりもさらにアクティブになっていることに注意してください。
- 次に、下にスクロールして、最初の B トライアル イベントが最初に表示されるようにします。また、[[[sim:Train Trial Plot]]] タブをクリックして、3 つの Reach アクティベーションの経時的なプロットを表示し、相対的なアクティベーション レベルを定量的に把握することもできます (
Reach_00は A ユニット、Reach_01は B ユニット)。
質問 9.1: B トライアルの遅延および選択トライアルでネットワークの内部表現と出力 (視線、リーチ) 応答に何が起こるか、またこれが乳児におけるピアジェの A-not-B データとどのように関連するかを説明してください。