Allgemeine (Künstliche) Neuronale Netze Rudolf Kruse Neuronale Netze 40
Allgemeine Neuronale Netze Graphentheoretische Grundlagen Ein (gerichteter) Graph ist ein Tupel G = (V, E), bestehend aus einer (endlichen) MengeV von Knoten oder Ecken und einer (endlichen) MengeE V V von Kanten. Wir nennen eine Kantee=(u,v) E gerichtet von Knotenuzu Knotenv. SeiG = (V,E) ein (gerichteter) Graph undu V ein Knoten. Dann werden die Knoten der Menge pred(u) ={v V (v,u) E} die Vorgänger des Knotens u und die Knoten der Menge succ(u) ={v V (u,v) E} die Nachfolger des Knotens u genannt. Rudolf Kruse Neuronale Netze 41
Allgemeine Neuronale Netze Allgemeine Definition eines neuronalen Netzes Ein (künstliches) neuronales Netz ist ein (gerichteter) Graph G = (U, C), dessen Knotenu U Neuronen oder Einheiten und dessen Kanten c C Verbindungen genannt werden. Die Menge U der Knoten wird partitioniert in die MengeU in der Eingabeneuronen, die MengeU out der Ausgabeneuronen, die MengeU hidden der versteckten Neuronen. und Es gilt: U =U in U out U hidden, U in, U out, U hidden (U in U out ) =. Rudolf Kruse Neuronale Netze 42
Allgemeine Neuronale Netze Jede Verbindung (v,u) C besitzt ein Gewichtw uv und jedes Neuron u U besitzt drei (reellwertige) Zustandsvariablen: die Netzwerkeingabe net u, die Aktivierung act u, die Ausgabe out u. und Jedes Eingabeneuronu U in besitzt weiterhin eine vierte reellwertige Zustandsvariable, die externe Eingabe ex u. Weiterhin besitzt jedes Neuron u U drei Funktionen: die Netzwerkeingabefunktion die Aktivierungsfunktion die Ausgabefunktion f net (u) : IR2 pred(u) +κ1(u) IR, f act (u) : IRκ 2(u) IR, und f out (u) : IR IR, die benutzt werden, um die Werte der Zustandsvariablen zu berechnen. Rudolf Kruse Neuronale Netze 43
Allgemeine Neuronale Netze Typen (künstlicher) neuronaler Netze Falls der Graph eines neuronalen Netzes azyklisch ist, wird das Netz Feed-Forward-Netzwerk genannt. Falls der Graph eines neuronalen Netzes Zyklen enthält, (rückwärtige Verbindungen), wird es rekurrentes Netzwerk genannt. Darstellung der Verbindungsgewichte als Matrix u 1 u 2... u r w u1 u 1 w u1 u 2... w u1 u r w u2 u 1 w u2 u 2 w u2 u r.. w ur u 1 w ur u 2... w ur u r u 1 u 2. u r Rudolf Kruse Neuronale Netze 44
Allgemeine Neuronale Netze: Beispiel Ein einfaches rekurrentes neuronales Netz: 2 x 1 u 1 u 3 4 1 3 y x 2 u 2 Gewichtsmatrix dieses Netzes: u 1 u 2 u 3 0 0 4 1 0 0 2 3 0 u 1 u 2 u 3 Rudolf Kruse Neuronale Netze 45
Structure of a Generalized Neuron Ein verallgemeinertes Neuron verarbeitet numerische Werte ex u out v1 = in uv1 u w uv1... f (u) net f (u) net u act f (u) act u out out u out vn = in uvn w uvn σ 1,...,σ l θ 1,...,θ k Rudolf Kruse Neuronale Netze 46
Allgemeine Neuronale Netze: Beispiel x 1 u 1 1 2 u 3 1 y 4 1 3 x 2 1 u 2 f (u) net (w u, in u ) = v pred(u) w uvin uv = v pred(u) w uv out v f (u) act (net u,θ) = 1, falls net u θ, 0, sonst. f (u) out (act u) = act u Rudolf Kruse Neuronale Netze 47
Allgemeine Neuronale Netze: Beispiel Aktualisierung der Neuronenaktivierungen u 1 u 2 u 3 Eingabephase 1 0 0 Arbeitsphase 1 0 0 net u3 = 2 0 0 0 net u1 = 0 0 0 0 net u2 = 0 0 0 0 net u3 = 0 0 0 0 net u1 = 0 Aktualisierungsreihenfolge: u 3,u 1,u 2,u 3,u 1,u 2,u 3,... Eingabephase: Aktivierungen/Ausgaben im Startzustand (erste Zeile) Die Aktivierung des gerade zu aktualisierenden Neurons (fettgedruckt) wird mit Hilfe der Ausgaben der anderen Neuronen und der Gewichte neu berechnet. Ein stabiler Zustand mit eindeutiger Ausgabe wird erreicht. Rudolf Kruse Neuronale Netze 48
Allgemeine Neuronale Netze: Beispiel Aktualisierung der Neuronenaktivierungen Aktualisierungsreihenfolge: u 3,u 2,u 1,u 3,u 2,u 1,u 3,... u 1 u 2 u 3 Eingabephase 1 0 0 Arbeitsphase 1 0 0 net u3 = 2 1 1 0 net u2 = 1 0 1 0 net u1 = 0 0 1 1 net u3 = 3 0 0 1 net u2 = 0 1 0 1 net u1 = 4 1 0 0 net u3 = 2 Es wird kein stabiler Zustand erreicht (Oszillation der Ausgabe). Rudolf Kruse Neuronale Netze 49
Allgemeine Neuronale Netze: Training Definition von Lernaufgaben für ein neuronales Netz Eine feste LernaufgabeL fixed für ein neuronales Netz mit n Eingabeneuronen, d.h.u in ={u 1,...,u n }, m Ausgabeneuronen, d.h.u out ={v 1,...,v m }, and ist eine Menge von Trainingsbeispielenl= ( ı (l),o (l)), bestehend aus einem Eingabevektorı (l) = ( ex (l) u 1,...,ex (l) ) u n einem Ausgabevektoro (l) = ( o (l) v 1,...,o (l) v m ). and Eine feste Lernaufgabe gilt als gelöst, wenn das NN für alle Trainingsbeispiele l L fixed aus den externen Eingaben im Eingabevektorı (l) eines Trainingsmustersldie Ausgaben berechnet, die im entsprechenden Ausgabevektoro (l) enthalten sind. Rudolf Kruse Neuronale Netze 50
Allgemeine Neuronale Netze: Training Lösen einer festen Lernaufgabe: Fehlerbestimmung Bestimme, wie gut ein neuronales Netz eine feste Lernaufgabe löst. Berechne Differenzen zwischen gewünschten und berechneten Ausgaben. Summiere Differenzen nicht einfach, da sich die Fehler gegenseitig aufheben könnten. Quadrieren liefert passende Eigenschaften, um die Anpassungsregeln abzuleiten. e = e (l) = l L fixed e v = v U out l L fixed e (l) v, v U out wobei e (l) v = ( o (l) v out (l) ) 2 v Rudolf Kruse Neuronale Netze 51
Allgemeine Neuronale Netze: Training Definition von Lernaufgaben für ein neuronales Netz Eine freie LernaufgabeL free für ein neuronales Netz mit n Eingabeneuronen, d.h.u in ={u 1,...,u n }, ist eine Menge von Trainingsbeispielenl= ( ı (l)), wobei jedes aus einem Eingabevektorı (l) = ( ex (l) u 1,...,ex (l) u n ) besteht. Eigenschaften: Es gibt keine gewünschte Ausgabe für die Trainingsbeispiele. Ausgaben können von der Trainingsmethode frei gewählt werden. Lösungsidee: Ähnliche Eingaben sollten zu ähnlichen Ausgaben führen. (Clustering der Eingabevektoren) Rudolf Kruse Neuronale Netze 52
Allgemeine Neuronale Netze: Vorverarbeitung Normalisierung der Eingabevektoren Berechne Erwartungswert und Standardabweichung jeder Eingabe: µ k = 1 L l L ex(l) u k and σ k = 1 L (l) ex l L u k µ k 2, Normalisiere die Eingabevektoren auf Erwartungswert 0 und Standardabweichung 1: u k µ k ex (l)(neu) u k = ex(l)(alt) σ k Vermeidet Skalierungsprobleme. Rudolf Kruse Neuronale Netze 53