aufgabenbeispiel
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
aufgabenbeispiel [2024/01/21 09:39] – [Voraussetzungen] torsten.roehl | aufgabenbeispiel [2024/01/21 09:55] (aktuell) – [Algorithmus (um Bilder wieder zu erkennen)] torsten.roehl | ||
---|---|---|---|
Zeile 6: | Zeile 6: | ||
{{: | {{: | ||
- | Das Netz soll zuerst eine Anzahl von Bildern speichern. Anschließend soll das Netz dann in der Lage sein, ein verrauschtes, | + | **Das Netz soll zuerst eine Anzahl von Bildern speichern. Anschließend soll das Netz dann in der Lage sein, ein verrauschtes, |
+ | ** | ||
+ | \\ \\ | ||
Dazu betrachten wir Bilder mit lediglich zwei Farben (//binäre Bilder// | Dazu betrachten wir Bilder mit lediglich zwei Farben (//binäre Bilder// | ||
Zeile 13: | Zeile 14: | ||
===== Voraussetzungen ===== | ===== Voraussetzungen ===== | ||
- | - Legen Sie die Anzahl der Neuronen \[N = Bildhöhe \cdot Bildbreite \] fest. Wir verwenden Quadratische Bilder, d.h. es gilt Bildbreite = Bildhöhe. | + | - Legen Sie die Anzahl der Neuronen \[N = Bildhöhe \cdot Bildbreite \] fest. Wir verwenden Quadratische Bilder, d.h. es gilt Bildbreite = Bildhöhe. |
- Geben Sie Bilder vor, die das Netz speichern soll. Denken sie daran, dass die Speicherkapazität ~ 13% der Netzgröße beträgt. Bei 64 Neuronen sollten nicht mehr als 8 Bilder (Muster alias Vektoren) gespeichert werden. Denken sie auch daran, dass sich die Muster möglichst gut unterscheiden lassen sollten. | - Geben Sie Bilder vor, die das Netz speichern soll. Denken sie daran, dass die Speicherkapazität ~ 13% der Netzgröße beträgt. Bei 64 Neuronen sollten nicht mehr als 8 Bilder (Muster alias Vektoren) gespeichert werden. Denken sie auch daran, dass sich die Muster möglichst gut unterscheiden lassen sollten. | ||
===== Algorithmus (um Bilder zu lernen) ===== | ===== Algorithmus (um Bilder zu lernen) ===== | ||
+ | Das Hopfield-Netz ermöglicht es, bei gegebenen Lernmustern (Bildern) die Lernmatrix $W$ direkt zu Berechnen. | ||
+ | |||
+ | - Berechnen Sie für jedes zu speichernde Bild$_i$ eine (Einzelbild) Matrix $W_i$, wie im Abschnitt " | ||
+ | - Berechnen Sie die Lernmatrix W, indem sie alle $W_i$ addieren. i entspricht der Anzahl der zu lernenden Bilder. | ||
+ | |||
+ | |||
+ | Damit ist das Lernen abgeschlossen, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Vergewissern Sie sich, dass für alle Elemente $W_{ij}$ der Matrix $W$ gilt: | ||
+ | |||
+ | - $w_{ii} = 0$, d.h. alle Diagonalelemente sind Null. Kein Neuron hat zu sich selbst eine Verbindung. | ||
+ | - $w_{ij} = w_{ji}$, d.h. alle Verbindungen sind symmetrisch. | ||
+ | |||
===== Algorithmus (um Bilder wieder zu erkennen) ===== | ===== Algorithmus (um Bilder wieder zu erkennen) ===== | ||
+ | Damit man überhaupt Bilder wiedererkennen kann, müssen diese zuvor natürlich erst gelernt werden. Nach dem Lernen können wir dem Netzwerk jedoch ein verrauschtes, | ||
+ | |||
+ | Das Hopfield-Netz verwendet die Schwellenwertfunktion als Aktivierungsfunktion: | ||
+ | |||
+ | \begin{equation} | ||
+ | | ||
+ | 0 : & x < 0\end{array}\right. | ||
+ | | ||
+ | |||
+ | |||
+ | |||
+ | Entscheidener Schritt ist die Berechnung des Produktes aus der Matrix W und dem Bildvektor $V_{\text{ALT}}$. Dieser Schritt ist im Abschnitt " | ||
+ | |||
+ | Es gilt $V_{\text{NEU}} = W \cdot V_{\text{ALT}}$ oder etwas mathematischer: | ||
+ | |||
+ | Hier ist n der n-te Iterationsschritt bei der Rekonstruktion des Bildes. Anschließend muss noch die Aktivierungsfunktion auf das Ergebnis angewandt werden: | ||
+ | |||
+ | \[ f(V_{n+1}) \] | ||
+ | Damit erhalten wir die Aktivität der Neuronen (sie feuern mit 1 oder nicht mit -1), und in unserem Fall entspricht das einem Bild. | ||
+ | |||
+ | ** | ||
+ | Der Algorithmus um ein Bild zu rekonstruieren lautet nun:** | ||
+ | - Präsentiere dem Netz ein verrauschtes Bild $V_n$ mit $n = 0$. | ||
+ | - Berechne $V_{n+1} = W \cdot V_n$ | ||
+ | - Berechne $f(V_{n+1})$ und damit das rekonstruierte Bild im Iterationsschritt $n+1$ | ||
+ | - Wiederhole ab Schritt 2, bis $f(V_{n+1}) = f(V_n)$ | ||
aufgabenbeispiel.1705829985.txt.gz · Zuletzt geändert: 2024/01/21 09:39 von torsten.roehl