compcogneuro/web: 制約満足度
このページは外部資料の日本語訳です。原文の見出し順と本文順を保ち、コード・URL・出典表記はできるだけ原形のまま残しています。
出典とライセンス
原典: https://github.com/compcogneuro/web/blob/main/content/cats-and-dogs-simulation.md
ライセンス: Text: CC BY 4.0; code: BSD 3-Clause。このページは日本語翻訳であり、変更点は翻訳とサイト内整形です。
+++ Categories = [“Simulations”] bibfile = “ccnlab.json” +++ TODO: SIM を axon に変換します。現在、Leabra でのみ利用可能です:
このプロジェクトは、世界の一連のエンティティを表すために使用されるさまざまな特徴間の (非常に小さな) 一連の関係を表すことを目的とした、単純な セマンティック ネットワーク を調査します。 この例では、猫と犬の色、大きさ、好きな食べ物、好きなおもちゃなどのいくつかの特徴を表します。このネットワークには、多数の個々の猫や犬に関する情報が含まれており、この情報を使用して、一般的な猫や犬の共通点とその独特な点について * 一般化 * を行うことができます。また、猫や犬との特定の特徴の 一貫性 についても知ることができます。これは、特徴入力の特定の構成によるネットワークの合計制約満足レベルを評価する際に、ハーモニー関数が役立つ場合があります。ネットワークを使用して、特定の個人に関する情報を取得する方法として パターン補完 を実行することもできます。したがって、この単純なネットワークには、この章で取り上げるトピックの多くが要約されています。
{id=”table_cats-dogs” title=”猫と犬のセマンティクス”} |種 |名前 |色 |サイズ |食べ物 |おもちゃ | |———–|———–|——|———-|——–|———| |猫 | 猫クロエ |オレンジ |小 |草 |文字列 | | |靴下 |ブラック&ホワイト |小 |バグ |羽根 | | |シルベスター |ブラック&ホワイト |小 |草 |文字列 | | |ガーフィールド |オレンジ |中 |スクラップ |文字列 | | |ファジー |ホワイト |中 |草 |羽根 | |犬 | 犬デイジー |黒 |大 |スクラップ |骨 | | |フィド |ブラウン |中 |靴 |靴 | | |スポット |ブラック&ホワイト |中 |スクラップ |骨 | | |スヌーピー |ブラック&ホワイト |中 |スクラップ |骨 | | |ペニー |ブラウン |大 |靴 |靴 |
ネットワークに組み込まれた知識は、上の表にまとめられています。後のネットワークでは、この知識がどのように経験(たとえば、個々の猫や犬)によって学習されるかがわかりますが、ここでは、この知識は、個々の猫または犬を表す インスタンス (Identity) ノードと、この個体が持つ対応する特徴 (例: 茶色) との間に強い重み (通常は 1) を設定するだけでエンコードされます (McClelland & Rumelhart の Jets and Sharks モデルを参照)。 1988)。 特徴の各グループ (つまり、テーブルの 1 つの列内の値) は、独自の層内抑制を持つ個別の層内で表されるため、各層のユニットが入力を最適に表現するために競合します。さらに、すべての ID ユニットと名前ユニットも、それぞれ独自の別個のレイヤー内にあります。ここでは FFFB 抑制関数を使用します。これにより、層ごとのアクティブ ユニットの実際の数をかなり柔軟に設定できます。
探検
- いつものように、時間をかけてネットワーク内の重みを調べ、その重みが表に示されている知識を実装していることを確認します。これを行うには、[
Network] タブでWts / r.Wt値を選択し、さまざまなレイヤーの個々のニューロンをクリックします。
まず、個人の名前を入力として提示すると、その個人に関するすべての情報が呼び戻されることを確認してみましょう。これは、単一の一意の入力キューによるパターン補完の形式です。
- [
Network] タブでAct / Act値を選択します。Trialの代わりにStepをCycleに設定し、Stepを繰り返し押してデフォルトの入力パターンをネットワークに提示します。これにより、Chloeネームユニットがアクティブになります。
この入力が時間の経過とともに処理された後、ネットワークが Chloe に適切な機能をアクティブ化していることがわかります。このプロセスは、Chloe の入力制約とネットワークの重みの制約を考慮して、最も調和のとれたアクティベーション状態を見つけるものと考えることができます。同様に、クロエ アトラクターに落ち着いたと考えることができます。
- 左側のコントロール パネルで
Patternsの隣のCatsAndDogsボタンをクリックし、名前レイヤーのパターンをダブルクリックすると、値を編集できる編集ウィンドウが表示されます。 最初のセルをゼロにし、2 番目のセルに 1 を追加します (これは、ネットワークに Chloe の代わりに「Socks」という名前が表示されるのと似ています)。 DoInitおよびTest Trialはこれに応答します (上記の表から予想されるとおりです)。 他の名前のアクティブ化をいくつか試してください (適切な値を 0 から 1 に変更します)。
さて、このネットワークが、あるレベルでは一組の個体に関する情報 (つまり、アイデンティティから各特徴への重み付けの知識) しか持っていないにもかかわらず、どのようにして猫と犬に関する *一般的な * 情報を提供できるのかを見てみましょう。
- すべての Name 入力を 0 に設定し、Species 入力をダブルクリックして、最初の単位を 1 (Cat) に設定し、
InitおよびStepサイクルを再度実行します。 右下にある VCRTimeボタンを使用して、サイクルごとのアクティブ化の設定に戻って再生することもできます。
ネットワークが猫に特有の機能を活性化し、最終的に猫個体のサブセットに定着することがわかります。
{id=”質問_猫”}
catだけが入力として提供されたときに、猫の個体のサブセットが最終的に活性化された理由を説明してください – 個体のこの差分活性化は、一般的なcatカテゴリに関連して、さまざまな猫に関する有用な情報をどのように提供するでしょうか?
- このテストを繰り返しますが、代わりに
catの代わりにdogユニットをアクティブにします。
制約満足度
次に、制約を満たすためのアイデアをいくつか利用してみましょう。グラフ表示を使用すると、安定化サイクルにわたるネットワークの「調和」を確認できます。
catのみのテストに戻り、[Test Cycle Plot] タブを選択して、整定サイクルにわたる調和のプロットを表示します。
予想どおり、この値は安定するにつれて単調増加しているように見え、アクティベーションが更新されるにつれてネットワークが制約をますます満たしていることを示していることに注目してください。
ここで、ネットワークに対してさらに 具体的な クエリを作成してみましょう。
catに加えてlargeサイズ入力 (Size列の最後の単位) をアクティブにし、それをテストします。
最終的なハーモニー値は、cat のみの値よりも低いことがわかります (最初は高く始まっていますが)。この低い調和は、不一致で一貫性のない制約を提供し、ネットワークもそれを満たすことができなかったという事実を反映しています (実際、ネットワークを見てみると、最終的には長い間苦労し、その後ひっくり返って 犬、デイジーを表すようになりました)。
largeサイズ入力をオフにし、catに加えてmedium(サイズ列の中央のユニット) をオンにして、再度テストします。
この場合は開始が早いですが、中型猫はいるものの数が少ないため、制約が厳しくなり、最終的なハーモニーも cat 単独よりも低くなります。言い換えると、cat は満たしやすい制約であるため、結果として得られる調和は大きくなります。 cat と medium は、適用されるものが少なくなるため満足することが難しく、調和が低くなります。
ネットワークにクエリを実行できるさまざまな方法は無限にあるように見えます。さまざまな入力パターンを提示して、ネットワークがどのような応答を返すかを確認してください。それらのほとんどは、入力パターンによって提供される一連の制約に対する合理的な応答として認識できることを望んでいます。
楽しんで実験してください!