compcogneuro 翻訳ページ

compcogneuro/sims: ネットワーク構造

このページは外部資料の日本語訳です。原文の見出し順と本文順を保ち、コード・URL・出典表記はできるだけ原形のまま残しています。

種別

翻訳資料

更新日

2026-05-20

対象

外部資料を日本語で原文順に読みたい読者

目安

原文量に依存

確認メモ

機械翻訳をベースにした日本語訳です。実装手順や引用は必ず原典も確認してください。

出典とライセンス

原典: https://github.com/compcogneuro/sims/blob/main/ch6/v1rf/README.md

ライセンス: BSD 3-Clause。このページは日本語翻訳であり、変更点は翻訳とサイト内整形です。

シミュレーションに戻る

# 導入

このシミュレーションは、自然画像に応答した自己組織化学習が、一次視覚野 (V1) のニューロンの指向性エッジ検出器受容野特性をどのように生成するかを示しています。これは、なぜ視覚システムがそのような方法で情報をエンコードするのかについての洞察を提供すると同時に、私たちの計算モデルの生物学的関連性の重要なテストも提供します。

このモデルは、LGN から V1 ネットワークへの小さなパッチをシミュレートし、画像全体の対応する小さなパッチを処理します。 一次視覚野は、ハイパーコラムとして知られる、この基本的な回路コンポーネントの多くの複製バージョンで構成されています。

ネットワーク構造

ネットワークには 2 つの入力層があり、それぞれのサイズが 12x12 で、1 つは中心上の LGN ニューロンの小さなパッチ (LGNon) を表し、もう 1 つは中心から離れた LGN ニューロンの同様のパッチ (LGNoff) を表していることがわかります。特定の入力パターンは、自然シーンの 4 つの大きな (800x600 ピクセル) 画像のセットからパッチをランダムにサンプリングすることによって生成されます (ファイル ブラウザーのこのディレクトリにある画像 v1rf_img1.jpg などをクリックすると、これらのシーンを表示できます)。単一の V1 レイヤーのサイズは 14x14 です。

  • [[sim:Wts]] -> r.Wt をクリックしてから、V1 ユニットをクリックして、ネットワークの重みを調べてみましょう。

ユニットが入力層と完全かつランダムに接続されていること、および、トポグラフィー表現を誘導するための鍵となる、側方興奮性 (反復) 接続性の円形の 近傍 があることを観察する必要があります。また、初期重み 0 で学習する側方抑制性投影も追加しました (興奮性側方接続と同様に)。これら 2 つの側方投影により、モデルは単一の固定された興奮性投影と比較して、より複雑な地形表現を開発できます。

  • NetView ウィンドウで [[sim:Act]] -> Act を選択し、ツールバーで [[sim:Init]]、[[sim:Step]] Trial を実行し、サンプリングされた入力パターンに応じたネットワークの活動化を観察します。

V1 ユニットは、入力画像に応じて、最初はいくぶんランダムでまばらな活動パターンを持ちます。

中心から外れた入力パターンと中心から外れた入力パターンには、相補的なアクティビティ パターンがあることがわかります。つまり、一方に活動がある場合、もう一方には活動がなく、その逆も同様です。この相補性は、画像の中央が受容野の端よりも明るい場合に中心上の細胞が励起され、画像の中央よりも端が明るい場合に中心から外れた細胞が励起されるという事実を反映しています。どちらも当てはまらないため、画像の場所ごとに 1 つだけがアクティブになります。画像のそのユニットによってコード化された位置に比較的暗い領域が含まれる限り、中心から外れたユニットがアクティブである (つまり、積極的に活性化されている) ことに留意してください。したがって、それらは実際には暗闇をコード化するための否定的な活性化を持っていません。

  • さらにいくつかの入力パターンに対して [[sim:Step]] Trial を実行し続けて、これらの入力パッチに存在するアクティビティのパターンの種類を把握します。 [[[sim:Image]]] タブをクリックして、処理中の画像の小さなパッチの拡大グレースケール (デフォルトの ColdHot カラースケールで色付け) バージョンを表示することもできます。一般に、これはあまり認識されません。

さまざまな角度で、明暗の遷移の連続したエッジが存在する傾向があることに注意してください。ネットワーク表示の右上に表示される入力画像には、木や山などのクローズアップ セグメントが認識される可能性があります。

