11. Neuronale Netze 1 Einführung (1) Ein künstliches neuronales Netz ist vom Konzept her eine Realisierung von miteinander verschalteten Grundbausteinen, sogenannter Neuronen, welche in rudimentärer Form die Vorgänge im biologischen Vorbild, unserem Gehirn, nachahmen. Wichtige Eigenschaften sind: • Lernfähigkeit, • Parallelität, • Verteilte Wissensrepräsentation, • Hohe Fehlertoleranz, • Assoziative Speicherung, • Robustheit gegen Störungen oder verrauschten Daten, 2 Einführung (2) Der Preis für diese Eigenschaften ist: • Wissenserwerb ist nur durch Lernen möglich. • Logisches (sequenzielles) Schließen ist schwer. • Sie sind oft langsam und nicht immer erfolgreich beim Lernen. Aus diesem Grunde werden Neuronale Netze nur dort angewandt, wo genügend Zeit für ein Lernen zur Verfügung steht. Sie stehen in Konkurrenz z.B. zu Vektorraum-Modellen oder probabilistisches Modellen. Es gibt viele fertige Softwarepakete für Neuronale Netze, siehe z.B. Liste unter http://de.wikipedia.org/wiki/Künstliches_neuronales_Netz 3 Einführung (3) Der Grundaufbau einer Nervenzelle besteht aus • einem Zellkörper, • den Dentriten, welche die Eingabe des Netzes in die Zelle aufsummieren, • und ein Axon, welches die Ausgabe der Zelle nach außen weiterleitet, sich verzweigt und mit den Dentriten nachfolgender Neuronen über Synapsen in Kontakt tritt. Dentriten Zellkörper Axon ai Axon aj Synapse Dentriten Dieses Modell dient als Grundlage “künstlicher neuronaler Netze”. 4 Einführung (4) Ein Neuron i mit n Eingängen (Dentriten) bekommt einen Gesamtinput von neti und erhält damit einem Aktivitätswert ai. Daraus folgt ein Ausgangswert oi (Axon), der über eine synaptische Koppelung wi,j an das Neuron j koppelt. net j neti a i oi w i,j aj oj Neuronale Netze waren für längere Zeit auf Grund der “Lernprobleme” aus der Mode gekommen. Aber nach Wikipedia: In jüngster Zeit erlebten neuronale Netzwerke eine Wiedergeburt, da sie bei herausfordernden Anwendungen oft bessere Ergebnisse als konkurrierende Lernverfahren liefern. 5 Einführung (5) Anwendungsgebiete nach Wikipedia (Stand 26. Dezember 2013): • Regelung und Analyse von komplexen Prozessen • Frühwarnsysteme • Optimierung • Zeitreihenanalyse (Wetter, Aktien etc.) • Sprachgenerierung (Beispiel: NETtalk) • Bildverarbeitung und Mustererkennung * Schrifterkennung (OCR), Spracherkennung, Data-Mining • Informatik: Bei Robotik, virtuellen Agenten und KI-Modulen in Spielen und Simulationen. • Medizinische Diagnostik, Epidemiologie und Biometrie • Klangsynthese • Strukturgleichungsmodell zum Modellieren von sozialen oder betriebswirtschaftlichen Zusammenhängen 6 Mathematisches Modell (1) Mathematisches Modell von neuronalen Netzen Ein künstliches neuronales Netz besteht aus folgenden Komponenten 1. Zellen mit einem Aktivierungszustand ai(t) zum Zeitpunkt t. 2. Eine Aktivierungsfunktion fact, die angibt, wie sich die Aktivierung in Abhängigkeit der alten Aktivierung ai (t), des Inputs neti und eines Schwellwerts Θi mit der Zeit ändert. ai(t + 1) = fact (ai(t), neti(t), Θi). 3. Eine Ausgabefunktion fout, die aus der Aktivierung der Zelle den Output berechnet oi = fout(ai ). 7 Mathematisches Modell (2) 4. Ein Verbindungsnetzwerk mit den Koppelungen wi,j (Gewichtsmatrix). 5. Eine Propagierungsfunktion, die angibt, wie sich die Netzeingabe aus den Ausgaben der anderen Neuronen berechnet, meist einfach netj (t) = X oi(t)wi,j i 6. Eine Lernregel, die angibt, wie aus einer vorgegebenen Eingabe eine gewünschte Ausgabe produziert wird. Dies erfolgt meist über eine Modifikation der Stärke der Verbindungen als Ergebnis wiederholter Präsentation von Trainingsmustern. Auf diese Weise werden die “Zustände” geändert, bis ein stabiler (und hoffentlich erwünschter) Endzustand eintritt, welcher in gewisser Weise das Ergebnis der Berechnungen eines neuronales Netzes darstellt. 8 Mathematisches Modell (3) Beispiel: Ein nettes kleines bekanntes Netz mit wenigen Verbindungen und welches im Kopf nachzurechnen ist, ist das XOR-Netzwerk mit 4 Zellen. n4 0.5 -2 1 n3 1.5 1 n1 1 1 Die Neuronen beinhalten die Schwellwerte, die Verbindungen sind mit den Gewichten beschriftet. n2 Als Aktivitätsfunktion wird eine Stufenfunktion gewählt aj (t) = fact (netj (t), Θj ) == ( 1 0 falls netj (t) ≥ Θj . sonst 9 Mathematisches Modell (4) Die Ausgabefunktion ist einfach oj = fout(aj ) = aj Weiterhin wird die standardmäßige Propagierungsfunktion verwendet netj (t) = X oi(t)wi,j i Aus der folgenden Tabelle ist lich: o1 o2 net3 0 0 0 0 1 1 1 0 1 1 1 2 die Funktionsweise des Netzes ersichtΘ3 o3 net4 1.5 0 0 1.5 0 1 1.5 0 1 1.5 1 0 Θ 4 o4 0.5 0 0.5 1 0.5 1 0.5 0 10 Mathematisches Modell (5) Beschränkt man sich auf ebenenweise verbundene feedforward-Netze, so wird für die XOR-Funktion ein weiterer verdeckter Knoten benötigt. n5 0.5 1 1 n3 0.5 1 n4 0.5 -1 n1 -1 1 n2 Eine kleine Übungsaufgabe: Wie sieht die zugehörige Tabelle von Eingabe zur Ausgabe aus? Andere häufig verwendete Aktivierungsfunktionen mit oi = ai als Ausgabefunktion sind die Sigmoide bzw. logistische Funktion oi = ai = 1/(1 + exp(−c(neti + Θi))) oder der Tangens Hyperbolicus oi = ai = tanh(c(neti + Θi)). Die Konstante c beeinflusst die Steigung der Funktion. 11 Darstellung von neuronalen Netzen (1) Ein neuronales Netz ist ein Graph mit Kanten und Knoten. Neuronen bzw. Zellen sind aktive Knoten oder Berechnungseinheiten, die lokal auf Eingaben reagieren und Ausgaben produzieren, die über die Kanten weiter gegeben werden. Eine andere Darstellung besteht aus 3 Matrizen: Verbindungsmatrix, Schwellwertmatrix und Anregungsmatrix. Rechnungen erfolgen durch Neuberechnung der Anregungsmatrix. Arten von Verbindungsnetzwerken Je nach Netztopologie und der Art der Verarbeitung der Aktivitätswerte werden verschiedene neuronale Netze unterschieden. 12 Darstellung von neuronalen Netzen (2) Eine Einteilung nach Rückkopplung: 1. Netze ohne Rückkopplung (feedforward-Netze), • Ebenenweise verbundene feedforward-Netze, • Allgemeine feedforward-Netze, 2. Netze mit Rückkopplung, • Netze mit direkter Rückkopplung (direct feedback), • Netze mit indirekter Rückkopplung (indirect feedback), • Netze mit Rückkopplung innerhalb einer Schicht (lateral feedback), • Vollständig verbundene Netze (lateral feedback). 13 Darstellung von neuronalen Netzen (3) 2 Beispiel-Topologien und ihre Verbindungsmatrizen: 6 3 7 4 1 6 5 2 3 feedforward, ebenenweise verbunden 7 4 1 5 2 vollständig verbunden, ohne direkte Rückkopplung 14 Lernen (1) Mögliche Arten des Lernens 1. Entwicklung neuer Verbindungen 2. Löschen existierender Verbindungen 3. Modifikation der Stärke von Verbindungen 4. Modifikation der Schwellwerte der Neuronen 5. Modifikation der Aktivierungs-, Propagierungs- oder Ausgabefunktion 6. Entwicklung neuer Zellen 7. Löschen von Zellen Meist wird die Modifikation der Stärke von Verbindungen wi,j verwendet, da diese Verfahren am einfachsten sind und die Entwicklung bzw. das Löschen von Verbindungen mit eingeschlossen werden kann. 15 Lernen (2) Lernverfahren Prinzipiell werden 3 Arten von Lernverfahren unterschieden: 1. Überwachtes Lernen, bei dem einem Netzwerk zu einem Input ein gewünschter Output gegeben wird, nach dem es sich einstellt. 2. Bestärkendes Lernen, bei dem zu einem Input die Information, ob der Output richtig oder falsch ist, in das Netz zurückgegeben wird. 3. Unüberwachtes Lernen, bei dem sich das Netz selbst organisiert. Am häufigsten ist das überwachte Lernen. Von den verschiedenen Lernmethoden wird hier nur das klassische Backpropagation-Verfahren vorgestellt. 16 Lernen (3) Hebbsche Lernregel Die einfachste Lernregel, die heute noch Grundlage der meisten Lernregeln ist, wurde 1949 von Donald O.Hebb entwickelt. Wenn Zelle j eine Eingabe von Zelle i erhält und beide gleichzeitig stark aktiviert sind, dann erhöhe das Gewicht wij , die Stärke der Verbindung von i nach j. ∆wij = ηoiaj Die Konstante η wird als Lernrate bezeichnet. Verallgemeinert lautet die Hebbsche Regel ∆wij = ηh(oi, wij )g(aj , tj ) tj ist die erwartete Aktivierung (teaching input), ein Parameter der Funktion g. Fast alle Lernregeln sind Spezialisierungen der Funktionen h und g. 17 Perzeptron (1) Im folgenden werden wir uns aus Zeitgründen nur eine Art von Netz mit einer Art von Lernregel genauer ansehen, ein Feed Forward Perzeptron mit der Backpropagation-Regel. Ursprung hat das Perzeptron aus der Analogie zum Auge, bei dem die Retina die Input-Neuronen beinhaltet, von der über eine Zwischenschicht eine Klassifikation der einzelnen Bilder in der Ausgabeschicht erfolgt. Dementsprechend werden solche Netz z.B. in der Steuerung autonomer Fahrzeuge eingesetzt. Ausgabeneuron (Lenkung) Eingabeneuronen (Straßenbild+entfernungen) 18 Perzeptron (2) Aufbau: • Es gibt eine Input-Schicht • Es gibt keine, eine oder mehrere verborgene Schichten (hidden layer) • Es gibt eine Ausgabe-Schicht • Die Kanten verbinden die Schichten eine nach der anderen in der gleichen Richtung untereinander, d.h. die Informationen aller Knoten der Input-Schicht laufen in die selbe Richtung, nicht zurück und nicht zwischen den Knoten einer Schicht. In einigen Fällen wird der Begriff Perzeptron enger als feedforwardNetz mit keiner oder einer verborgenen Schicht verwendet. 19 Backpropagation-Regel (1) Wiederholung lineare Ausgleichsrechnung, Kapitel 3 Definition 3.1 (Ausgleichsproblem) Gegeben sind n Wertepaare (xi, yi), i = 1, . . . , n mit xi 6= xj für i 6= j. Gesucht ist eine stetige Funktion f , die in einem gewissen Sinne bestmöglich die Wertepaare annähert, d.h. dass möglichst genau gilt: f (xi ) ≈ yi für i = 1, . . . , n. Definition 3.1 (Fehlerfunktional) Gegeben sei eine Menge F von stetigen Funktionen sowie n Wertepaare (xi, yi), i = 1, . . . , n. Ein Element von f ∈ F heißt Ausgleichsfunktion von F zu den gegebenen Wertepaaren, falls das Fehlerfunktional E(f ) = n X (f (xi ) − yi)2 i=1 für f minimal wird, d.h. E(f ) = min{E(g)|g ∈ F }. Die Menge F nennt man auch die Menge der Ansatzfunktionen. 20 Backpropagation-Regel (2) Pp Ist die Funktion f (xi ) linear in den Parametern, also f (x) = k=1 ak gk (x), so lässt sich das Minimum des Fehlerfunktionals über die Nullstelle der Ableitungen von E(f ) durch Lösen der Normalengleichung für die Parameter ak bestimmen. Jetzt: • Jedem x-Wert entspricht einem Satz von Eingabewerten bzw. ein Eingabe-”Pattern” inp,i mit i ≤ 1 ≤ nin Werten. • Jedem Ausgabewert y entspricht einem Satz von Ausgabewerten bzw. Ausgabe-”Pattern” tp,j mit j ≤ 1 ≤ nout Werten • Die Ausgleichsfunktion f (x) ist jetzt ein Satz von nicht-linearen Funktionen in einer Anzahl von Parameter, z.B. in den Gewichten des neuronalen Netzes: fi,j (inp,i) = op,j 21 Backpropagation-Regel (3) • Dann lautet das Fehlerfunktional (die Summe der quadratischen Abweichungen zwischen den berechneten und den “gewünschten” Werten anstatt P Ei = (f (xi ) − yi)2 E= n i=1 Ei E= X p Ep out 2 1 nX op,j − tp,j Ep = 2 j • Lösung des nicht-linearen Ausgleichsproblem: das Minimum von E als Funktion der nicht-linearen Parameter. Da die Funktionen jetzt nicht-linear in den Parametern sind, kann das System nicht exakt gelöst werden, sondern das Minimum wird gesucht, in dem z.B. die Parameter entlang der negativen Steigung des Fehlerfunktionals als Funktion der Parameter geändert wird oder Backpropagation ist ein Gradientenabstiegsverfahren, bei der eine Fehlerfunktion (oder Energiefunktion) minimiert wird. 22 Backpropagation-Regel (4) Der Algorithmus ändert die Gewichte-Matrix entlang des negativen Gradienten der Fehlerfunktion, bis diese (hoffentlich) minimal ist. ∆wij = −η X ∂Ep p ∂wij . Da die Funktion nicht-linear ist, hat sich sicher jede Menge lokaler Minima, in denen das Verfahren “hängen” bleiben kann. Im folgenden wird davon ausgegangen, dass sich der Output eines Knotens als oj = fact (netj ) ohne weitere Abhängigkeiten schreiben lässt. Es gilt die Kettenregel ∂Ep ∂Ep ∂netpj = . ∂wij ∂netpj ∂wij 23 Backpropagation-Regel (5) Der erste Faktor wird als Fehlersignal bezeichnet δpj = − ∂Ep ∂netpj und der zweite Faktor ist ∂netpj ∂ X = opiwij = opi. ∂wij ∂wij i Die Änderung der Gewichte berechnet sich dann durch ∆wij = η X p opiδpj Bei der Berechnung von δpj geht die konkrete Aktivierungsfunktion ein, also wie die Zelle j den Input in einen Output verwandelt. ∂Ep ∂Ep ∂opj ∂Ep ∂fact(netpj ) δpj = − =− =− . ∂netpj ∂opj ∂netpj ∂opj ∂netpj 24 Backpropagation-Regel (6) Für den ersten Faktor muss zwischen den Ebenen, in denen sich die Knoten befinden, unterschieden werden. 1. j ist Index einer Ausgabezelle. Dann gilt ∂Ep = (tpj − ooj ). − ∂opj Der Gesamtfehler ist in diesem Fall ′ δpj = fact (netpj ) · (tpj − ooj ) 2. j ist Index einer Zelle der verdeckten Ebenen. Die Fehlerfunktion hängt von den Output oj indirekt über die Zwischenzellen k ab: X ∂Ep ∂netpk ∂Ep − = − ∂opj ∂netpk ∂opj k X X ∂ X opiwik = δpk wjk = δpk ∂opj i k k 25 Backpropagation-Regel (7) Das bedeutet, dass man den Gesamtfehler der Zelle j für ein Muster p aus den gewichteten Fehlern δpk aller Nachfolgezellen k und der Gewichte der Verbindungen von j zu diesen k berechnen kann. ′ δpj = fact (netpj ) · X δpk wjk k Meist wird als Aktivierungsfunktion die logistische Funktion verwendet mit der Ableitung d d 1 flog (x) = = flog (x) · (1 − flog (x)) −x dx dx 1 + e Damit ergibt sich eine vereinfachte Formel für den Backpropagation Algorithmus ∆pwij = ηopiδpj 26 Backpropagation-Regel (7) mit dem Fehlersignal δpj = Beispiel: ( opj (1 − opj )(tpj − opj ) P opj (1 − opj ) k δpk wjk n1 falls j Ausgangszelle ist falls j verdeckte Zelle ist n2 ) n3 W42 n4 W 74 n7 ′ ∆w42 = ηo4δ2 = ηo4(t2 − o2) ∗ f (net2) ∆w74 = ηo7δ4 = ηo7(− 3 X ′ δk w4k )f (net4) k=1 27 Backpropagation-Regel (8) Das Verfahren zusammengefasst 1. Zu einer gegebenen Menge von Input-Pattern mit ninput Neuronen und gewünschten Output-Pattern mit noutput Neuronen entwerfe ein neuronales Netz z.B. ein Perzeptron mit nhidden Neuronen in einer verborgenen Schicht. 2. Wähle eine Aktivierungs-, Propagierungs- und eine Ausgabefunktion aus. 3. Würfele zufällige Anfangswerte für die Gewichtsmatrix. 4. Durchlaufe für alle Input-Pattern solange bis der Output nahe beim gewünschten Output liegt: (a) Berechne die Aktivierung der Neuronen Schicht für Schicht bis zur Ausgabeschicht (vorwärts). (b) Vergleiche die Ausgabe mit der gewünschten Ausgabe und berechne die Fehlerfunktion. (c) Korrigiere die Gewichtsmatrix von der höchsten Ebene beginnend bis zur Eingabeschicht (rückwärts) 28