compcogneuro/sims: 探検
このページは外部資料の日本語訳です。原文の見出し順と本文順を保ち、コード・URL・出典表記はできるだけ原形のまま残しています。
出典とライセンス
原典: 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カテゴリに関連するさまざまな猫に関する有益な情報がどのように提供されるでしょうか?