Benutzer-Werkzeuge

Webseiten-Werkzeuge


aufbau_des_hopfield-netzes

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
aufbau_des_hopfield-netzes [2024/01/21 14:04] – [Verbindungen] torsten.roehlaufbau_des_hopfield-netzes [2024/01/21 14:25] (aktuell) – [Beispiel] torsten.roehl
Zeile 10: Zeile 10:
  
 =====Aufbau  ===== =====Aufbau  =====
-Das Hopfield Netz ist ein Netz mit Rückkopplung (Feedback-Netz). Es besitzt nur eine Schicht, welche gleichzeitig als Ein- und Ausgabeschicht zur Verfügung steht.  Weiterhin sind die benötigten Vektoren für Ein- und Ausgabe gleich lang (autoassoziative Mustererkennung).\\ +Das Hopfield Netz ist ein Netz mit Rückkopplung (Feedback-Netz). Es besitzt nur eine Schicht, welche gleichzeitig als Ein- und Ausgabeschicht zur Verfügung steht. \\  Weiterhin sind die benötigten Vektoren für Ein- und Ausgabe gleich lang (autoassoziative Mustererkennung).\\ 
-Die Neurone können die Werte 1 und -1 annehmen, die alle, bis auf $w_{ii}=0$,  miteinander in Verbindung stehen. Bei rückgekoppelten Netzen müssen die Zustände der Neurone solange neu berechnet werden, bis das Netz in einem Ruhezustand ist (konvergiert), d.h. bis sich keine Änderung der Aktivierungszustände mehr ergeben.+Die** Neurone können die Werte 1 und -1 annehmen**, die alle, bis auf $w_{ii}=0$,  miteinander in Verbindung stehen. Bei rückgekoppelten Netzen müssen die Zustände der Neurone solange neu berechnet werden, bis das Netz in einem Ruhezustand ist (konvergiert), d.h. bis sich keine Änderung der Aktivierungszustände mehr ergeben.
 ==== Verbindungen ==== ==== Verbindungen ====
 Die synaptischen Gewichte sind symmetrisch, d.h. es gilt: Die synaptischen Gewichte sind symmetrisch, d.h. es gilt:
