Artificial-neural-network-associate-memory

提供:Dev Guides
移動先:案内検索

Associate Memory Network

これらの種類のニューラルネットワークは、パターンの関連付けに基づいて機能します。つまり、異なるパターンを保存し、出力を提供するときに、指定された入力パターンと照合することで保存されたパターンの1つを生成できます。 これらのタイプのメモリは、 Content-Addressable Memory (CAM)とも呼ばれます。 連想メモリは、保存されたパターンをデータファイルとして並列検索します。

以下は、私たちが観察できる2種類の連想記憶です-

  • 自動連想メモリ
  • ヘテロ連想メモリ

自動連想メモリ

これは、入力トレーニングベクトルと出力ターゲットベクトルが同じである単一層のニューラルネットワークです。 重みは、ネットワークが一連のパターンを保存するように決定されます。

建築

次の図に示すように、自動連想メモリネットワークのアーキテクチャには、 'n' 個の入力トレーニングベクトルと同様の 'n' 個の出力ターゲットベクトルがあります。

自動連想メモリ

トレーニングアルゴリズム

トレーニングのために、このネットワークはヘブまたはデルタ学習ルールを使用しています。

ステップ1 *-すべての重みを w〜ij〜= 0(i = 1からn、j = 1からn)としてゼロに初期化します

  • ステップ2 *-各入力ベクトルに対してステップ3〜4を実行します。
  • ステップ3 *-各入力ユニットを次のようにアクティブにします-

x _ \ {i} \:= \:s _ \ {i} \ :( i \:= \:1 \:to \:n)

  • ステップ4 *-各出力ユニットを次のようにアクティブにします-

y _ \ {j} \:= \:s _ \ {j} \ :( j \:= \:1 \:to \:n)

  • ステップ5 *-次のように重みを調整します-

w _ \ {ij}(new)\:= \:w _ \ {ij}(old)\:+ \:x _ \ {i} y _ \ {j}

テストアルゴリズム

  • ステップ1 *-ヘブのルールのトレーニング中に取得した重みを設定します。
  • ステップ2 *-各入力ベクトルに対してステップ3〜5を実行します。
  • ステップ3 *-入力ユニットのアクティベーションを入力ベクトルのアクティベーションに等しく設定します。

ステップ4 *-各出力ユニットへの正味入力を計算する *j = 1〜n

y _ \ {inj} \:= \:\ displaystyle \ sum \ limits _ \ {i = 1} ^ n x _ \ {i} w _ \ {ij}

  • ステップ5 *-次のアクティベーション関数を適用して、出力を計算します

y _ \ {j} \:= \:f(y _ \ {inj})\:= \:\ begin \ {cases} +1&if \:y _ \ {inj} \:> \:0 \\ -1&if \:y _ \ {inj} \:\ leqslant \:0 \ end \ {cases}

ヘテロ連想メモリ

自動連想メモリネットワークと同様に、これも単層ニューラルネットワークです。 ただし、このネットワークでは、入力トレーニングベクトルと出力ターゲットベクトルは同じではありません。 重みは、ネットワークが一連のパターンを保存するように決定されます。 ヘテロ連想ネットワークは本質的に静的であるため、非線形操作や遅延操作はありません。

建築

次の図に示すように、ヘテロ連想メモリネットワークのアーキテクチャには、「n」個の入力トレーニングベクトルと「m」*個の出力ターゲットベクトルがあります。

ヘテロ連想メモリ

トレーニングアルゴリズム

トレーニングのために、このネットワークはヘブまたはデルタ学習ルールを使用しています。

ステップ1 *-すべての重みを w〜ij〜= 0(i = 1からn、j = 1からm)としてゼロに初期化します

  • ステップ2 *-各入力ベクトルに対してステップ3〜4を実行します。
  • ステップ3 *-各入力ユニットを次のようにアクティブにします-

x _ \ {i} \:= \:s _ \ {i} \ :( i \:= \:1 \:to \:n)

  • ステップ4 *-各出力ユニットを次のようにアクティブにします-

y _ \ {j} \:= \:s _ \ {j} \ :( j \:= \:1 \:to \:m)

  • ステップ5 *-次のように重みを調整します-

w _ \ {ij}(new)\:= \:w _ \ {ij}(old)\:+ \:x _ \ {i} y _ \ {j}

テストアルゴリズム

  • ステップ1 *-ヘブのルールのトレーニング中に取得した重みを設定します。
  • ステップ2 *-各入力ベクトルに対してステップ3〜5を実行します。
  • ステップ3 *-入力ユニットのアクティベーションを入力ベクトルのアクティベーションに等しく設定します。

ステップ4 *-各出力ユニットへの正味入力を計算します *j = 1 to m;

y _ \ {inj} \:= \:\ displaystyle \ sum \ limits _ \ {i = 1} ^ n x _ \ {i} w _ \ {ij}

  • ステップ5 *-次のアクティベーション関数を適用して、出力を計算します

$$ y _ \ {j} \:= \:f(y _ \ {inj})\:= \:\ begin \ {cases} +1&if \:y _ \ {inj} \:> \:0 \\ 0&if \:y _ \ {inj} \:= \:0 \\-1&if \:y _ \ {inj} \: