Neuronale Netze, Fuzzy Control und Genetische Algorithmen Neuronale Netze, Fuzzy Control, Genetische Algorithmen Prof. Jürgen Sauer Lehrbrief Nr. 1: Einführung in die Theorie künstlicher Neuronale Netze Inhaltsverzeichnis 1. Die biologische Inspiration 2. Neuronen Modelle 3. Bestandteile eines Neuronalen Netzes 3.1 Verbindungen 3.2 Neuronen 3.3 Aktivierungsfunktion 3.4 Schichten 3.5 Einführendes Beispiel 4. Trainieren Neuronaler Netze 4.1 Trainings- und Ausbreitungsphase 4.2 Trainings- und Testmenge 4.3 Trainingsüberwachung 4.4 Verschiedene Trainingsarten 5. Lernregel 5.1 Hebb’sche-Regel und Delta-Regel 5.2 Beispiele für Lernregeln 5.3 Offline oder Online Lernen 6. Architekturen 6.1 Assoziative Netze 6.2 Mehrschichtige Netze 6.3 Rekurrente Netze 1 Neuronale Netze, Fuzzy Control und Genetische Algorithmen 1. Die biologische Inspiration In der Biologie bzw. Medizin existieren simple Modelle für die Funktionsweise des Gehirns 1. Diese Modelle wurden zum Vorbild für Neuronale Netze. Dendrite Dendrite Zellkörper Axon Synaptic Gap Dendrite Abb.1 Aufbau einer Nervenzelle Bestandteile eines Neurons - - Zellkörper Ein- oder mehrere Eingänge Genau einen Ausgang (Axon), der sich am Ende verzweigen kann Das Ende eines Axons ist über Synapsen mit Dendriten verbunden. Über das Axon kann ein Neuron elektronisches Aktionspotential zu den Dendriten anderer Neuronen weiterleiten. Die Verbindungsstelle von Axon und Dendrit heißt Synapse Funktionsweise eines Neurons - 1 Signale werden über Axone übertragen ( v ≈ 100m / s ) An den Synapsen werden Signale verstärkend oder hemmend weitergegeben (positive oder negative Gewichte) Im Neuron wird eine gewichtete Summe der Eingangsregeln berechnet Falls die Summe einen Schwellwert übersteigt feuert das Neuron und liefert über das abgehende Axon ein Ausgangssignal Vgl. Skriptum, 1.1.1 2 Neuronale Netze, Fuzzy Control und Genetische Algorithmen 2. Neuronen-Modelle wi1 wi 2 x1 x2 ∑ ….. xn Dendriten - n j =1 x j wij win Synapsen Axon - Die an einem Neuron ankommende Signale werden nach der Effizienz der einzelnen Synapsen gewichtet und aufsummiert n Neuron feuert, falls Potentialschwelle überschritten wird: ∑ j =1 x j wij - Lernen: Verändern der synaptischen Effizienz 3. Bestandteile eines Neuronalen Netzes Ein neuronales Netz 2 - besteht aus einer Menge von Neuronen und einer Netzstruktur ist ein Schaltkreis, der aus künstlichen Neuronen besteht. die Netzstruktur beschreibt, welche Neuronen mit welchem Gewicht verknüpft sind. r die Netzstruktur lässt sich als Gewichtsmatrix angeben: W = ( wij ) -- wij gibt das Gewicht der Verbindung von Neuron j nach Neuron i an -- wij > 0 : Verbindung heißt exzitatorisch, d.h. anregend -- wij < 0 : Verbindung heißt inhibitorisch, d.h. hemmend -- wij = 0 : Ein Gewicht von Null besagt, dass ein Neuron auf ein anderes Neuron derzeit keinen Einfluß ausübt Das Wissen eines Neuronalen Netzes ist in seinen Gewichten gespeichert Lernen kann man bei Neuronalen Netzen als Gewichtsveränderungen zwischen den Einheiten Units) definieren 3 3.1 Verbindungen Sie sind unidirektional und verbinden die Neuronen des Netzes untereinander. Außerdem gibt es Verbindungen, die von außen an das Neuronale Netz herankommen und die Eingabe an das Netz transportieren. Die Verbindungen enden meistens an speziellen Eingabeneuronen. Anlog dazu gibt es Ausgabeneuronen, deren Ausgabeverbindungen das Neuronale Netz verlassen und der Außenwelt die Ausgabe des Netzes liefern. Je nach Art eines speziellen Netzes ist die Art der Vernetzung (welche Neuronen mit welchen verbunden werden) unterschiedlich 2 3 http://www.neuronalesnetz.de/ vgl. Skriptum 1.2 3 Neuronale Netze, Fuzzy Control und Genetische Algorithmen 3.2 Neuronen Ein Neuron 4 hat eine beliebige Anzahl von Verbindungen (Eingabeverbindungen), die bei ihm ankommen. Für jede Eingabe x j ( j = 1,..., n) besitzt das Neuron ein Gewicht wij . Alle r Gewichte eines Neurons werden zu dem Gewichtsvektor wi = ( w1 , w2 ,..., wn ) T zusammengefasst. Der Gewichtsvektor wird üblicherweise im lokalen Speicher abgelegt. wi1 wi 2 x1 x2 ∑ ….. xn n j =1 x j wij f oi win Netzeingabe (Netto-Input der Unit i): r v n net i = ∑ j =1 x j wij = wi 0 + x1 wi1 + x 2 wi 2 + ... + x n win = x T ⋅ wi r wi = ( wi 0, wi1 , wi 2 ,..., win ) x = (1, x1 , x 2 ,..., x n ) 3.3 Aktivierungsfunktion Jedes Neuron besitzt eine Transferfunktion (oft auch Aktivierungsfunktion 5) genannt. Als Argumente dienen der Transferfunktion Werte aus den Eingabeverbindungen und dem lokalen Speicher des Neurons. Aktivierungsfunktion: oi = f i (net i ) Typische Aktivierungsfunktionen ⎧+ 1, falls net i > θ - Binäre Schwellwertfunktion: oi = σ (net i ) = ⎨ ⎩ 0, falls net i ≤ θ ⎧+ 1, falls net i > θ - Bipolare Schwellwertfunktion: oi = sign(net i ) = ⎨ ⎩− 1, falls net i ≤ θ - Binäre sigmoide Funktion: oi = f (net i ) = 1 1 + exp(−λ ⋅ net i ) - Bipolare sigmoide Funktion: oi = f (net i ) = 2 −1 1 + exp(−λ ⋅ net i ) 4 Typ: McCulloch&Pitts Der Begriff “künstliches Neurons wurde erstmals vom Neurophysiologen W.S. McCulloch und dem 18jährigen Mathematiker W. Pitts (1943) veröffentlicht. Die Jahrzente später erfundenen, zahlreichen Neuronenmodelle stützen sich im wesentlichen auf dieses Grundmodell 5 vgl. Skriptum 1.2.2 4 Neuronale Netze, Fuzzy Control und Genetische Algorithmen - Identitätsfunktion: oi = net i 3.4 Schichten Beliebige disjunkte Mengen von Neuronen können zu einer Schicht zusammengefasst werden. Alle Neuronen einer Schicht sollen die gleiche Transferfunktion besitzen und werden gleichzeitig aktiviert. Die Neuronen, die Eingabeverbindungen aus der Außenwelt empfangen, werden oft in der Eingabeschicht zusammengefasst. Entsprechend bilden die Neuronen, die Ausgaben an die Außenwelt schicken, die Ausgabeschicht. Die übrigen Schichten heißen verborgen, da sie keine Verbindung nach außen besitzen. Eingabeschicht mit Input Units Verborgene Schicht mit Hidden Units Ausgabeschicht mit Output-Units Notation: 4 – 3 – 2 Netz (4 Neuronen in der Eingabeschicht, 3 Neuronen in der verborgenen Schicht, 2 Neuronen in der Ausgabeschicht Abb.: Vorwärtsgerichtetes azyklisches Netz Die einfachsten neuronalen Netze bestehen nur aus einer Eingabe- und einer Ausgabeschicht.. Derartige Neuronale Netze kann man durch eine Gewichtsmatrix darstellen, z.B. 1 2 3 r ⎛w W = ⎜⎜ 11 ⎝ w21 1 w12 w22 w13 ⎞ ⎟ w23 ⎟⎠ 2 Der jeweilige erste Index des Gewichts bezieht sich auf die Output-Unit, der zweite Index auf die entsprechende Input-Unit 5 Neuronale Netze, Fuzzy Control und Genetische Algorithmen 3.5 Ein einführendes Beispiel Beschreibung der Aufgabe: Ein Student der Fachhochschule Regensburg steht vor der folgenden Situation: Wieder einmal drohen die lästigen Semesterabschlußprüfungen. Das hebt nicht gerade sein augenblickliches Stimmungstief, denn der Vorlesungsbesuch war mäßig, und die Übungen und Ausarbeitungen zum Vorlesungsstoff hat er nicht richtig verstanden. Es ist zu befürchten, daß er die Prüfung nicht schafft. Zum Stimmungstief kommt hinzu, daß der Vater des Studenten für eine gute Prüfung die Finanzierung einer Urlaubsreise zu den Malediven (Schwimmen, Tauchen) in Aussicht gestellt hat, die er angesichts seiner Lage abschreiben kann. Ein einfaches Modell eines neuronalen Netzes soll die möglichen Zusammenhänge zwischen dem Prüfungsvorbereitungen und den Handlungen bzw. Stimmungslagen einer Person beschreiben. Modellbeschreibung: Das Modell besteht aus 2 Schichten, der Eingabe- und Ausgabeschicht. Nur die Elemente der Eingabeschicht nehmen Informationen auf, nur die Elemente der Ausgabeschicht geben Informationen vom Modell an die Außenwelt weiter. Jedes Element der Eingabeschicht ist mit jedem Element der Ausgabeschicht verbunden. Ein einzelnes Element der Eingabe- und Ausgabeschicht heißt Neuron bzw. Prozessorelement bzw. Verarbeitungseinheit (Unit). regelmäßiger Vorlesungsbesuch Erfolgreiche Semester Übungsteilnahme Abschlußprüfung Eingabeschicht Ausgabeschicht Schwimmen Tauchen Stimmungshoch negative Prüfung Abb. Einfaches Modell eines NN Die Informationsverarbeitung des Modells erfolgt schichtenweise von oben nach unten. Zur Vereinfachung wird festgelegt: - aktiv entspricht dem Wert +1 - inaktiv entspricht dem Wert -1 Ein Testfall mit Kodierung der Eingabe kann für das vorliegende Beispiel somit folgendermaßen dargestellt werden: 6 Neuronale Netze, Fuzzy Control und Genetische Algorithmen Erfolgreiche Semester Übungsteilnahme Abschlußprüfung -1 +1 regelmäßiger Vorlesungsbesuch -1 -1 -1 +1 Eingabeschicht -1 -1 +1 Ausgabeschicht -1 +1 -1 Schwimmen Tauchen Stimmungshoch negative Prüfung Abb. Verarbeitungsmodell Die Neuronen im vorliegenden Modell haben mindestens einen Eingang, der Informationen aufnimmt und einen Ausgang, der das Ergebnis der vorliegenden Verarbeitung der Eingangswerte beschreibt. Er kann den anderen Neuronen in darüberliegenden Schichten als Eingangswert dienen. Trainingsphase 1. Schritt: Einfaches Aufsummieren der Eingangswerte kein regelmäßiger Vorlesungsbesuch -1 keine erfolgreiche Semester Übungsteilnahme Abschlußprüfung Eingabeschicht -1 -1 +1 Eingaben (+) (+) (+) Summe -1 -1 +1 -1 +1 -1 -1 (+) (+) -1 -1 +1 -1 -1 (+) -1 Ergebnis +1 Eingaben Summe Ergebnis Ausgabeschicht kein Schwimmen Tauchen kein Stimmungshoch keine negative Prüfung Abb.: Einfaches Aufsummieren der Eingaben 7 Neuronale Netze, Fuzzy Control und Genetische Algorithmen Das einfache Aufsummieren führt nicht zum gewünschten Ergebnis. 2. Schritt - Verschieden starke Gewichtung der Eingänge (unterschiedliche Bewertung der Verbindungen) - Aufsummieren - Schwellwertabgleich (zur Bestimmung definierten Ausgangszustände) Ein Modellneuron umfaßt somit: Eingang/Eingang/... Gewicht/Gewicht/... Verarbeitung Ergebnis Ergebnis > Schwellwert Eine mögliche Lösung ist dann: Testfall: kein regelmäßiger Vorlesungsbesuch keine erfolgreiche Übungsteilnahme -1 Eingaben Gewichte Semester Abschlußprüfung -1 -1 -1 1 0 Summe -1 Schwellenwert >0? 1 0 -1 0 -1 -1 1 +1 1 0 -1 0 -1 0 -1 1 >0? >0? -1 1 1 1 Ergebnis (nach Decodierung) kein Schwimmen, Tauchen kein Stimmungshoch negative Prüfung Abb.: Verarbeitung mit gewichteten Verbindungen Das Modell liefert aber nicht nur Empfehlungen für die vor der Tür stehenden Abschlußprüfungen, sondern auch Reaktionen auf "regelmäßigen Vorlesungsbesuch" (Schwimmen, Tauchen) bzw. auf "erfolgreiche Bearbeitung der Übungen" ("Stimmungshoch"). Das Modell arbeitet aber nicht vollständig korrekt. So müßte bei "regelmäßigem Vorlesungsbesuch" bzw. 8 Neuronale Netze, Fuzzy Control und Genetische Algorithmen "erfolgreicher Bearbeitung der Übungen" zwar "Schwimmen, "Stimmungshoch" aktiv sein, aber "schlechte Prüfung" inaktiv werden. Tauchen" bzw. 3. Schritt: Modifikation der Verbindungsstärken (Gewichte) über eine Lernregel Neuronale Netze können lernen. Das Lernen geschieht durch Modifikation der Verbindungsstärken nach einer vorgegebenen Lernregel: Die Modifikation der Verbindungen soll hier auf einer Hypothese beruhen, die besagt, daß die Verbindungen zwischen zwei Neuronen immer verstärkt wird, wenn beide Neuronen gleichzeitig aktiv sind (Hebbsche Hypothese) 6. Δwij = ε ⋅ ai ⋅ a j ai : Aktivität {-1,1} des Ausgabeneurons a j : Aktivität {-1,1} des Eingabeneurons ε : Lernrate Ausgangslage: Das Trainingsbeispiel umfaßt die Eingabe "regelmäßigen Vorlesungsbesuch", "keine erfolgreiche Übungsbearbeitung", "keine Semesterabschlußprüfung" (d.h. aktiv inaktiv - inaktiv) und die Ausgabe "Schwimmen, Tauchen", "Stimmungshoch", "keine schlechte Prüfung" (d.h. aktiv - aktiv - inaktiv). Testfall: regelmäßiger Vorlesungsbesuch keine erfolgreiche Übungsteilnahme 1 Eingaben Gewichte -1 1 -1 1 0 Summe -1 0 1 0 1 Schwellenwert Semester Abschlußprüfung >0? 1 -1 1 -1 -1 0 1 0 -1 0 -1 -1 >0? >0? -1 -1 1 -1 Ergebnis (nach Decodierung) Schwimmen, Tauchen kein Stimmungshoch Abb.: Verarbeitung mit gewichteten Verbindungen 6 Vgl. Skriptum 2.3.2.1 9 keine negative Prüfung Neuronale Netze, Fuzzy Control und Genetische Algorithmen Anwendung der Hebbschen-Hypothese mit ε = 1 1 Eingaben Gewichte -1 1 -1 -1 2 -1 -1 Summe 4 Schwellenwert >0? 1 1 -1 -1 2 -1 -1 1 1 -1 -1 1 -4 -4 >0? >0? -1 -1 2 -1 Ergebnis (nach Decodierung) Schwimmen, Tauchen kein Stimmungshoch keine negative Prüfun Abb.: Trainingsbeispiel nach Anwendung der Hebbschen Regel Nach diesem Lernschritt mit Lernrate 1 haben Neuronen der Ausgabeschicht noch immer nicht die gewünschte Aktivität (anstattt „kein Stimmungshoch“ ist „Stimmungshoch“ gewünscht). Die Anwendung der Hebbschen Regel im Sinne unüberwachten Lernens führt nicht zu dem gewünschten Ergebnis. Es gibt bei der Hebb’schen Lernregel generell ein Problem: Bei anhaltenden Aktivitäten beider Zellen i und j wachsen die Gewichte ins Unendliche; die Zellen kennen kein „Vergessen“. Somit ist die Hebb’sche Lernregel nicht realistisch. Durch entsprechende Modifikationen läßt sich dieser Nachteil jedoch beseitigen. 4. Schritt: Modifikation der Gewichte mit Hilfe der sog. Delta-Regel 7 Δwij = ε ⋅ δ i ⋅ a j δ i = t i − ai (Fehler: gewünschter Zustand – tatsächlicher Zustand) wijneu = wijalt + Δwij Da hier ein neues Lernverfahren zur Anwendung kommt, muß das Training von Anfang an wiederholt werden. 7 Vgl. Skriptum 2.3.2.3 10 Neuronale Netze, Fuzzy Control und Genetische Algorithmen 1. Testfall: kein regelmäßiger Vorlesungsbesuch keine Semester erfolgreiche Abschlußprüfung Übungsteilnahme -1 Eingaben Gewichte -1 -1 -1 0 0 Summe 1 0 -1 0 0 Schwellenwert -1 0 1 1 0 -1 0 0 >0? 1 0 0 >0? -1 -1 0 >0? -1 -1 Ergebnis Abb.: Verarbeitung mit gewichteten Verbindungen Der Fehler führt zu einer Modifikation der Gewichte: ti -1 ai -1 δi 0 -1 1 -1 -1 0 2 Mit ε = 0.25 ergibt sich aj -1 -1 1 -1 -1 wij 0 0 0 0 0 1 0 -1 -1 -0.5 -0.5 0.5 Test: Summe Schwellenwert 0 >0 -1 0 >0 -1 11 1 1.5 >0 1 Neuronale Netze, Fuzzy Control und Genetische Algorithmen 2. Testfall: regelmäßiger Vorlesungsbesuch keine keine Semester erfolgreiche Abschlußprüfung Übungsteilnahme 1 Eingaben Gewichte -1 1 -1 0 0 Summe -1 0 1 0 0 Schwellenwert -1 0 -1 -1 0 1 -1 -1 -0.5 -0.5 0.5 0 >0? -0.5 >0? -1 >0? -1 -1 Ergebnis Abb.: Verarbeitung mit gewichteten Verbindungen Der Fehler führt zu einer Modifikation der Gewichte: ti 1 1 -1 ai -1 -1 -1 δi 2 2 0 Mit ε = 0.25 ergibt sich aj wij 1 -1 -1 0.5 -0.5 -0.5 1 -1 -1 0.5 -0.5 -0.5 1 -1 -1 -0.5 -0.5 0.5 Test: Summe Schwellenwert 1.5 >0 1 1.5 >0 1 -0.5 >0 -1 Der Fehler wird nicht sofort weiter verfolgt. Es werden alle vorhandenen Muster erst einmal bearbeitet (Trainingszyklus, Trainingsepochen). 12 Neuronale Netze, Fuzzy Control und Genetische Algorithmen ⎛−1 −1 1 ⎞ ⎟⎟ mit dem Ziel (gewünschtes Bisher wurden folgende Muster bearbeitet: P = ⎜⎜ ⎝ 1 − 1 − 1⎠ ⎛−1 −1 1 ⎞ ⎟⎟ . Der Fehler nach einer Epoche wird bestimmt durch Ergebnis) T = ⎜⎜ ⎝ 1 1 − 1⎠ ∑∑ (t p ip − ai p ) 2 und führt hier auf den Wert 12. Dieser Fehler muß auf eine vorgegebene i Schranke reduziert werden können, d.h.: Das Training muß solange wiederholt werden, bis die vorgegebene Fehlergröße unterschritten ist. Im vorliegenden Fall wird das aber nur dann gelingen, wenn die Eingabevektoren linear unabhängig 8 sind. 4. Trainieren Neuraler Netzwerke Ein NN macht sich über das Training mit den Problemen vertraut. Nach ausreichendem Training können auch bis dahin unbekannte Probleme gelöst werden (Generalisierung). 4.1 Trainingsphase und Ausbreitungsphase Bei Neuronalen Netzen unterscheidet man zwischen - - Trainingsphase: In dieser Phase lernt das Neuronale Netz das vorgegebene Lernmaterial. Dementsprechend werden in der Regel die Gewichte zwischen den einzelnen Neuronen modifiziert. Lernregeln geben dabei die Art und Weise an, wie das Neuronale Netz diese Veränderungen vornimmt. Man unterscheidet grundsätzlich zwischen supervised learning: Die korrekte Ausgabe wird vorgegeben und daran werden die Gewichte optimiert unsupervised learning: Es wird kein Ziel (Ausgabe) vorgegeben. Das Netz versucht ohne Beeinflussung von außen die präsentierten Daten selbstständig in Ähnlichkeitsklassen aufzuteilen. reinforcement learning: Dem Netz wird lediglich mitgeteilt, ob seine Ausgabe korrekt ider inkorrekt war. Das Netz erfährt nicht den exakten Wert des Unterschieds. Diese Art des Lernens hat ihr Vorbild in der Erziehung eines Tiers, das ebenfalls nur durch Lob und Tadel erzogen werden kann. Ausbreitungsphase: In der Ausbreitungsphase werden hingegen keine Gewichte verändert. Statt dessen wird hier auf Grundlage der bereits modifizierten Gewichte untersucht, ob das Netz etwas gelernt hat. 4.2 Trainings- und Testmenge Die Trainingsmenge bilden repräsentative Ein-/Ausgabe-Daten. Gewöhnlich operiert ein Neuronales Netz nach dem Training besser auf Eingaben, die auch schon während des Trainings gemacht wurden. Daher muß die Leistung des Neuronalen Netzes nach dem Training mit ebenso repräsentativen Testbeispielen überprüft werden. Trainings- und Testmenge müssen unbedingt verschieden sein. 8 Vgl. Skriptum 1.2.4 13 Neuronale Netze, Fuzzy Control und Genetische Algorithmen Die Elemente der Trainingsmenge müssen dem Neuronalen Netz im allg. mehrere Male repräsentiert werden, da die Anpassung des Netzes nur langsam erfolgt. Eine einmalige, vollständige Repräsentation der Trainingsmenge heißt Lernzyklus. 4.3 Trainingsüberwachung Bei allen Trainingsmethoden muß bestimmt werden, wann das Training weit genug fortgeschritten ist, um es abzubrechen. Im wesentlichen gibt es drei Mechnismen: - - - Mit Hilfe einer Fehlerfunktion wird die Abweichung der Trainingsausgaben von den konkreten Ausgaben gemessen. Je nach Problemstellung kann dafür ein anderen Fehlermaß (z.B. kleinster quadratischer Fehler, absoluter Fehler, Durchschnittsfehler) verwendet werden. Ist der Fehler befriedigend klein, kann das Training abgebrochen werden. Das Neuronale Netz kann eine Energiefunktion besitzen, die mißt, wie oft, wie stark etc. das neuronale Netz sich verändert hat. Die Funktion ist so gewählt, daß sie mit zunehmender Veränderung des Netzes immer kleinere Werte liefert. Ist der Wert der Energiefunktion unter eine gegebene Schwelle gefallen, wird das Training beendet. In der Lernregel des Neuronalen Netzes gibt es variable Faktoren, die steuern, wie stark sich das Netz verändert. Abhängig von Daten wie Fehlermessungen, Dauer der Lernphase etc. werden diese Faktoren immer näher bei 0 gewählt, bis sich das Neuronale Netz schließlich kaum noch verändern kann. Dann ist das Ende der Lernphase erreicht. 4.4 Verschiedene Trainingsarten r r r r r r Lernaufgabe: Menge von Eingabemustern L = {( p1 , t1 ), ( p 2 , t 2 ),...( p n , t n )} r p k ist ein Eingabevektor (Eingabemuster, input pattern)und dient als Eingabe im r Netz t k ist ein Ausgabevektor (target) und legt die gewünschte Ausgabe fest r r Lernziel: jedes ( p, t ) aus L soll vom Netz mit möglichst kleinem Fehler berechnet werden. Häufig verwendetes Fehlermaß: Fehler bzgl. eines Ein-/Ausgabepaares aus L 2 E p ,t = ∑ ( y k − t k ) k r y : Ausgabe des Netzes bei Eingabe p Gesamtfehler (Sum Squared Error, sse): E = ∑ E p ,t p ,t∈L Vorgehen: r v r - Wähle ein Ein-/Ausgabepaar ( p, t ) aus L und gebe p im Netz ein r - Berechne Ausgabe y des Netzes r r - Vergleiche y mit gewünscheter Ausgabe t r - Ändere Gewichtsmatrix W möglichst so, daß E p ,t minimiert wird. - Falls eine Epoche (vollständiger Durchlauf durch die Ein-, Ausgabepaare) abgelaufen, prüfe, ob Gesamtfehler E gewünschten Grenzwert erreicht hat. Falls nicht, starte eine neue Epoche (Musterlernen, lerning by pattern, onlinelearning) r Variante: Ändere Gewichtsmatrix W epochenweise. (Epochenlernen, learning by epoch, offline-learning) 14 Neuronale Netze, Fuzzy Control und Genetische Algorithmen Unüberwachtes Lernen r r r Lernaufgabe: Menge von Eingabemustern L = ( p1 , p 2 ,..., p n ) r p k ist ein Eingabevektor und dient als Eingabe im Netz Lernziel: Finde Klassifizierung, ähnliche Eingaben sollen gleich klassifiziert werden. Vorgehen: r r - Wähle ein Eingabemuster p k aus L und gebe p k ins Netz. r - Berechne Ausgabe y des Netzes r - Ändere Gewichtsmatrix W gemäß einer Lernregel - Falls am Ende einer Epoche ein Endekriterium erfüllt ist, breche ab. - Sonst starte eine neue Epoche Bewertetes Lernen r r Das Netz erhält zu den Trainingseingaben x k nicht die korrekten Ausgaben y k . Stattdessen wird die Leistung des Neuronalen Netzes von Zeit zu Zeit bewertet (jeweils für den Zeitraum seit der letzten Wertung). Daraufhin kann es versuchen, sich zur Zufriedenheit des Bewertenden zu ändern. Selbstordnung (self organization) Hier werden dem Neuronalen Netz nur repräsentative Eingaben geliefert, in dem es bestimmte Gemeinsamkeiten „erkennen“ soll. Dabei soll es bestimmte Musterkategorien bilden,in die sich Eingaben einordnen lassen. Der Vorgang der Kategoriebildung wird auch Clustering genannt. 5. Lernregeln Während des Trainings sorgt die Anwendung der Lernregel eines Neuronalen Netzes dafür, daß es sich den Trainingsdaten anpaßt bzw. Kategorien formt. Die Lernregel ist ein Algorithmus, der das NN verändert und ihm so beibringt, für eine vorgegebene Eingabe eine gewünschte Ausgabe zu produzieren. 5.1 Hebb’sche Regel und Delta-Regel 1. Hebb’sche Regel Im menschl. Gehirn erfolgt Lernen durch Ändern der Synapsenstärken. Der Psychologe Donald Hebb (1949) stellte die Hypothese auf, daß sich die Gewichtung der Synapse verstärkt, wenn Neuronen vor oder nach der Synapse gleichzeitig aktiv sind. Die Hebb’sche Regel besagt: Wenn Neuron „i“ und Neuron „j“ zur gleichen Zeit stark aktiviert sind, dann erhöhe das Gewicht wij , das diese beiden Neuronen verbindet. Δwij = ε ⋅ ai ⋅ a j 15 Neuronale Netze, Fuzzy Control und Genetische Algorithmen Die Lernrate " ε ≥ 0 " bemißt die Größe des Lernschritts. Wird von Gewichten mit dem Wert 0 ausgegangen und baut sich das Netzwerk schrittweise auf, dann ist das Gewicht am Ende einer Reihe von Lernschritten (indiziert durch l): wij = ε ⋅ ∑ ail ⋅ a jl j Motivation: Beobachtungen zur Ableitung der Hebb’schen Regeln erfolgten an „echten neuronalen Netzen“ Nachteil: Gewichte können nur größer werden 9, nur geringe Flexibilität 2. Delta-Regel 10 Δwij = ε ⋅ δ i ⋅ a j δ i = ti − ai Aus der Differenz von gewünschtem und erzieltem Ausgabeverhalten berechnet man einen Fehlerkorrekturwert, das sog. Delta und ändert die Gewichte in Abhängigkeit von diesem Fehlerkorrekturwert. - Gewichtsänderung ist proportional zum Fehler an den Ausgabe-Neuronen - In dieser Form nur für Feedforward-Netzwerke mit Ein- und Ausgabeschicht sinnvoll - Eingeschränkte Mächtigkeit: Nur eine Teilmenge der möglichen Eingabe, Ausgabe – Funktionen kann gelernt werden. Es gibt eine Verallgemeinerung der Delta-Regel für Netzwerke mit mehr als 2 Schichten (Eingabe, Ausgabe). 5.2 Beispiele für Anwendungen der Lernregeln 1. Bsp.: Trainieren mit der Hebbschen Regel 11 1. Ein positiver Fall 1 0 2 Dieses NN soll aus Eingabemustern nach folgender Zusammenstellung Ausgabemuster erzeugen. Eingabe 0 1 Eingabe 1 1 Ausgabe 2 1 9 vgl. Skriptum, 2.3.2.2 Widrow&Hoff-Regel 11 Skiptum, 2.3.2.1 10 16 Neuronale Netze, Fuzzy Control und Genetische Algorithmen 1 -1 -1 -1 1 -1 1 -1 -1 Nach der Hebbschen Regel erhält w20 den Wert von ε (Annahme: ε = 1. 0 ) zugeordnet, w21 dagegen wird reduziert auf den Wert 0. Eingabemuster 0 korreliert zum Ausgabemuster. Auf diese Weise können über die Hebbsche Hypothese Assoziationen erlernt werden. 2. Ein negativer Fall 0 1 2 3 4 Das NN soll aus Eingabemustern nach folgender Zusammenstellung ein Ausgabemuster erzeugen: Eingabe 0 1 1 1 1 1 -1 1 1 -1 2 1 1 1 -1 3 -1 1 -1 1 Ausgabe 4 1 1 -1 -1 3 der möglichen Verbindungen zwischen Eingabe- und Ausgabeschicht führen auf den Wert 0 (keine Korrelation zwischen den Aktivitäten). Nur Einheit 2 hat zur Ausgabeeinheit eine positive Korrelation. Eine Lösung der vorliegenden Aufgabe kann durch die folgende Zuordnung von Werten zu den Verbindungen erreicht werden: 0 1 -1 2 2 -1 3 1 4 17 Neuronale Netze, Fuzzy Control und Genetische Algorithmen 2.Bsp.: Lernen nach der Delta-Regel 12 0 1 2 3 4 Das NN soll aus Eingabemustern nach folgender Zusammenstellung ein Eingabemuster erzeugen. Muster 0 1 2 3 Eingabe 0 1 2 3 1 -1 1 -1 1 1 1 1 1 1 1 -1 1 -1 -1 1 Ausgabe 4 1 1 -1 -1 Nach der Delta-Regel sind die Gewichte der Verbindungen zwischen den Einheiten der Einund Ausgabeschicht zuzuordnen. Die Gewichte sind mit 0 initialisiert, die Lernrate ε hat den Wert 0.25. Lösung: Zuerst wird Muster 0 betrachtet. Das führt auf den Ausgabewert 0. Zum vorgegebenem Ziel ergibt sich die Differenz 1, d.h. Änderungen der Gewichte sind proportional zu den Aktivierungen der Eingabeeinheiten. Das führt zur folgenden Tabellenzeile für Muster 0. Muster 0 Eingabe Ziel 1 -1 1 -1 1 Ausgabe 0.0 Fehler Δwij wij 1.0 0.25 -0.25 0.25 -0.25 0.25 -0.25 0.25 -0.25 Fortsetzung der Lösungsangaben: Skript, 2.3.2.3 12 vgl. Skriptum, 2.3.2.4 18 Neuronale Netze, Fuzzy Control und Genetische Algorithmen 5.3 Offline oder Online-Lernen Lernen kann offline oder online erfolgen. offline: eine Menge von Trainingsmustern wird präsentiert, danach werden Gewichte verändert, der Gesamtfehler wird mit Hilfe einer Norm errechnet bzw. einfach aufkumuliert. Offline-Trainingsverfahren werden auch Batch-Trainingsverfahren genannt, da ein Stapel Ereignisse auf einmal korrigiert wird. Einen sochen Trainingsabschnitt von einem ganzen Stapel Trainingsbeispiele samt zugehöriger Veränderung der Gewichtswerte nennt man Epoche. online: Nach jedem präsentierten Beispiel werden Gewichte verändert. 6. Architekturen Mit Architektur ist der Aufbau Neuronaler Netze gemeint. Dieser Begriff beinhaltet Informationen über Zahl und Art der Schichten, über Vernetzung und über die verwendete Lernregel. Generell ist der Aufbau Neuronaler Netze bestimmt durch - eine Menge von Neuronen und eine Netzwerkstruktur die Netzwerkstruktur beschreibt, welche Neuronen mit welchem Gewicht miteinander verknüpft sind r die Netzwerkstruktur läßt sich als Gewichtsmatrix W = (wij ) angeben. - wij gibt die Verbindung von einem Neuron der Schicht „j“ zu einem Neuron der - Schicht „i“ an 6.1 Assoziative Netze Als assoziative Netze werden im allg. Neuronale Netze bezeichnet, die aus einer Eingabeschicht mit Verteilerneuronen und einer Ausgabeschicht bestehen. Nur die Neuronen der Ausgabeschicht besitzen Gewichtsvektoren und das Neuronale Netz hat demzufolge nur eine „Arbeitsschicht“. r r Typische Aufgabe: Lernen von „l“ Assoziationen der Form ( x k , y k ) . Die „l“ Paare werden dem Neuronalen Netz während des Trainings präsentiert. Nach dem Training soll das Netz r r dann zur Eingabe x k die Ausgabe y k liefern (für k = 1, … ,l), für andere Eingaben wird die r r r Ausgabe durch Interpolation ermittelt. Die Punkte ( x k , y k ) mit gleichen y k bilden zusammen r r eine Klasse. Soll ein assoziatives Netz alle l Assoziationen ( x k , y k ) perfekt lernen, müssen die Klassen linear separabel sein. Wichtigstes Anwendungsgebiet: Pattern Assoziator. Er kann Muster erkennen, die er zuvor gelernt hat. Die Trainingsphase kann entweder mit der Hebb-Regel oder mit der DeltaRegel 13 vorgenommen werden. Der Pattern Assoziator verfügt über eine Reihe wünschenswerter Eigenschaften: - 13 Generalisierung: Ähnliche Muster werden zu selben Mustergruppe kategorisiert. Toleranz gegenüber internen Schäden: Hier ist gemeint, dass trotz innerer Schäden des Neuronalen Netzes (z.B. durch das Absterben einzelner Neuronen) dieses oftmals dennoch die richtige Ausgabe produziert. vgl. Skriptum 2.3.2 19 Neuronale Netze, Fuzzy Control und Genetische Algorithmen - Ausgabe der zentralen Tendenz bzw. des Prototypen der Kategorie: Bei mehreren gelernten Inputmustern bildet der Pattern Assoziator einen Prototypen der gelernten Muster aus. 6.2 Mehrschichtige Netze Mit „mehrschichtig“ ist hier gemeint, daß das Neuronale Netz mindestens eine verborgene Schicht hat. Durch die Mehrschichtigkeit werden die beiden großen Probleme der assoziativen Netze überwunden: 1. Mehrschichtige Netze besitzen die Fähigkeit zur Abstraktion, so dass auch nicht linear separable Klassen gelernt werden können. 2. Die Dimension der Eingaben beschränkt nicht die Zahl der exakt lernbaren Ein/Ausgabepaare Der wichtigste Vertreter der mehrstufigen Netze ist das Backpropagation-Netz 14 mit zahlreichen Varianten (z.B. Quickprop). Mehrschichtige Netze besitzen keine Zyklen (azyklisch) und sind vorwärtsgerichtet (feedforward). Eingabeschicht (input layer) Verdeckte Schichten (hidden layers) Ausgabeschicht (output layer) Abb.: Vorwärtsgerichtetes 3-2-3-2-Netz Schichtenarchitektur: - Nur Verbindungen zwischen aufeinander folgenden Schichten - Schichten müssen nicht vollständig miteinander verknüpft sein 14 vgl. Skriptum 2.4 20 Neuronale Netze, Fuzzy Control und Genetische Algorithmen Arbeitsweise mehrschichtiger Netze, z.B. 2-2-2-Netz 1 3 5 ⎛x ⎞ r x T = ⎜⎜ 1 ⎟⎟ ⎝ x2 ⎠ ⎛y ⎞ v y T = ⎜⎜ 1 ⎟⎟ ⎝ y2 ⎠ 2 Gewichte: Aktivierungsfunktion: 4 v ⎛w W1 = ⎜⎜ 31 ⎝ w41 6 w32 ⎞ v ⎛ w53 ⎟ W2 = ⎜⎜ w42 ⎟⎠ ⎝ w63 w54 ⎞ ⎟ w64 ⎟⎠ f3 = f4 = f5 = f6 = f Berechnung der Netzausgabe: ⎛ o3 ⎞ ⎜⎜ ⎟⎟ = ⎝ o4 ⎠ ⎛⎛ w f ⎜⎜ ⎜⎜ 31 ⎝ ⎝ w41 r r w32 ⎞⎛ x1 ⎞ ⎞ ⎟⎟⎜⎜ ⎟⎟ ⎟⎟ = f W1 ⋅ x T w42 ⎠⎝ x 2 ⎠ ⎠ ⎛⎛ w ⎛o ⎞ r y T = ⎜⎜ 5 ⎟⎟ = f ⎜⎜ ⎜⎜ 53 ⎝o 6 ⎠ ⎝ ⎝ w 63 ( w 54 w 64 ⎞⎛ o 3 ⎟⎟⎜⎜ ⎠⎝ o 4 ) r r r ⎞⎞ ⎟⎟ ⎟⎟ = f W 2 f W 1 x T ⎠⎠ ( ( )) 6.3 Rekurrente Netze Sie sind dadurch gekennzeichnet 15, dass Rückkopplungen von Neuronen einer Schicht zu anderen Neuronen derselben oder einer vorangegangenen Schicht existieren. Damit sollen zeitlich kodierte Informationen in den Daten entdeckt werden. Rekurrente Netze lassen sich unterteilen in Neuronale Netze mit - 15 direkten Rückkopplungen (direct feedback): Hier existieren vom Output zum Input derselben Unit. Der Aktivitätslevel der Einheit wird zum Input der gleichen Einheit. Indirekte Rückkopplungen (indirect feedback): In diesem Fall wird die Aktivität an vorangegangene Schichten zurückgesandt. Seitliche Rückkopplungen (lateral feedback): Hier erfolgt die Rückmeldung der Information einer Unit an Neuronen, die sich in derselben Schicht befinden Vollständige Verbindungen: Die Netze besitzen Verbindungen zwischen sämtlichen Neuronen vgl. Skriptum 2.5 bzw. 2.1.2.2 21 Neuronale Netze, Fuzzy Control und Genetische Algorithmen Eingabeschicht Verborgene Schicht Ausgabeschicht Abb.: Schematische Darstellung eines Simple Recurrent Network mit 3 Kontext-Units (in blau) Simple Recurrent Networks zeichnen sich durch ihre Kontexteinheiten aus. Kontexteinheiten sind Neuronen, die sich quasi auf gleicher Ebene wie die der InputSchichten befinden und von Units der Hidden-Schicht Informationen erhalten. Diese Informationen werden dann dort verarbeitet und sodann einen Schritt verzögert an die Hidden Units der betreffenden Schicht zurückgesendet. Kompetitive Netze (Self Organizing Maps)sind NN mit einer Input- und einer Outputschicht 16 und greifen auf die Competitive Lernregel (Wettbewerbslernen) zu. Das Lernen nach dieser Lernregel ist unsupervised, das NN nimmt anhand der Ähnlichkeit der repräsentativen Input-Reize eine Kategorisierung vor. Es können 3 verschiedene Phasen unterschieden werden: 1. Erregung: Zunächst wird wie gewohnt für alle Ausgabe-Units der Netto-Input durch folgende Formel berechnet: ∑ x j ⋅ wij 2. Anschließend werden die Netto-Eingaben sämtlicher Ausgabe-Einheiten miteinander verglichen. Diejenige Unit mit dem höchsten Netto-Input ist der Gewinner. 3. Adjustierung der Gewichte: Im letzten Schritt werden die Gewichte verändert und zwar bei allen Verbindungen, die zur Gewinner-Unit führen. Alle anderen Gewichte werden nicht verändert („The winner takes it all“) Kohonen-Netze 17 sind eine Erweiterung kompetitiver Netze. Auch sie agieren ohne externen Lehrer. 16 und damit auch wie der Musterassoziator ohne verborgene Schichten Der Begriff stammt von Teuvo Kohonen, der ein sehr bekanntes Netzwerk konzipierte, das seinen Namen trägt. 17 22 Neuronale Netze, Fuzzy Control und Genetische Algorithmen Zweidimensionale Ausgabeschicht Abb.: Schematische Darstellung eines 2-dimensionalen Kohonen-Netzes. In blau und rot 2 Input-Units mit ihren Verbindungen zu sämtlichen Ausgabe-Units (in grün), die 2-dimensional angeordnet sind. Kohonen-Netze können in selbstorganisierender Weise lernen, Karten (maps) von einem Eingaberaum) zu erstellen. Man kann auch sagen: Kohonen-Netze clustern den Eingaberaum. 23