compcogneuro/sims: 探検
このページは外部資料の日本語訳です。原文の見出し順と本文順を保ち、コード・URL・出典表記はできるだけ原形のまま残しています。
出典とライセンス
原典: https://github.com/compcogneuro/sims/blob/main/ch4/err_driven_hidden/README.md
ライセンス: BSD 3-Clause。このページは日本語翻訳であり、変更点は翻訳とサイト内整形です。
# 導入
このシミュレーションは、XCAL エラー駆動学習が隠れ層をどのようにトレーニングして、単純な 2 層ネットワークでは不可能な問題を解決できるかを示しています (パターン アソシエーター (pat_assoc) の探索で見たように、この探索を実行する前に最初に完了する必要があります)。
探検
このプロジェクトは、パターン アソシエーターのプロジェクトと同じですが、1 つの大きな例外があります。それは、4 つのユニットを持つ Hidden レイヤーを導入したことです。 入力はマイナス位相とプラス位相の両方でクランプされているため、いずれにしてもフィードバック接続の影響を受けないため、入力からこの隠れ層へのフィードフォワード接続のみが存在しますが、XCal アルゴリズムがエラー駆動学習を実行できるようにするために必要なため、Hidden 層と Output 層の間には双方向接続があることに注意してください。デフォルトでは、学習ルール値は ErrorDriven に設定され、Pats は Impossible です。
- [[sim:Init]] をクリックし、[[sim:Step]] を
Runおよび [[sim:Step]] に設定します。
パターン アソシエーター プロジェクトと同様に、Train Epoch Plot はトレーニング エポックにわたる SSE エラー測定値を表示します。 Test Trial テーブル ビューは、トレーニングの 5 エポックごとに更新され、非表示ユニットの状態も表示されます。
また、以前と同様に、ネットワークのトレーニングは、トレーニング セット全体が 5 エポック連続で正しく取得された後、自動的に停止します (これは [[sims:Config]] 設定、NZero = 5 で設定されます)。この 5 回の正しい繰り返しの基準は、学習曲線のギザギザの形状で明らかなように、学習中のネットワークの多少ノイズの多い動作によって発生する可能性のある時折の偽の解を除外することに注意してください。このノイズの多い動作の理由は、重みの比較的小さな変化が、入力パターンに対してさまざまな異なる応答を生成する双方向のアクティベーション ダイナミクスにより、ネットワーク全体の動作に大きな変化をもたらす可能性があるためです。
ネットワークのこの感度は、すべてのアトラクター ネットワーク (つまり、双方向接続を持つネットワーク) の特性ですが、フィードフォワード ネットワークの典型的なものではありません。したがって、これと同じタスクを学習するフィードフォワード逆伝播ネットワークは、滑らかで単調減少する学習曲線を持ちます (逆伝播のサブトピックを参照)。アトラクター ネットワークは逆伝播の滑らかさを共有していないため、アトラクター ネットワークでの学習の性質を批判する人もいます。しかし、双方向接続性とアトラクターダイナミクスの利点は、学習ルールの生物学的妥当性とともに、学習曲線の美しさをはるかに上回ることがわかりました。さらに、大規模なネットワークはよりスムーズな学習を示します。これは、ネットワークの「質量」が大きいため、小さな重みの変化に対する感度が低いためです。
- [[sim:Init]] を数回押してから、[[sim:Step]]
Runを数回押して、ネットワークの一般的な学習速度を把握します。 「[[sim:Train Run Plot]]」タブをクリックすると、[[sim:Train Run Plot/FirstZero]] エポック SSE (つまり、トレーニング セット全体が正しくなった最初のエポック) に到達するまでにかかった時間と、最終的に学習したときの [[sim:Train Run Plot/LastZero]] までのエポック数 (つまり、トレーニング セット全体が 5 回連続で正しくなったエポック) の概要を確認できます。そしてトレーニングは停止します)。 学習に失敗する初期重みのセットが時折存在することに注意してください (最初のゼロ エポックでは -1 が表示されます)。それは、それ以上の学習を妨げるアトラクターに引っかかっているだけです。
質問 4.7a: ネットワークがこの不可能な問題を学習するのにどれくらいのエポックが必要かについて、一般的な特徴を説明してください (例、最も遅い、最速、大まかな平均など)。