V1 層の活動パターンに細心の注意を払うと、隣接するニューロンが互いに共同活動する傾向がより大きいことにも気づくかもしれません。これは横方向の接続によるもので、隣接するニューロンの 1 つのバブルだけを強制的に活動させるほど強力ではありませんが、後で説明するように、時間の経過とともに近隣のトポロジーを誘発するには十分です。

このネットワークをさらに多くの画像プレゼンテーションに対して実行すると、入力に存在するエッジの相関構造を反映する一連の表現が V1 で開発されます。これには (コンピューターによっては) 数分かかる場合があるため、この時点では事前トレーニング済みのネットワークを読み込むだけで問題ありません。

  • ツールバーの [[sim:Open Rec=0.2 Wts]] を押してから、[[sim:Step]] Trial を押します。

これにより、100 個の画像プレゼンテーションの 100 エポック、つまり合計 10,000 個の画像プレゼンテーションに対してトレーニングされたネットワーク重みが、デフォルトの反復 (横方向) 重み強度 0.2 でロードされます。

  • [[sim:Wts]] / r.Wt を選択し、左下の V1 ユニットをクリックします。

入力レイヤーに投影されたウェイトには、入力パッチの中央右にある中心上 (LGNon) バーと、そのすぐ上と右側に中心から外れた (LGNoff) バーがあり、左上斜め方向のコーディング (つまり、より強いウェイト値の斜めバー) が示されていることがわかります。ネットワークでは、これらのオンセンター バーとオフセンター バーが常に隣接する場所にあり、同じ場所には存在しないことに注意してください。これは、それらが相補的であるためです (両方が同じ場所でアクティブになることはありません)。また、これらのオンセンターバーとオフセンターバーは常に互いに平行で、光の変化の方向に対して垂直になります。これは、これらのバーがエッジをエンコードしており、照明の変化がエッジの方向に対して垂直であるためです。

  • 次に、右の次のユニットをクリックし、その次のユニットをクリックして、これら 3 つのユニット間を前後にクリックします。

垂直方向に向かって時計回りに回転しているように見えるウェイトの微妙な変化を観察する必要があります。他のユニットをクリックすると、受容野の 極性 の変化が見られる場合もあります。その中には、1 つのオンセンター領域と 1 つのオフセンター領域を持つ *2 極 * 組織を持つものもあれば、1 つのオンセンター領域と 2 つのオフセンター領域を持つ *3 極 * 組織を持つものもあります。さらに、サイズや位置も異なる場合があります。

受容野ビュー

個々のユニットの重量値を調べると、ユニットによってコード化された寸法のいくつかの側面とその地形的構成の両方が明らかになりますが、一度に 1 つずつ見てユニットの表現の全体的な感覚を得るのは困難です。代わりに、すべての受容野を一度に表示する単一の表示を使用します。

  • この表示を表示するには、ツールバー で [[sim:V1 RFs]] を押します。これにより、[[sim:tabs/V1 RFs]] タブをクリックすると表示される表示が生成されます。

各 V1 ユニットの受信重みのパターンを示すグリッド ビューが表示されます。見やすくするために、この表示では中心から外れた重みが中心の重みから差し引かれ、各 V1 ユニットの受容野の単一のプロットが得られます。正の値 (赤色のトーンで黄色の最大値まで) は、中心から外れた励起よりも中心にある励起を示し、負の値 (青色のトーンでシアンの負の最大値まで) はその逆を示します。各 V1 ユニットの受容野は、ネットワーク内の V1 ユニットのレイアウトに対応するように配置されます。これを確認するには、グリッド ビューの左下にある、個別に調べた同じ 3 つのユニットを見てください。このグリッド ログは中心上の値と中心から離れた値の を表していることに留意して、上で説明したのと同じ特徴が表示されるはずです。受容野の地形的な性質と、さまざまな受容野の特性間の変動の全範囲が明確にわかるはずです。

質問 6.1: 異なる隠れ単位によって異なる方法でエンコードされるエッジの異なるプロパティはどれですか?言い換えれば、隠れた単位の受容野はどのような種類の性質や次元にわたって変化するのでしょうか?主なものは 4 つあり、その 1 つは方向に関するもので、さまざまな隠れユニットがさまざまな方向 (水平、垂直、斜めなど) のエッジをエンコードします。そのような特性または次元をさらに 3 つ説明してください。

通常、隣接するユニットが少なくとも 1 つの次元に沿って値を共有している (または、少なくとも 1 つの次元で類似している) さまざまなフィーチャの地形構成を観察する必要があります。地形が回り込んでいるので、右端のユニットは左端のユニットと同様になるようにする必要があることに注意してください。また、可能な値 (および値の組み合わせ) の空間が適切にカバーされるように、さまざまな値の範囲が各次元で表されていることにも注意してください。 数学的には、これらの受容野の全体的な形状は、正弦波とガウス関数の積である **ガボール** 関数で捉えることができ、多くの視覚研究者は、V1 レベルの処理をシミュレートするためにそのような関数を使用しています。 # 入力のプロービング モデルではシミュレートされたニューロンの重みを直接調べることができますが、生体系ではできません。V1 ニューロンの受容野の特性をマッピングするには、より間接的な手段を講じる必要があります。一般的に使用される方法論の 1 つは、限界寸法が変化する単純な視覚刺激 (たとえば、方向を定めた光のバー) に応答するニューロンの活性化を測定することです。この手法を使用して、実験者は、シミュレートされた V1 ニューロンで観察されるすべての主要な特性 (向き、極性、サイズ、位置調整、およびトポグラフィー) を文書化しました。今回はこの種の実験をシミュレーションしてみます。 * まず、[[sim:Probes]] ボタンをクリックしてプローブ刺激を表示します。 これにより、それぞれが異なる方向と位置にあるエッジを表す 4 つの入力を含むテーブルが表示されます。 > **質問 6.2:** `LGNon` パターンと `LGNoff` パターンの関係を参照しながら、これらのプローブ刺激がエッジを表す意味を説明してください。 次に、これらのパターンをネットワークに提示しましょう。 * [ネットワーク] ウィンドウで [[[sim:Act]] / 動作] を選択し、`Train` から `Test` モードに切り替え、ツールバーで [[sim:Step]] `Trial` を実行し、次の 3 つのイベントを通じて [[sim:Step]] `Trial` に進み、それぞれの場合の関係をメモします。 V1 RF プロットに示される体重ベースの受容野。 プローブの向きと方向性をコード化したユニットがアクティブ化されたことが観察されるはずです。 興味がある場合は、プローブ イベントに新しいパターンを描画し (クリックするとエディターが表示されます)、上記と同じ手順でそれらを表示できます。特に、単一の入力イベントに存在する複数のエッジにネットワークがどのように応答するかを確認するのは興味深いことです。 # 反復的な接続効果 最後に、横方向の接続性が地形表現の発達に関与していることを確認するには、デフォルトの .2 ではなく 0.05 に設定された `ExcitLateralScale` でトレーニングされたネットワークから生成された一連の受容野をロードできます。 * ツールバーで [[sim:Open Rec=0.05 Wts]] を実行し、次に [[sim:V1 RFs]] を実行して、これらの重量の RF 表示を生成します (表示するには、[[sim:tabs/V1 RFs]] タブをクリックします)。 結果として得られる受容野グリッド ログには、地形的組織化の証拠がほとんど見られないはずです。これは、この横方向の接続の強さが、不十分な近傍制約を提供していることを示しています。 表現の地形的な側面と個々の受容野自体の性質の間には相互作用があるようで、元のネットワークと比較して横方向の接続性が弱いこのケースでは多少異なって見えます。この種の相互作用は脳内で記録されており (Das & Gilbert, 1995; Weliky, Kandler, & Katz, 1995)、横方向の接続がニューロンの応答特性に重要な影響を及ぼし、そもそも受容野の調整に関与していることを考えると、計算的には理にかなっています。 興味があれば、側方抑制を使用せず (`InhibLateralScale` を 0 に設定)、および/またはリカレント コンで学習せずにモデルを実行してみることもできます (`ExcitLateralLearn` をオフにします)。結果として得られる受容野がそれほど複雑ではなく、よりモノリシックなブロックで構成されていることがわかるはずです。これは、興奮性と抑制性の両方の横方向のつながりが学習に重要な役割を果たしていることを示唆しています。 学習中に `V1 RFs` タブを眺めるだけでも楽しいです (デスクトップではエポックごとに自動的に更新されます。Web では `Step` を `Epoch` レベルで使用します) -- 受容野はランダムなノイズからゆっくりと現れます。 </section>