lernen_in_hopfield-netzen
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
lernen_in_hopfield-netzen [2024/01/21 14:54] – [Wiedererkennen eines gespeicherten Musters] torsten.roehl | lernen_in_hopfield-netzen [2024/01/21 15:01] (aktuell) – [Wiedererkennen eines gespeicherten Musters] torsten.roehl | ||
---|---|---|---|
Zeile 65: | Zeile 65: | ||
- | Angewandte Informatik | + | Wir wollen nun zeigen, das das Netzwerk diese Muster auch wirklich gelernt hat. Dazu präsentieren wir dem Netzwerk das 1. Muster und berechnen die Ausgabe. Da das Netzwerk als autoassoziativer Speicher arbeiten soll, erwarten wir das die Ausgabe des Netzwerks ebenfalls das erste Muster |
- | ist geschlossen | + | |
- | Office Pakete (Textverarbeitung, | + | Um die gesamte Netzwerkausgabe |
- | Office Anwendungen | + | |
- | Datenbanken | + | |
- | Bildverarbeitung | + | |
- | Bildverarbeitung | + | |
- | MSR (Messen Steuern Regeln) und Robotik | + | |
- | Hardware-Überlebensregeln | + | |
- | Lego Roboter (leJOS) | + | |
- | Beispiele der LEJOS Bibliothek | + | |
- | Ein neuronales Netz für den NXT Roboter | + | |
- | Mikrocontroller IO-Warrior | + | |
- | Android Programmierung | + | |
- | Raspberry Pi | + | |
- | Softcomputing/ | + | |
- | IFS - Iterierte Funktionensysteme | + | |
- | Sierpinski-Dreieck | + | |
- | ..Neuronale Netze | + | |
- | Was sind neuronale Netze? | + | |
- | Hopfield-Netze | + | |
- | Grundlagen | + | |
- | Hopfield-Netz in Aktion | + | |
- | Praktische Informatik | + | * Für jedes Neuron muss die gewichtete Summe berechnen werden. |
- | ist geschlossen | + | * Alternativ kann man auch jede Komponente mit der Formel $net_j$ = Σ $w_{ij} \cdot x_i$ berechnen. |
+ | * Für jede Komponente des errechneten Vektors ($V_{\text{neu}}$ ) muss mithilfe der Aktivierungsfunktion der neue Zustand berechnet werden. | ||
+ | * Die letzten beiden Punkte müssen so oft wiederholt werden, bis sich das Netz stabilisiert hat, d.h., bis sich keine Änderung des Ausgabemusters mehr ergibt. | ||
+ | * //In der Praxis sollte man bedenken, dass es vorkommen kann, dass sich das Netz nicht entscheiden kann, und es somit zwischen zwei verschiedenen Mustern oszilliert. | ||
+ | // | ||
+ | === Für das Beispiel erhalten wir === | ||
- | Java | + | - $V_{\text{neu}} |
- | Java Grundlagen | + | - für jede dieser Komponenten ergibt die Aktivierungsfunktion nun {1,-1,1,-1}. Dies ist aber der Vektor (das Muster) v1, womit gezeigt wurde, |
- | Java Applet | + | |
- | Java & Datenbanken | + | |
- | Java & Bildverarbeitung | + | |
- | Hardware & Betriebssysteme | + | |
- | Funktionsprinzip des Computers | + | |
- | Betriebssystemarchitektur | + | |
- | Linux | + | |
- | Linux Essentials | + | |
- | Linux - Grundlagen | + | |
- | Technische Informatik | ||
- | ist geschlossen | ||
- | Theoretische Informatik | ||
- | ist geschlossen | ||
- | Fächerübergeifender Unterricht | ||
- | ist geschlossen | ||
- | Physik | + | {{: |
- | Biologie | + | |
- | Aufgaben & Tests | ||
- | ist geschlossen | ||
- | |||
- | Aufgaben & Tests | ||
- | |||
- | Login Form | ||
- | |||
- | Benutzername | ||
- | |||
- | Passwort | ||
- | |||
- | Angemeldet bleiben | ||
- | |||
- | Passwort vergessen? | ||
- | Benutzername vergessen? | ||
- | |||
- | Lernen in Hopfield-Netzen | ||
- | |||
- | Um verstehen zu können, wie ein Hopfieldnetz Muster lernt, | ||
- | |||
- | |||
- | |||
- | Um diesem Abschnitt verstehen zu können, muss man wissen, wie man eine Matrix mit einem Vektor multipliziert. | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | V1 = {1,-1,1,-1} | ||
- | V2 = {1,1,-1,-1} | ||
- | Diese beiden Muster, repräsentiert durch v1 und v2, soll unser Netz lernen. | ||
- | |||
- | |||
- | Die Gewichtsmatrix | ||
- | |||
- | Bei Hopfieldnetzwerken können die Gewichte ohne ein aufwendiges Lernverfahren direkt aus den Eingabevektoren berechnet werden. Da wir zwei Muster haben, erhalten wir zunächst auch zwei Gewichtsmatrizen (für jedes Muster eine). | ||
- | |||
- | Jedes Muster generiert zunächst eine eigene Matrix. | ||
- | Die Größe der Matrix hängt von der Größe der Eingabevektoren ab. Hat der Eingabevektor n Komponenten, | ||
- | Alle Diagonalelemente wii dieser Matrix sind 0. | ||
- | Die Matrix ist symmetrisch, | ||
- | Die entgültige Matrix W ist die Summe aller einzelnen Matrizen, d.h. in unserem Beispiel | ||
- | |||
- | |||
- | |||
- | |||
- | Die Matrix für Muster aus unserem Beispiel. Da die Vektoren vier Komponenten haben, ist die Matrix vom Typ 4x4. Der erste Index bezeichnet die Zeile und der zweite Index die Spalte, d.h., w23 ist der Eintrag in der 2. Zeile und 3. Spalte. | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | Es bleibt das Problem, die eigentlichen Werte (Gewichte) | ||
- | |||
- | Das Gewicht wij | ||
- | |||
- | Wir berechnen als Übung das Gewicht w23 des ersten Musters. Es gilt: w23 = x2 x3 = (-1) (1) = -1. Nach diesem Prinzip ergeben sich somit zuerst die beiden Matrizen W1 und W2 | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | Hieraus resultiert dann die entgültige Matirx W = W1 + W2 | ||
- | |||
- | |||
- | |||
- | Da wir nun die Gewichtsmatrix kennen, bzw. berechnen können, ist der eigentliche Lernvorgang des Netzwerkes bereits abgeschlossen. | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | Wiedererkennen eines gespeicherten Musters | ||
- | |||
- | |||
- | Wir wollen nun zeigen, das das Netzwerk diese Muster auch wirklich gelernt hat. Dazu präsentieren wir dem Netzwerk das 1. Muster und berechnen die Ausgabe. Da das Netzwerk als autoassoziativer Speicher arbeiten soll, erwarten wir das die Ausgabe des Netzwerks ebenfalls das erste Muster ist. | ||
- | |||
- | |||
- | |||
- | |||
- | Um die gesamte Netzwerkausgabe zu berechnen müssen folgende Schritte gemacht werden: | ||
- | Für jedes Neuron muss die gewichtete Summe berechnen werden. | ||
- | Alternativ kann man auch jede Komponente mit der Formel $net_j = \Sum w_{ij} \cdot x_i$ berechnen. | ||
- | Für jede Komponente des errechneten Vektors ($V_{\text{neu}}$ ) muss mithilfe der Aktivierungsfunktion der neue Zustand berechnet werden. | ||
- | Die letzten beiden Punkte müssen so oft wiederholt werden, bis sich das Netz stabilisiert hat, d.h., bis sich keine Änderung des Ausgabemusters mehr ergibt. In der Praxis sollte man bedenken, dass es vorkommen kann, dass sich das Netz nicht entscheiden kann, und es somit zwischen zwei verschiedenen Mustern oszilliert. | ||
lernen_in_hopfield-netzen.1705848855.txt.gz · Zuletzt geändert: 2024/01/21 14:54 von torsten.roehl