Neuronale Netze - Assoziativspeicher



Neuronale Netze - Assoziativspeicher

Definition eines Assoziativspeichers: Speicher, auf den man durch seinen Inhalt zugreifen kann. Gegenstück: Adresspeicher (Zugriff durch die Adresse)

Der Assoziativspeicher ist die einfachste Form eines Neuronalen Netzes. Er besteht aus einer X-Schicht und einer Y-Schicht, welche durch Gewichtungen verbunden sind. Für jedes Neuron der X-Schicht existiert jeweils eine Gewichtung zu jedem Neuron der Y-Schicht, d.h. jedes Neuron der X-Schicht ist mit jedem Neuron der Y-Schicht, aber mit keinem Neuron der X-Schicht, verbunden. Die Neuronen der X-Schicht sind die Eingangsneuronen und die der Y-Schicht die Ausgangsneuronen. Jedes Neuron im Assoziativspeicher kann den Zustand +1 bzw. -1 annehmen. Beim Anlegen eines neuen Netzes, werden die Gewichtungen auf "0' gesetzt.



Das Wissen eines Neuronalen Netzes ist über sämtliche Gewichtungen verteilt. Die Interpretation dieser Daten ist praktisch nicht möglich. Die Anzahl der Daten eines Assoziativspeichers D ist kleiner oder höchstens gleich der Anzahl der Neuronen in der kleineren Schicht

Neuron

Y-Schicht

Gewichtungen W

X-Schicht

Überlegungen:

Es müssen genügend Inputs vorhanden sein, um ein Muster richtig zu interpretieren.

Es sollten nicht zu viele Inputs vorhanden sein, da jedes neue Eingabeneuron wiederum mit jedem Ausgabeneuron verbunden sein muß. Dadurch wird das Netz beim Ausführen und Trainieren langsamer.

Es sollten möglichst wenig Outputs verwendet werden, da das Netz sonst langsam wird und ein zusätzliches Ausgabeneuron keinen Vorteil bringt.







Transferfunktion:

Aj = a Wij*Xi

0 Aj

Einfacher:

Yj = 1, wenn a Wij*Xi > 0

Yj = 0, wenn a Wij*Xi kleiner oder gleich 0 ist

Ausführen des Netzes

Yj = T(a Wij*Xi)

Um einen Assoziativspeicher auszuführen, muß das Netz mit dem Input belegt werden. Danach wird die oben angegebene Formel angewandt, welche in der Y-Schicht das Ergebnis liefert.

Beispiel:

Berechnung von Y1 wenn X=

Gewichtungen:


Y1

Y2

Y3

Y4

X1=1





X2=-1





X3=1





X4=-1





X5=1





X6=-1





Trainieren des Netzes

Wij = Wij + XiYj

Um einen Assoziativspeicher zu trainieren, muß das Netz mit dem Input und dem Output belegt werden. Danach wird die oben angegebene Formel angewandt, welche die Werte der Gewichtungen ändert. Danach muß das Netz ausgeführt werden, um festzustellen ob es die neuen Eingaben gelernt hat. Das Netz wird sooft trainiert, bis es die Eingaben beherrscht. Es ist allerdings zu erwarten, daß bereits vorher gelernte Inputs, nun ein falsches Output liefern => müssen erneut trainiert werden.

Beispiel:

Vor dem Trainieren mit X= und Y=


Y1=1

Y2=-1

Y3=1

Y4=1

X1=1





X2=-1





X3=1





X4=1





X5=1





X6=-1





Nach dem Trainieren:


Y1

Y2

Y3

Y4

X1





X2





X3





X4





X5





X6





Es wurde jede Gewichtung mit Hilfe der obigen Formel geändert.