Bidirektionaler Assoziativspeicher
Bidirektionaler Assoziativspeicher, englisch bidirectional associative memory (kurz: BAM), ist eine Klasse künstlicher neuronaler Netze und kann als verallgemeinertes Hopfield-Netz betrachtet werden. BAM gehört zu der Gruppe der rückgekoppelten neuronalen Netze.
Struktur
Ein BAM-Netz besteht aus einer Eingabeschicht <math>I</math> von <math>n</math> und einer Ausgabeschicht <math>O</math> von <math>m</math> künstlichen Neuronen, beide Schichten sind in beide Richtungen miteinander verbunden, wobei die Gewichte symmetrisch sind. Das führt zu einer m × n Matrix <math>W</math> für die Gewichte, die von <math>I</math> nach <math>O</math> gerichtet sind. Die Gewichte von <math>O</math> nach <math>I</math> entsprechen der transponierten Matrix <math>W^T</math>.
Trainingsphase
In der Trainingsphase lernt das Netz einen n-dimensionalen Vektor <math>x</math> mit einem m-dimensionalen Vektor <math>y</math> zu verknüpfen. Dazu werden beide Vektoren an der Eingabeschicht <math>I</math> und Ausgabeschicht <math>O</math> angelegt und die Gewichtsmatrix kann in einem Lernschritt berechnet werden. Dazu gilt:
- <math>W_k = xy^T \quad k = {1, \dots, l} \quad \text{für } l \text{ Vektorpaare}</math>
Zum Schluss werden alle Gewichtsmatrizen zur resultierenden Gewichtsmatrix <math>W</math> addiert.
Muster Wiederherstellen
Bei einem Recall wird ein verrauschter Eingangsvektor an <math>I</math> angelegt und man lässt das Netz einfach rechnen, d. h. Neuronen der Ausgangsschicht berechnen ihren neuen Zustand über <math>net_i</math> und geben diesen über <math>o_j</math> wieder an <math>I</math> weiter. Dann beginnt der Prozess von vorn, solange bis die stetig sinkende Energie des Netzes ein lokales Minimum erreicht hat. Nun kann der assoziierte Ausgabevektor entnommen werden.
- <math>
net_i = \sum_{j=1}^n w_{ij} o_i </math>
und
- <math>
o_i(t+1) = \begin{cases} 1, & \text{wenn} \sum_{i=1}^n w_{ij} o_j(t) > 0 \\ 0, & \text{wenn} \sum_{i=1}^n w_{ij} o_j(t) < 0 \\ o_i(t), & \text{wenn} \sum_{i=1}^n w_{ij} o_j(t) = 0 \end{cases} </math>
Literatur
- Gerhard Schöneburg, Nikolaus Hansen, Andreas Gawelczyk, Neuronale Netze, Markt&Technik Verlag Haar(1990), ISBN 3-89090-329-0.
- Andreas Zell, Simulation neuronaler Netze, R. Oldenbourg Verlag München(1997), ISBN 3-486-24350-0.