Bidirektionales assoziatives Gedächtnis (BAM) ist eine Art rekurrentes neuronales Netzwerk, das 1988 von Bart Kosko eingeführt wurde. Es ist eine Form des assoziativen Gedächtnisses, das Muster hetero-assoziativ speichert, das heißt, dass es bei einem Muster aus einer Schicht ein entsprechendes Muster aus einer anderen Schicht abrufen kann, das möglicherweise eine andere Größe hat. Dies steht im Gegensatz zu auto-assoziativen Gedächtnissen wie dem Hopfield-Netzwerk, die Muster gleicher Größe zurückgeben. BAM ist bidirektional, da es auf Eingaben sowohl von der Eingabe- als auch von der Ausgabeschicht reagieren kann, wobei die Gewichtsmatrix und ihre Transponierte für den Vorwärts- und Rückwärtsabruf verwendet werden.
Topologie
Ein BAM besteht aus zwei Schichten von Neuronen, bezeichnet mit X und Y, die vollständig miteinander verbunden sind. Sobald die Gewichte festgelegt sind, erzeugt die Eingabe eines Musters in Schicht X ein Muster in Schicht Y und umgekehrt. Die Verbindungen sind bidirektional: Die Gewichtsmatrix, die von Schicht X zu Schicht Y gesendet wird, wird mit W bezeichnet, und die Gewichtsmatrix für Signale von Y zu X ist die Transponierte W^T. Somit wird die Gewichtsmatrix in beide Richtungen verwendet, was einen symmetrischen Abruf ermöglicht.
Lernen
Um Assoziationen zu speichern, werden Muster zunächst in bipolare Form (1 und -1) umgewandelt. Um beispielsweise zwei Assoziationen A1:B1 und A2:B2 zu speichern, mit A1 = (1, 0, 1, 0, 1, 0) und B1 = (1, 1, 0, 0), sind die bipolaren Formen X1 = (1, -1, 1, -1, 1, -1) und Y1 = (1, 1, -1, -1). Ebenso werden A2 = (1, 1, 1, 0, 0, 0) und B2 = (1, 0, 1, 0) zu X2 = (1, 1, 1, -1, -1, -1) und Y2 = (1, -1, 1, -1). Die Gewichtsmatrix M wird als Summe der äußeren Produkte jedes Paares berechnet: M = Σ X_i^T Y_i. Für das Beispiel ergibt dies eine 6x4-Matrix mit Einträgen wie 2, 0, -2 usw., die die Korrelationen zwischen den Eingabe- und Ausgabemustern widerspiegeln.
Abruf
Um eine Assoziation abzurufen, wird ein Eingabemuster mit der Gewichtsmatrix multipliziert. Zum Beispiel ergibt die Multiplikation von A1 (in bipolarer Form) mit M (4, 2, -2, -4), was nach Anwendung eines Schwellenwerts (positive Werte werden zu 1, negative zu 0) (1, 1, 0, 0) ergibt, was B1 entspricht. Die umgekehrte Assoziation wird durch Multiplikation des Ausgabemusters mit der Transponierten von M erhalten, was den Abruf von Y zu X ermöglicht.
Kapazität
Die Speicherkapazität eines BAM ist durch min(m, n) gegeben, wobei n die Anzahl der Einheiten in der X-Schicht und m die Anzahl der Einheiten in der Y-Schicht ist. Die interne Gewichtsmatrix hat n x p unabhängige Freiheitsgrade, wobei n die Dimension des ersten Vektors (z. B. 6) und p die Dimension des zweiten Vektors (z. B. 4) ist. Dies ermöglicht es dem BAM, bis zu min(n, p) unabhängige Vektorpaare zuverlässig zu speichern und abzurufen; im Beispiel ist min(6, 4) = 4. Die Kapazität kann über diesen Wert hinaus erhöht werden, jedoch auf Kosten der Zuverlässigkeit, wobei falsche Bits in der Ausgabe eingeführt werden.
Stabilität
Ein Paar (A, B) definiert den Zustand eines BAM. Damit ein Muster gespeichert werden kann, muss sein Energiefunktionswert ein Minimum in der Energielandschaft einnehmen. Kosko schlug die Lyapunov-(Energie-)Funktion E(A, B) = -A M B^T für den bidirektionalen Fall vor. Wenn ein gepaartes Muster präsentiert wird, ändern Neuronen ihren Zustand, bis ein bidirektional stabiler Zustand (A_f, B_f) erreicht ist, von dem Kosko bewies, dass er einem lokalen Minimum der Energiefunktion entspricht. Das diskrete BAM konvergiert garantiert zu einem stabilen Zustand. Für den speziellen Fall, in dem A = B ist, reduziert sich die Energiefunktion auf E(A, A) = -A M A^T, was der auto-assoziativen Energiefunktion des Hopfield-Netzwerks entspricht.