-\begin{equation} w_{ij}= w_{ji}\end{equation}   mit \begin{equation} w_{ii} = 0\end{equation}+\begin{equation} w_{ij}= w_{ji}\;\; \text{mit}\;\; w_{ii} = 0\end{equation} 
 + 
 + 
 +<WRAP center round info 100%> 
 +Man achte auf die Indizes:  Die Indizes $ij$ bedeuten eine Verbindung zwischen Neuron $x_i$  und Neuron $x_j$, wohingegen die Indizes $ji$ bedeuten, dass die Verbindung zwischen dem Neuron $x_j$ und Neuron $x_i$ gemeint ist. Demnach bedeutet $w{ii}$ eine Verbindung (das Gewicht) zwischen ein und demselben Neuron, die beim Hopfieldnetz nicht vorhanden ist. 
 +</WRAP> 
 ====  Speicherkapazität==== ====  Speicherkapazität====
 +
 +**Wie viele Muster kann man jetzt mit einem Hopfield-Netz speichern?**\\
 +
 +Die Speicherkapazität ist abhängig von der Zahl der Neuronen N im Netzwerk. Umso mehr Neuronen zur Verfügung stehen, desto mehr Muster M können zuverlässig gespeichert und wiedergegeben werden.
 +
 +  * M ~ N
 +
 +
 +Abschätzungen ergeben:
 +
 +  * M ≈ 0.13 · N  bis  M ≈ 0.15 · N
 +
 +
 +
 +Angenommen wir haben ein Netz mit 100 Neuronen zur Verfügung,  dann können wir  13  Muster speichern. Dies setzt allerdings voraus, dass sich die Muster auch gut unterscheiden lassen, d.h. die Muster dürfen einander nicht zu ähnlich sein.\\ Da wir Muster durch Vektoren repräsentieren, bedeutet das, dass die Vektoren möglichst orthogonal (senkrecht) aufeinander stehen sollten.  Unter orthogonalen Mustern verstehen wir Muster, die sich von allen Möglichkeiten am stärksten unterscheiden.
 ====  Aktivierungsfunktion im Hopfield Netz==== ====  Aktivierungsfunktion im Hopfield Netz====
 +
 +
 +Hopfield-Netze sind gekennzeichnet durch die Aktivierungsfunktion:
 +
 +|{{ :inf:ki:sign.png? |}} |{{ :inf:ki:sign1.png? |}} |
 +|Wenn x größer oder gleich null ist, nimmt f den Funktionswert  1 an. Ansonsten ist der Funktionswert -1.|Graphische Darstellung der Aktivierungsfunktion.|
 +
 +Dies ist eine Schwellenwertfunktion. Jedes Neuron $x_i$ berechnet zunächst die gewichtete Summe aller Eingangsverbindungen. Die Ausgabe beträgt **1**, wenn die Aktivierung größer als der Schwellenwert ist. Sie nimmt den Wert ** -1** an, wenn die Aktivierung kleiner als der Schwellenwert ist.
 +
 + 
 ====  Updateregel==== ====  Updateregel====
  
 +
 +Um den nächsten Zustand der Neurone zu ermitteln, gibt es zwei grundsätzlich verschiedene Verfahren:
 +
 +  * Asynchrone Aktivierung
 +          * Zu jedem Zeitpunkt ändert nur ein einziges Neuron seinen Aktivierungszustand (dieses Neuron wird zufällig ausgewählt)
 +
 +  * Synchrone Aktivierung
 +          * Alle Neurone ändern ihren Zustand gleichzeitig (paralleles Update)
 +
 +Unabhängig von diesen beiden  Verfahren, muss zuerst die Netzeingabe $net_i$ des Neurons bestimmt werden, welches 'upgedatet' werden soll. Mithilfe dieser Netzeingabe kann dann anhand der Aktivierungsfunktion der nächste Zustand bestimmt werden.
 +
 +
 +====  Beispiel ====
 +
 +<WRAP center round box 100%>
 +
 +{{:inf:aufgabe.gif?|}}
 +
 +Gegeben ist ein Hopfield-Netz mit 3 Neuronen.\\ \\
 +Die Gewichte sind:\\
 +\( w_{11} = w_{22} = w_{33} = 0 \)  und \\ 
 +\( w_{12} = w_{21} = -1 \),\\
 +\( w_{13} = w_{31} = 1 \),\\
 +\( w_{23} = w_{32} = -1 \),
 +
 +Die Neuronen haben folgende Werte:\\
 +\(x_1 = -1, x_2 = 1 \) und \( x_3 = -1 \).
 +
 +**Berechnen Sie den nächsten Zustand des Neurons  \( x_2 \).**
 +
 +{{:inf:solution.gif?|}}
 +
 +**Step 1:**\\
 +Wir müssen zuerst die gewichtete Summe ( \( net_2) \) für das Neuron \( x_2 \)berechnen.
 +
 +\[  net_2 = \sum_{i=1}^3  w_{i2} \cdot x_i = w_{12} \cdot x_1 +  w_{22} \cdot x_2 + w_{32} \cdot x_3 \]
 +
 +\[  net_2 =  (-1) \cdot (-1) + 0 \cdot 1 + (-1) \cdot (-1) = 2 \]
 +
 + 
 +
 +**Step 2:**\\
 +Mithilfe der gewichteten Summe und der Aktivierungsfunktion läßt sich jetzt der nächste Zustand des Neurons \( x_2 \) bestimmen.
 +
 +\[  x_2 = f( net_2 ) = f( 2) = 1  \]
 +
 +**Das heißt der Zustand des Neurons ändert sich nicht (es feuert weiterhin).**
 +
 +</WRAP>
  
  
aufbau_des_hopfield-netzes.1705845862.txt.gz · Zuletzt geändert: 2024/01/21 14:04 von torsten.roehl