Praktikum Simulationstechnik Rene Schneider, Benjamin Zaiser
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 2 Befehlsübersicht Begriffsdefinition / Neuronale Netze: / /
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 3
Natürliche Neuronale Netze Struktur/Informationsarchitektur von Gehirn und Nervensystem bei Menschen/Tieren Bestehend aus einzelnen Neuronen, verbunden durch Synapsen Künstliche Neuronale Netze Funktionsweise des menschlichen Gehirns besser verstehen konkrete Anwendungsprobleme lösen Abgebildet durch eine Matrix 11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 4
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 5 Neuron (natürlich / künstlich)
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 6
Jedes Neuron ist mit anderen Neuronen verknüpft (abhängig vom Netztyp) Neuronen sind mit Kanten (Synapsen) verbunden. Jede Kante hat ein Gewicht. Je höher Absolut-Betrag, desto stärker der Einfluss. positive Gewichte: erregenden Einfluss negative Gewichte: hemmender Einfluss Null: kein Einfluss 11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 7
Lernen = Modifizieren des Netzes gemäß einer vorgeschriebenen Lernregel Neue Verbindungen erstellen Verbindungen löschen Neue Neuronen erstellen Neuronen löschen Modifikation des Schwellwertes Modifikation der Aktivierungsfunktion Modifikation der Verbindungsstärke / Gewichte 11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 8
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 9 Gewichten wird Zufallswert zugewiesen Eingabe von Trainingsmuster Wenn Ausgabe fehlerbehaftet: Anpassung der Gewichte
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 10
1943 entwickelt von Warren McCulloch & Walter Pitts Bewiesen: Logische Operationen (AND, OR, NOT) mit abbildbar 1958 Frank Rosenblatt entwickelt - Modell bis heute Grundlage künstlich neuronaler Netze 11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 11
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 12 vereinfachtes künstliches neuronales Netz besteht aus einem künstlichen Neuron Arbeitsweise: beeinflussbar durch Gewichte Eingabevektor Ausgabevektor
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 13
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 14 2 j1 w j x j w 2 x 2 w x 1 1 w x 0 0 a P x 1 x ) P( x y) w ( 2 bzw. 2y w1 x w0 x0 y w w 1 2 x w x 0 w 2 0 0 und x 1 0
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 15 w y w a w 1 2 x w0 x w 2 2y w1 x w0 x0 0-2 -2-1.5-1 -0.5 0 0.5 1 1.5 2 Ziel: Geradengleichung ( w ) finden, die o und * Punkte trennt : o Punkte: a > 0 : * Punkte: a 0 2 1.5 1 0.5 0-0.5-1 -1.5
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 16 2 1.5 1 0.5 0-0.5-1 -1.5-2 -2-1.5-1 -0.5 0 0.5 1 1.5 2
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 17 Gewichten wird Zufallswert zugewiesen Eingabe von Trainingsmuster Wenn Ausgabe fehlerbehaftet: Anpassung der Gewichte
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 18 2.5 2 1.5 1 0.5 0-0.5-1 -1.5-2 -2-1.5-1 -0.5 0 0.5 1 1.5 2
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 19 Gewichten wird Zufallswert zugewiesen Eingabe von Trainingsmuster Wenn Ausgabe fehlerbehaftet: Anpassung der Gewichte
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 20 a = w 2 *-1,6+w 1 *1,8+w 0 *-1 = -0,276 2.5 a = w 2 *1,6+w 1 *1,6+w 0 *-1 = 0,510 2 1.5 1 Gewichten wird Zufallswert zugewiesen 0.5 0-0.5-1 -1.5 Eingabe von Trainingsmuster Wenn Ausgabe fehlerbehaftet: Anpassung der Gewichte -2-2 -1.5-1 -0.5 0 0.5 1 1.5 2
Lernregel (Anpassung des Gewichtsvektors) Wenn Punkt o falsch zugeordnet wurde: Wenn Punkt * falsch zugeordnet wurde: 11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 21 * 2 * 1 * 0 0 2 1 0 w w w y x x w w w * 2 * 1 * 0 0 2 1 0 w w w y x x w w w
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 22 2.5 2 1.5 1 1 0.5 0 2 3-0.5-1 -1.5-2 -2-1.5-1 -0.5 0 0.5 1 1.5 2
/ 11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 23
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 24 Erfunden 1982 von John Hopfield sind eine spezielle Unterklasse der neuronalen Netze Sie bilden einen sogenannten Autoassoziativspeicher Normaler Speicher: Zugriff auf Inhalt über Adresse Autoassoziativspeicher: Zugriff auf Inhalt über Bruchstücke des Inhalts selbst
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 25 A C B D
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 26 Bidirektionale Verbindungen Jedes Neuron ist mit jedem Neuron außer A sich selbst verbunden B C Ein Neuron kann zwei Zustände haben: feuert oder 1 feuert nicht oder -1 Die Verbindungen zwischen den Neuronen D (Synapsen) besitzen ein individuelles Gewicht
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 27 Ein Hopfield-Netz muss zur zunächst trainiert werden Dies erfolgt durch Konfiguration der synaptischen Gewichte Die Gewichte werden mittels der Hebbschen Lernregel ermittelt
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 28 w ij a i a j Gewichtsänderung zwischen Neuron i und j Lernrate (konstanter Faktor) Aktivitätslevel von Neuron i Aktivitätslevel von Neuron j Wenn Neuron i und j im gleichen Aktivierungszustand sind, verstärkt sich die Verbindung zwischen ihnen
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 29 Anwendung der Hebbschen Lernregel bei n w ij w ij n w ji n 1 n k1 0 M k i M k j falls i j sonst Gewicht der Verbindung zwischen i und j Anzahl der Muster 1 2 M, M,..., M k Muster mit Aktivierungswerten -1 und 1
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 30 Nach der Ermittlung der synaptischen Gewichte ist das Netz bereit zur Die Eingabe eines (verrauschten oder unvollständigen) Musters zur Erkennung des zugehörigen gelernten Musters erfolgt durch Setzen der Neuronen in den Aktivierungszustand, der dem Muster entspricht
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 31 0 0 0 0 0 0 0 0 0
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 32-1 0 01-1 0 01 01-1 0-1 0-1 0-1 0
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 33-1 0 01-1 0 01 01-1 0-1 0-1 0-1 0
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 34 Die eigentliche besteht aus einem iterativen Verfahren Dabei werden die Neuronen mit folgender Regel aktualisiert: s i 1 1 falls sonst N j1 w ij s j t i Anzahl Neuronen Schwellenwert des Neurons i Zustand des Neurons j
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 35 Asynchrone Änderung Initialisiere Startzustand gemäß zu erkennendem Muster do { wähle zufälliges Neuron i for(neuron j : alle mit i verbundenen Neuronen) { berechne neuen Zustand von i abhängig von j } } while(system nicht in stabilem Endzustand) Synchrone Änderung Initialisiere Startzustand gemäß zu erkennendem Muster do { for(neuron i : alle Neuronen) { for(neuron j : alle mit i verbundenen Neuronen) { berechne neuen Zustand von i abhängig von j } } } while(system nicht in stabilem Endzustand)
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 36 Bei den Iterationen strebt das Hopfield-Netz einen stabilen Zustand an Dieser Zustand entspricht im Idealfall dem erkannten Originalbild Ein Hopfield-Netz erreicht jedoch unabhängig vom Erfolg bei der immer einen stabilen Endzustand
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 37 Die Speicherkapazität eines s ist begrenzt und abhängig von der Anzahl Neuronen L N L N 0,138 Anzahl zu speichernder Muster Anzahl Neuronen
Netzen ist die Performance ein kritischer Faktor Da jedes Neuron mit allen anderen Neuronen vernetzt wird, ergeben sich sowohl für den Lernvorgang als auch den Erkennungsvorgang ( n 2 ) Schritte Beim praktischen Einsatz von Hopfield- 11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 38
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 39 Auch der Speicherverbrauch für das Netz steigt quadratisch mit der Zahl der Neuronen Die Zahl der Neuronen wiederum steigt quadratisch mit der Auflösung der Muster Die Erkennung von Musterbildern mit höheren Auflösungen (>50x50 Pixel) mittels eines einzelnen Netzes wird daher schnell unmöglich
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 40
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 41
MATLAB Befehlsübersicht 11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 42
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 43 Zugriff auf ein Element: x(zeile,spalte) o Punkt zeichnen (rot): plot(x, y, 'or'); Zugriff auf alle Zeilen und Spalte 2: x(:,2) Zufallswerte [-2,, 2] für Vektor mit 20 Zeilen, 2 Spalten: -2+(4*(rand(20,2))) For Schleife: for i=1:5 end Benutzereingabe: v = input(['text']); * Punkt zeichnen (grün): plot(x, y, '*g'); If Bedingung: if x>0 else end Gitter anzeigen, Figur beibehalten: grid on; hold on;
11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 44 Matrix mit 10 Spalten, 10 Zeilen gefüllt mit 1en: ones(10,10) Jedes Element einer Matrix mit dem zugehörigen Element einer zweiten Matrix multiplizieren: M.*S Matrix in Spaltenvektor mit 100 Zeilen umwandeln: reshape(v, 100, 1) Neues Hopfield-Netz erzeugen: net = newhop( [Spaltenvektor_Muster_1, Spaltenvektor_Muster_2, ]); Hopfield-Netz simulieren: sim(net, 1, [], Spaltenvektor_GestörtesMust er); Matrix zeichnen: imagesc(m)
Skript Künstliche Intelligenz ; Prof. Dr. Johannes Maucher; HdM Stuttgart Neuronale Netze: Lässt sich das Denken simulieren? ; Benjamin Polak; Universität Erlangen: Artifical Intelligence Neuronale Netze; Universität für angewandte Kunst Wien Wikipedia: ; (DE, EN) Neuronale Netze: eine Einführung; www.neuronalesnetz.de; Günter Daniel Rey 11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 45
Vielen Dank für die Aufmerksamkeit! 11.11.2008 CSM Master: Praktikum Simulationstechnik, rs034, bz003 46