Lexikon der Mathematik: bidirektionaler assoziativer Speicher
BAM (engl. bidirectional associative memory), spezielle Realisierung eines assoziativen Speichers im Kontext Neuronale Netze, dessen Besonderheit der bidirektionale Signalfluß ist.
Im folgenden wird die prinzipielle Funktionsweise eines bidirektionalen assoziativen Speichers anhand des von Bart Kosko gegen Ende der achtziger Jahre eingeführten Prototyps erläutert (diskrete Variante).
Dieses spezielle Netz, das in der Literatur auch häufig kurz Kosko-Netz genannt wird, ist zweischichtig aufgebaut mit n formalen Neuronen in der ersten Schicht und m formalen Neuronen in der zweiten Schicht. Alle formalen Neuronen der ersten Schicht sind bidirektional mit allen formalen Neuronen der zweiten Schicht verbunden und können sowohl Eingabeals auch Ausgabewerte übernehmen bzw. übergeben.
Bei dieser topologischen Fixierung geht man allerdings implizit davon aus, daß alle Neuronen in zwei verschiedenen Ausführ-Modi arbeiten können (bifunktional): Als Eingabeneuronen sind sie reine fanout neurons, während sie als Ausgabeneuronen mit der sigmoidalen Transferfunktion T : ℝ → {−1, 0, 1},
\begin{eqnarray}T(\xi ):=\{-1 & \text{für} & \xi \lt 0,\\ 0 & \text{für} & \xi =0,\\ 1 & \text{für} & \xi \gt 0,\end{eqnarray}
arbeiten und Ridge-Typ-Aktivierung mit Schwellwert Θ := 0 verwenden (zur Erklärung dieser Begriffe siehe formales Neuron).Die folgende Abbildung dient zur Illustration; zu Ihrer Erläuterung sei ferner erwähnt, daß alle parallel verlaufenden und entgegengesetzt orientierten Vektoren sowie die Ein- und Ausgangsvektoren jedes Neurons wie üblich zu einem bidirektionalen Vektor verschmolzen wurden, um die Skizze übersichtlicher zu gestalten und die Bidirektionalität auch optisch zum Ausdruck zu bringen.
Dem Netz seien im Lern-Modus die bipolar codierten Trainingswerte
\begin{eqnarray}({x}^{(s)},{y}^{(s)})\in {\{-1,1\}}^{n}\times {\{-1,1\}}^{m},\,1\le s\le t,\end{eqnarray}
zur Speicherung übergeben worden und dazu die Gewichte\begin{eqnarray}{w}_{ij}\in {\mathbb{R}},\text{}1\le i\le n,1\le j\le m,\end{eqnarray}
in irgendeinem Lern-Prozeß, z. B. mit der Hebb-Lernregel, berechnet worden.Wird nun dem Netz im Ausführ-Modus ein beliebiger bipolarer Eingabevektor
\begin{eqnarray}x={x}^{[0]}=({x}_{1}^{[0]},\ldots ,{x}_{n}^{[0]})\in {\{-1,1\}}^{n}\end{eqnarray}
über die erste Schicht übergeben, sowie formal\begin{eqnarray}y={y}^{[-1]}:=(-1,\ldots ,-1)\in {\{-1,1\}}^{m}\end{eqnarray}
gesetzt, so erzeugt das Netz zunächst eine Folge von Vektoren \({({x}^{[u]},{y}^{[u]})}_{u\in {\mathbb{N}}}\) gemäß\begin{eqnarray}{y}_{j}^{[u]}:=\{T(\displaystyle \sum _{i=1}^{n}{w}_{ij}{x}_{i}^{[u]}), & \displaystyle \sum _{i=1}^{n}{w}_{ij}{x}_{i}^{[u]}\ne 0,\\ {y}_{j}^{[u-1]}, & \displaystyle \sum _{i=1}^{n}{w}_{ij}{x}_{i}^{[u]}=0,\end{eqnarray}
\begin{eqnarray}{x}_{j}^{[u+1]}:=\{T(\displaystyle \sum _{i=1}^{m}{w}_{ij}{y}_{j}^{[u]}), & \displaystyle \sum _{j=1}^{m}{w}_{ij}{y}_{i}^{[u]}\ne 0,\\ {x}_{i}^{[u]}, & \displaystyle \sum _{j=1}^{m}{w}_{ij}{y}_{j}^{[u]}=0,\end{eqnarray}
1 ≤ i ≤ n.Als finalen Ausgabevektor liefert das Netz dann über die zweite Schicht denjenigen bipolaren Vektor y[v] ∈ {−1,1}m, für den erstmals y[v] = y[v + 1]für ein v ∈ ℕ gilt, also
\begin{eqnarray}y:={y}^{[v]}=({y}_{1}^{[v]},\ldots ,{y}_{m}^{[v]})\in {\{-1,1\}}^{m}.\end{eqnarray}
Daß ein erster derartiger Vektor existiert oder – wie man auch sagt – daß das Netz in einen stabilen Zustand übergeht, zeigt man, indem man nachweist, daß das sogenannte Energiefunktional
\begin{eqnarray}E:{\{-1,1\}}^{n}\times {\{-1,1\}}^{m}\to {\mathbb{R}},\\ E(x,y):=-\displaystyle \sum _{i=1}^{n}\displaystyle \sum _{j=1}^{m}{w}_{ij}{x}_{i}{y}_{j},\end{eqnarray}
auf den Zuständen des Netzes stets abnimmt, solange sich diese ändern.Aufgrund der Endlichkeit des Zustandsraums {−1,1}n × {−1,1}m kann dies jedoch nur endlich oft geschehen und die Terminierung des Ausführ-Modus ist gesichert.
Die Funktionalität eines assoziativen Speichers realisiert das so erklärte Netz dadurch, daß es in vielen Fällen für einen geringfügig verfälschten bipolaren x-Eingabevektor der Trainingswerte den korrekten, fehlerfreien zugehörigen y-Ausgabevektor liefert.
Wenn Sie inhaltliche Anmerkungen zu diesem Artikel haben, können Sie die Redaktion per E-Mail informieren. Wir lesen Ihre Zuschrift, bitten jedoch um Verständnis, dass wir nicht jede beantworten können.