双方向連想記憶(BAM )は、リカレントニューラルネットワークの一種です。BAMは1988年にバート・コスコによって提唱されました。[1]連想記憶には、自己連想型と異連想型の2種類があります。BAMは異連想型であり、あるパターンを与えると、潜在的に異なるサイズの別のパターンを返すことができます。ホップフィールドネットワークと類似しており、どちらも連想 記憶の一種です。ただし、ホップフィールドネットワークは同じサイズのパターンを返します。
入力層と出力層のどちらからの入力にも応答できるため、双方向性があると言われています。[2]
トポロジー
BAMは2つのニューロン層(X層とY層)で構成されます。X層とY層は互いに完全に結合しています。重みが確立されると、X層への入力はY層のパターンを表し、Y層への入力はX層にパターンを表します。
層は双方向(双方向)に接続することができ、その結果、X層からY層に送られる重み行列は となり、Y層からX層に送られる信号の重み行列は となる。したがって、重み行列は双方向で計算される。[2]
手順
学ぶ
A1:B1 と A2:B2 という 2 つの関連付けを保存したいとします。
- A1 = (1、0、1、0、1、0)、B1 = (1、1、0、0)
- A2 = (1、1、1、0、0、0)、B2 = (1、0、1、0)
これらは次に双極性形式に変換されます。
- X1 = (1、-1、1、-1、1、-1)、Y1 = (1、1、-1、-1)
- X2 = (1、1、1、-1、-1、-1)、Y2 = (1、-1、1、-1)
そこから転置を計算します。つまり、
想起
連想A1を取得するには、これをMで乗じて(4, 2, -2, -4)を得ます。これを閾値に通すと(1, 1, 0, 0)となり、これがB1です。逆の連想を求めるには、これにMの転置を乗じます。
容量
BAMのメモリまたは記憶容量は で表されます。ここで、「」はX層のユニット数、「」はY層のユニット数です。[3]
内部行列はnxp個の独立自由度を持ちます。ここで、nは最初のベクトルの次元(この例では6)、pは2番目のベクトルの次元(4)です。これにより、BAMは最大min(n,p)個の独立ベクトルペアを確実に保存・呼び出しすることができ、この例ではmin(6,4) = 4となります。[1]信頼性(出力ビットの誤り)を犠牲にすることで、この容量を上記の値まで増加させることができます。
安定性
ペアはBAMの状態を定義します。パターンを保存するには、そのパターンのエネルギー関数値がエネルギーランドスケープの最小点を占める必要があります。
BAMの安定性解析は、各状態が であるリアプノフ関数(エネルギー関数)の定義に基づいています。BAMにペアパターンが提示されると、ニューロンは双方向安定状態に達するまで状態を変化させます。Koskoは、この状態がエネルギー関数の局所的最小値に対応することを証明しました。離散BAMは安定状態に収束することが証明されています。
Koskoによって提案されたエネルギー関数は双方向の場合のものであり、特定のケースではホップフィールドの自動連想エネルギー関数に対応する。[3](すなわち)。
参照
参考文献
- ^ ab Kosko, B. (1988). 「双方向連想記憶」(PDF) . IEEE Transactions on Systems, Man, and Cybernetics . 18 (1): 49– 60. doi :10.1109/21.87054.
- ^ ab 「Principles of Soft Computing, 3ed」. www.wileyindia.com . 2020年8月15日閲覧。
- ^ ab RAJASEKARAN, S.; PAI, GA VIJAYALAKSHMI (2003-01-01). ニューラルネットワーク、ファジーロジック、遺伝的アルゴリズム:合成と応用(CD付き). PHI Learning Pvt. Ltd. ISBN 978-81-203-2186-1。
外部リンク
- 双方向連想記憶 - Wiki記事のPythonソースコード
- 双方向連想記憶 – ACMポータルリファレンス