compcogneuro 翻訳ページ

compcogneuro/sims: 探検

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

種別

翻訳資料

更新日

2026-05-20

対象

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

目安

原文量に依存

確認メモ

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

出典とライセンス

原典: https://github.com/compcogneuro/sims/blob/main/ch3/cats_dogs/README.md

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

シミュレーションに戻る

# 導入

このプロジェクトは、世界の一連のエンティティを表すために使用されるさまざまな特徴間の (非常に小さな) 一連の関係を表すことを目的とした、単純な セマンティック ネットワーク を調査します。 この例では、猫と犬の色、大きさ、好きな食べ物、好きなおもちゃなどのいくつかの特徴を表します。このネットワークには、多数の個々の猫や犬に関する情報が含まれており、この情報を使用して、一般的な猫や犬の共通点とその独特な点について * 一般化 * を行うことができます。また、猫や犬との特定の特徴の 一貫性 についても知ることができます。これは、特徴入力の特定の構成によるネットワークの合計制約満足レベルを評価する際に、ハーモニー関数が役立つ場合があります。ネットワークを使用して、特定の個人に関する情報を取得する方法として パターン補完 を実行することもできます。したがって、この単純なネットワークには、この章で取り上げるトピックの多くが要約されています。

猫と犬のセマンティクス:

猫と犬のテーブル

ネットワークに組み込まれた知識は、上の表にまとめられています。後のネットワークでは、この知識がどのように経験(たとえば、個々の猫や犬)によって学習されるかがわかりますが、ここでは、この知識は、個々の猫または犬を表す インスタンス (Identity) ノードと、この個体が持つ対応する特徴 (例: 茶色) との間に強い重み (通常は 1) を設定するだけでエンコードされます (McClelland & Rumelhart の Jets and Sharks モデルを参照)。 1988)。 特徴の各グループ (つまり、テーブルの 1 つの列内の値) は、独自の層内抑制を持つ個別の層内で表されるため、各層のユニットが入力を最適に表現するために競合します。さらに、すべての ID ユニットと名前ユニットも、それぞれ独自の別個のレイヤー内にあります。ここでは FFFB 抑制関数を使用します。これにより、層ごとのアクティブ ユニットの実際の数をかなり柔軟に設定できます。

探検

  • いつものように、時間をかけてネットワーク内の重みを調べ、その重みが表に示されている知識を実装していることを確認します。これを行うには、[Network] タブで Wts / r.Wt 値を選択し、さまざまなレイヤーの個々のニューロンをクリックします。

まず、個人の名前を入力として提示すると、その個人に関するすべての情報が呼び戻されることを確認してみましょう。これは、単一の一意の入力キューによるパターン補完の形式です。

  • [Network] タブで [[sim:Act]]/[[sim:Act/Act]] 値を選択します。 [[sim:Step]] を Trial の代わりに Cycle に設定し、[[sim:Step]] を繰り返し押してデフォルトの入力パターンをネットワークに提示します。これにより、Chloe ネームユニットがアクティブになります。

この入力が時間の経過とともに処理された後、ネットワークが Chloe に適切な機能をアクティブ化していることがわかります。このプロセスは、Chloe の入力制約とネットワークの重みの制約を考慮して、最も調和のとれたアクティベーション状態を見つけるものと考えることができます。同様に、クロエ アトラクターに落ち着いたと考えることができます。

  • 左側のコントロール パネルで [[sim:Patterns]] の隣の CatsAndDogs ボタンをクリックし、名前レイヤーのパターンをダブルクリックすると、値を編集できる編集ウィンドウが表示されます。 最初のセルをゼロにし、2 番目のセルに 1 を追加します (これは、ネットワークに Chloe の代わりに「Socks」という名前が表示されるのと似ています)。 Do [[sim:Init]] および [[sim:Test Trial Plot]] はこれに応答します (上記の表から予想されるとおりです)。 他の名前のアクティブ化をいくつか試してください (適切な値を 0 から 1 に変更します)。

さて、このネットワークが、あるレベルでは一組の個体に関する情報 (つまり、アイデンティティから各特徴への重み付けの知識) しか持っていないにもかかわらず、どのようにして猫と犬に関する *一般的な * 情報を提供できるのかを見てみましょう。

  • すべての Name 入力を 0 に設定し、Species 入力をダブルクリックして、最初の単位を 1 (Cat) に設定し、[[sim:Init]] および [[sim:Step]] サイクルを再度実行します。 右下にある VCR ([[sim:vbar]]) Time ボタンを使用して、サイクルごとのアクティブ化の設定に戻って再生することもできます。

ネットワークが猫に特有の機能を活性化し、最終的に猫個体のサブセットに定着することがわかります。

質問 3.4: cat だけが入力として提供された場合に、猫の個体のサブセットが活性化されることになった理由を説明してください – 個体のこの差分活性化により、一般的な cat カテゴリに関連するさまざまな猫に関する有益な情報がどのように提供されるでしょうか?

* このテストを繰り返しますが、代わりに `cat` の代わりに `dog` ユニットをアクティブにします。 # 制約満足度 次に、制約を満たすためのアイデアをいくつか利用してみましょう。グラフ表示を使用すると、安定化サイクルにわたるネットワークの「調和」を確認できます。 * `cat` のみのテストに戻り、[[[sim:Test Cycle Plot]]] タブを選択して、整定サイクルにわたる調和のプロットを表示します。 予想どおり、この値は安定するにつれて単調増加しているように見え、アクティベーションが更新されるにつれてネットワークが制約をますます満たしていることを示していることに注目してください。 ここで、ネットワークに対してさらに *具体的な* クエリを作成してみましょう。 * `cat` に加えて `large` サイズ入力 (`Size` 列の最後の単位) をアクティブにし、それをテストします。 最終的なハーモニー値は、`cat` のみの値よりも低いことがわかります (最初は高く始まっていますが)。この低い調和は、不一致で一貫性のない制約を提供し、ネットワークもそれを満たすことができなかったという事実を反映しています (実際、ネットワークを見てみると、最終的には長い間苦労し、その後ひっくり返って *犬*、デイジーを表すようになりました)。 * `large` サイズ入力をオフにし、`cat` に加えて `medium` (サイズ列の中央のユニット) をオンにして、再度テストします。 この場合は開始が早いですが、中型猫はいるものの数が少ないため、制約が厳しくなり、最終的なハーモニーも `cat` 単独よりも低くなります。言い換えると、`cat` は満たしやすい制約であるため、結果として得られる調和は大きくなります。 `cat` と `medium` は、適用されるものが少なくなるため満足することが難しく、調和が低くなります。 ネットワークにクエリを実行できるさまざまな方法は無限にあるように見えます。さまざまな入力パターンを提示して、ネットワークがどのような応答を返すかを確認してください。それらのほとんどは、入力パターンによって提供される一連の制約に対する合理的な応答として認識できることを望んでいます。 楽しんで実験してください! </section>