10 Künstliche Neuronale Netze Künstliche Neuronale Netze Inhalt: QuickTime™ and a decompressor are needed to see this picture. • Einführung • Aufbau künstlicher Neuronaler Netze • Arbeitsweise eines künstlichen Neurons • Aktivierungsfunktionen • Perzeptron • Elementare Boolesche Funktionen • Lernen in künstlichen Neuronalen Netzen • Lernen im Perzeptron • Delta-Regel • Backpropagation Lernregel • Verwendungsweise Neuronaler Netze • Beispiele weiterer Neuronaler Netze • Historie und Zukunft Neuronaler Netze • Literatur Was sind künstliche Neuronale Netze • Der Begriff künstliche Neuronale Netze steht für mathematische Modelle, die sich an der Informationsverarbeitung des Gehirns orientieren • Neuronale Netze bestehen aus vielen kleinen Verarbeitungseinheiten, den Neuronen, die miteinander verbunden sind und die Fähigkeit zum Lernen besitzen. • Neuronale Netze speichern das Wissen verteilt in sogenannten Verbindungsgewichten • Neuronale Netze verarbeiten Information subsymbolisch Vorteile von künstlichen Neuronalen Netzen Neuronale Netze erweisen sich insbesondere dann als vorteilhaft: • wenn es a priori schwierig oder nicht praktikabel erscheint, konkrete Annahmen über einen möglichen nichtlinearen Zusammenhang von mehreren Variablen zu formulieren • wenn eine genaue Kenntnis der Wirkungszusammenhänge zweitrangig ist und es vorrangig auf eine möglichst präzise funktionale Approximation der Zusammenhänge ankommt. • wenn Beispiele zum Lernen vorhanden sind. Computational Neuroscience / Neurokognition • • • Künstliche Neuronale Netze sind nochmals zu unterscheiden von Ansätzen, die kognitive Prozesse des Gehirns oder das Verhalten bestimmter Neurone im Detail untersuchen. Künstliche Neuronale Netze haben zwar ein biologisches Vorbild, versuchen aber nicht das Gehirn zu erklären oder nachzuimplementieren. Forschungsdisziplinen wie Computational Neuroscience oder Neurokognition sind eng an den Daten der Neurowissenschaften orientiert, während künstliche Neuronale Netze nur die Konzepte übernehmen und anwenden. Schematischer Aufbau eines Neurons Axon von einem anderen Neuron Synapse Zellkörper oder Soma Synapsen Dendriten Axonale Verzweigung Zellkern Axon Arbeitsweise eines Neurons Feuern, wenn das Integrationsergebnis den Schwellenwert überschreitet Kriterium zur Entscheidung über Ausgabe (Schwellenwert) Membranpotenzial als Ergebnis der Integration Integration der Eingaben, realisiert durch Dendriten Gewichtete Eingaben (synaptische Wirksamkeit, synaptische Stärke) Entdeckung von Aktivitätsmustern in den Eingaben Aufbau künstlicher Neuronaler Netze Einheiten Gewichtete Kanten, die Gewichte sind veränderlich Eingaben Ausgaben n m Verarbeitungsrichtung Prinzipiell können die Neuronen beliebig untereinander verbunden sein. Oft werden Neuronale Netze allerdings in Schichten organisiert, wobei die Schichten hierarchisch angeordnet sind. Aufbau künstlicher Neuronaler Netze Arbeitsweise eines künstlichen Neurons Gewichte Eingaben i = g(in i) a ja← f (net j) wWi,j,ij oa i j ini j net Eingabekanten Σ fg oa j i ∫ Ausgabe -kanten Eingabe- Aktivierungs- Ausgabe funktion funktion net j = ∑W i, j oi = W j ⋅ o i ⎛ ⎞ a j ← f (net j ) = f ⎜∑ w i, j oi ⎟ ⎝ i ⎠ Meistens wird die Ausgabe mit der Aktivierung identifiziert. Aktivierungsfunktionen Aktivierungsfunktionen oj = aj = f (netj ) = 1 1+ exp(− β(netj − θ )) ⎧1, netj > θ oj = aj = f (netj ) = ⎨ ⎩0 oj = aj = f (netj ) = netj Perzeptron Ij Eingabeeinheiten W j,i Oi Ij Ausgabeeinheiten Eingabeeinheiten Wj O Ausgabeeinheit Frank Rosenblatt (1928–1969) was a computer scientist who completed the Perceptron, or MARK 1, computer at Cornell University in 1960. This was the first computer that could learn new skills by trial and error, using a type of neural network that simulates human thought processes. http://www.bookrags.com/wiki/Frank_Rosenblatt (a) Perzeptron-Netz (b) Einzelnes Perzeptron Elementare Boolesche Funktionen AND Diskrete Schwelle bei θ=1.5 I1 w11 = +1 o1 I2 w 21 = +1 ⎧1, net j > θ o j = f (net j )= ⎨ ⎩0 1 if net ≥ 1.5 f (net) = { 0 if net < 1.5 I1 I2 ∑w 0 0 1 1 0 1 0 1 0 1 1 2 I ij j o1 0 0 0 1 o1 ist nur dann gleich 1 wenn I1 und I2 jeweils 1 sind Elementare Boolesche Funktionen OR Diskrete Schwelle bei θ=0.5 I1 w11 = +1 o1 I2 w 21 = +1 ⎧1, net j > θ o j = f (net j )⎨ ⎩0 1 if net ≥ 0.5 f (net) = { 0 if net < 0.5 I1 I2 ∑w 0 0 1 1 0 1 0 1 0 1 1 2 I ij j o1 0 1 1 1 o1 ist dann gleich 1 wenn I1 oder I2 (oder beide) jeweils 1 sind Elementare Boolesche Funktionen NOT AND (NAND) Diskrete Schwelle bei θ=0.5 I1 w11 = +1 o1 I2 w 21 = −1 ⎧1, net j > θ o j = f (net j )⎨ ⎩0 1 if net ≥ 0.5 f (net) = { 0 if net < 0.5 I1 I2 0 0 1 1 0 1 0 1 ∑w I ij j 0 -1 1 0 o1 0 0 1 0 o1 ist dann gleich 1 wenn I1 gleich 1 ist und I2 nicht gleich 1 ist Lineare Trennbarkeit I1 I1 I1 ? I2 (a) I1 and I2 I2 (b) I1 or I2 I2 (c) I1 xor I2 Lineare Trennbarkeit w0 1 w1 I1 w2 I2 I1 I2 0 0 1 1 0 1 0 1 w0 ≤ 0 w2 + w0 > 0 w1 + w0 > 0 w1 + w2 + w0 ≤ 0 nicht möglich (keine Lösung) Elementare Boolesche Funktionen XOR Diskrete Schwelle bei θ=0.6 (auch für I3 !) I1 w = 0.5 w = 0.5 I2 w11 = +1 I3 w 31 = −2 w 21 = +1 1 if net ≥ 0.6 f (net) = { 0 if net < 0.6 o1 I1 0 0 1 1 I2 0 1 0 1 0.5I1 + 0.5I2 I3 ∑w 0 0.5 0.5 1 0 0 0 1 0 1 1 0 I ij j o1 0 1 1 0 o1 ist dann gleich 1 wenn I1 gleich 1 ist oder I2 gleich 1 ist, aber nicht beide Lernen in künstlichen Neuronalen Netzen Damit ein Neuronales Netz lernen kann, müssen einige Komponenten des Netzes flexibel sein. So ist es z.B. möglich, dass im Laufe des Lernvorgangs (auch Training genannt) neue Neuronen entstehen, bestehende Neurone gelöscht oder Aktivierungsfunktionen modifiziert werden. In der Regel wird unter Lernen jedoch die Veränderung der Verbindungsstärke w verstanden. Es wird zwischen drei Lernregimes unterschieden: Unüberwachtes Lernen (unsupervised learning) Überwachtes Lernen (supervised learning) Verstärkendes Lernen (reinforcement learning) Unüberwachtes Lernen ⎛ 0,1 ⎞ ⎜ ⎟ 0,4 ⎟ ⎜ I= ⎜ 0,2 ⎟ ⎜ ⎟ ⎝ 0,9 ⎠ ⎛0,7⎞ o=⎜ ⎟ ⎝ 0,3⎠ Eingabemuster W Beim unüberwachten Lernen werden dem Netz lediglich mehrere Eingabemuster I präsentiert und das Lernverfahren nutzt statistische Eigenschaften in den Daten zur Generierung von Ausgabemustern. Hebb’sche Lernregel: ΔW = η ⋅ I ⋅ o η Lernschrittweite Unüberwachtes Lernen Vorher: 0,1 0,7 0,4 0,2 W 0,9 Nachher: W Hebb’sche Lernregel: ΔW = η ⋅ I ⋅ o Überwachtes Lernen ⎛ 0,1 ⎞ ⎜ ⎟ 0,4 ⎟ ⎜ I= ⎜ 0,2 ⎟ ⎜ ⎟ ⎝ 0,9 ⎠ ⎛0,7⎞ o=⎜ ⎟ ⎝ 0,3⎠ Eingabemuster W ⎛1⎞ t =⎜ ⎟ ⎝0⎠ Zielmuster Beim überwachten Lernen werden dem Netz zu jedem Eingabemuster I ein Zielmuster t angegeben. Die Aufgabe des Lernverfahrens ist es, die Gewichte des Netzes so zu ändern, dass das Netz nach wiederholter Präsentation der Paare von Eingabe- und Ausgabemustern diese Assoziation selbständig vornehmen und dies auch für unbekannte, ähnliche Eingabemuster tun kann (Generalisierung). Delta-Lernregel: Δw ij = η ⋅ Ii (t j − o j ) Reinforcement Lernen ⎛ 0,1 ⎞ ⎜ ⎟ 0,4 ⎟ ⎜ I= ⎜ 0,2 ⎟ ⎜ ⎟ ⎝ 0,9 ⎠ ⎛0,7⎞ o=⎜ ⎟ ⎝ 0,3⎠ W Eingabemuster Bewertung z.B. erwartet oder unerwartet Beim verstärkenden Lernen (reinforcement learning) wird lediglich ein unspezifisches Signal z.B. eine Belohnung oder Bestrafung verwendet. Diese Bewertung wird vom Modell antizipiert und es lernt nur dann, wenn es einen Unterschied zwischen tatsächlicher und antizipierter Belohung gibt. Lernen im Perzeptron Beispiel: Muster mit 2 Merkmalen sollen 2 Klassen zugeordnet werden Zielvektor: t ∈ {−1,+1} Ij Wj I n ∈ C2 O I2 Gewichtsvektor I1 In ∈ C1 I3 I4 Ziel: Der Gewichtsvektor muss so eingestellt werden, dass die Beispiele richtig klassifiziert werden (die Ausgabe dem Zielvektor entspricht). Lernen im Perzeptron Bias ⎛ ⎞ o = f (net ) = f ⎜⎜ ∑ w j I j ⎟⎟ = f (wT I) ⎝ j ⎠ ⎧1, net ≥ 0 f (net ) = ⎨ ⎩−1, net < 0 wT In > 0 I2 wT In < 0 Ij Wj O In ∈ C2 I n ∈ C1 Gewichtsvektor I1 Zielvektor: I3 I4 t ∈ {−1,+1} Lernen im Perzeptron wT In < 0 In ∈ C2 wT In > 0 I n ∈ C1 dann gilt: Der Zielvektor für die Klassen ist: t ∈ {−1,+1} wT In t n > 0 Anstatt einfach die Anzahl der Fehler als Fehlerfunktion zu nehmen, kann man eine stückweise glatte Fehlerfunktion gewinnen, indem man für jedes falsch klassifizierte Muster die Entfernung des Musters im Gewichtsraum ansetzt: E (w) = − T w ∑ In ⋅ t n n ∈Fehler Lernen im Perzeptron E (w) = − T w ∑ In ⋅ t n n ∈Fehler Nach dem stochastischen Gradientenabstieg erhält man: w(t + 1) = w(t) − η∇E (w) = w(t) + ηIn ⋅ t n Falls eine exakte Lösung existiert, garantiert diese Lernregel, dass diese in einer endlichen Anzahl an Lernschritten auch gefunden wird. Allerdings muss das Problem linear separabel sein. Lernen im Perzeptron Fehler w(t + 1) I⋅ t w(t) w(t + 1) = w(t) − η∇E (w) = w(t) + ηIn ⋅ t n Lernen im Perzeptron w(t + 1) = w(t) − η∇E (w) = w(t) + ηIn ⋅ t n Delta-Regel für einschichtige Netze mit linearen Aktivierungsfunktionen ⎛ 0,1 ⎞ ⎜ ⎟ 0,4 ⎟ ⎜ I= ⎜ 0,2 ⎟ ⎜ ⎟ ⎝ 0,9 ⎠ Eingabemuster ⎛0,7⎞ o=⎜ ⎟ ⎝ 0,3⎠ W ⎛1⎞ t =⎜ ⎟ ⎝0⎠ Zielmuster Delta-Lernregel: Δw ij = η ⋅ Ii (t j − o j ) = η ⋅ Ii ⋅ δ j Diese Lernregel, auch als Widrow/Hoff-Regel (1960) bekannt, ermöglicht es, Gewichtsänderungen so durchzuführen, dass ein bestimmter Eingabevektor mit einem gewünschten Ausgabevektor assoziiert wird. Allerdings ist sie nur für zweischichtige Netze definiert, da eine gewünschte Ausgabe nicht für Hidden-Units beschrieben wird. Herleitung der Delta-Lernregel: Fehlerfunktion Gegeben ist ein Input Ip aus der Menge aller Inputs und das dazugehörige Ziel tp : ⎛ 0,1 ⎞ ⎜ ⎟ 0,4 ⎟ ⎜ Ip = ⎜ 0,2 ⎟ ⎜ ⎟ ⎝ 0,9 ⎠ ⎛0,7⎞ op = ⎜ ⎟ ⎝ 0,3⎠ Ep ⎛1⎞ tp =⎜ ⎟ ⎝0⎠ Fehler W Ziel: Anpassung der Gewichte zur Minimierung des Fehlers Fehlermaß: 1 E p = (t p − o p ) 2 2 Quadrat des Euklid’schen Abstandes Herleitung der Delta-Lernregel: Fehlerfunktion Die Fehlerfunktion lässt sich einfach visualisieren, wenn das neuronale Netz lediglich zwei Gewichte besitzt. Beispiel: OR Funktion Variiere die Gewichte w1 und w2 und berechne für jedes (w1,w2)-Paar den Fehler E über alle Eingabemuster Ziel: Finde das Minimum der Fehlerfunktion! Herleitung der Delta-Lernregel Bestimme zunächst eine Fehlerfunktion (Optimierungsfunktion): 1 E = (t − o) 2 2 Da die relevanten unabhängigen Variablen lediglich die Gewichte wi sind, wird der Fehler als Funktion der Gewichte definiert: E = E ( w1,..., w n ) Nutze zur Minimierung beispielsweise den Gradientenabstieg: E(w neu ) = E(w alt + Δw) ≤ E(w alt ) Herleitung der Delta-Lernregel Nach dem Gradientenabstiegsverfahren berechnet sich die Änderung eines jeden Gewichtes wij mit Hilfe der Ableitung der Fehlerfunktion nach den Gewichten: Δw ij = −η ⋅ ∂E (W) ∂w ij wobei 1 E = (t − o) 2 2 E ist zwar eine Funktion von w, allerdings nur indirekt durch die Berechung der Aktivierung der Ausgabeneuronen oj(w) jedes Neurons j. Die Berechung der Ableitung erfordert daher die Anwendung der Kettenregel (äußere mal innere Ableitung): ∂E (W) ∂E ∂o j = ∂w ij ∂o j ∂w ij mit 1 E = (t − o(W ))2 2 folgt ∂E = −(t j − o j ) ∂o j Herleitung der Delta-Lernregel Bei Verwendung einer linearen Aktivierungsfunktion f(x)=x in der Ausgabeschicht berechnet sich die Ausgabe als: o j = ∑ Ii w ij i so dass gilt: ∂o j = ∂w ij ∂ ∑ Ii w ij i ∂w ij = Ii Damit ergibt sich die Delta-Lernregel für einschichtige Netze mit linearer Aktivierungsfunktion zu: Δw ij = η ⋅ Ii (t j − o j ) Herleitung der Delta-Lernregel für monotone, differenzierbare, nichtlineare Aktivierungsfunktionen ∂E (W ) Δw ij = −η ⋅ ∂w ij ∂E ( W) ∂E ∂o j ∂net j = ∂w ij ∂o j ∂net j ∂w ij wobei mit 1 E = (t − o) 2 2 ∂E = −( t j − o j ) ∂o j ∂o j ∂ = f (net j )= f ′(net j ) ∂net j ∂net j Δw ij = −η ⋅ Ii (t j − o j ) f ′(net j ) ∂net j = Ii ∂w ij Backpropagation Lernregel Die bisher dargestellten Lernregeln funktionieren nur bei Neuronalen Netzen ohne Hidden-Units. Das Backpropagation Verfahren stellt eine Rechenvorschrift dar, mit der die Gewichte zu den Hidden-Units modifiziert werden können. Entwickelt wurde das Verfahren bereits in den 70er Jahren (u. a. von Paul Werbos, 1974), allerdings geriet es zunächst für über ein Jahrzehnt in Vergessenheit. Besonders bekannt wurde der Backpropagation Ansatz von Rumelhart, Hinton und Williams (1986). Es ist allerdings noch sehr umstritten, ob diese Form des Lernens überhaupt in Gehirn verwendet wird. QuickTime™ and a decompressor are needed to see this picture. Paul Werbos QuickTime™ and a decompressor are needed to see this picture. David Rumelhart Herleitung der Backpropagation Lernregel δk δj ∂E ( W) ∂E ∂o j ∂net j = ∂w ij ∂o j ∂net j ∂w ij δ1 ∂E δj = ∂net j w kj ol ok Um den Beitrag eines Hidden Neurons zum Fehler zu bestimmen, nutzen wir den Zusammenhang, dass sich eine Variation der Aktivierung netk nur durch Änderungen der Aktivierungen netj in der Fehlerfunktion bemerkbar macht. ∂w kj ok ∂w kj f (net k ) ∂E ∂E ∂net j δk = =∑ = ∑δ j = ∑δ j ∂net k ∂net j ∂net k ∂net k ∂net k j j j δk = f ′(net k )∑ w kjδ j j Herleitung der Backpropagation Lernregel δk δj w kj ol ok δk = f ′(net k )∑ w jkδ j j δ1 Die Backpropagation Lernregel besagt also, dass wir den Fehler (Delta) eines Hidden Neurons bekommen, wenn wir die Fehler der Ausgabeneuronen rückwärts propagieren. Δw lk = −η ⋅ ol∂ k Die Backpropagation Lernregel kann für beliebige Netze verwendet werden und gilt nicht nur für das Multi-Layer Perzeptron (MLP). Multi-Layer Perzeptron mit Backpropagation Algorithmus: Lege eine Eingabe an und berechne die Ausgabe. Bestimme δj für alle Ausgabeneuronen. δj = oj − t j Rückwärtspropagierung der δj um die δ-Werte der Hidden-Neuronen zu bestimmen: δk = f ′(net k )∑ w jkδ j j Bestimmung der Gewichtsänderung unter Verwendung der δ-Werte: Δw ij = −η ⋅ δ j I j Verwendungsweise Neuronaler Netze Die Anwendung von Neuronalen Netzen ist im Grunde sehr einfach, allerdings kann sich die Suche nach dem “besten” Netz und Lernverfahren als langwierig gestalten, da der Anwender sehr viele Freiheitsgrade hat. • • • • Anzahl der Neuronen Anzahl der Schichten Wahl der Nichtlinearitäten Lernstrategien (Batch, on-line, Momentum-Term, weight-decay) Neben dem Gradientenabstiegsverfahren gibt es weitere Lernverfahren: • Quickprop • Conjugate Gradient Descent Verwendungsweise Neuronaler Netze Beispiel: Musterklassifikation einer Menge von Eingabevektoren (Messwerte), die über den Zielvektor in jeweils eine Klasse A oder B eingeordnet sind. Ziel: Das künstliche neuronale Netz soll auf Basis dieser Trainingsdaten eine Abbildung von einem Eingaberaum auf den Ausgaberaum (hier die Klassen) lernen, um später auch unbekannte (aber in der Regel ähnliche) Muster einer Klasse zuordnen zu können. A B I1 I3 I5 I6 I4 I2 Neuronale Netze sind immer dann gut zur Datenanalyse geeignet, wenn nichtlineare Abhängigkeiten zwischen den Messwerten vorliegen und die für die Entscheidung wesentlichen Faktoren nicht hervorgearbeitet werden müssen. Verwendungsweise Neuronaler Netze Trainingsphase Konstruktionsphase Es soll ein Neuronales Netz für eine bestimmte Aufgabe konstruiert werden. Dazu geht man in folgenden Schritten vor: 1. Lege Anzahl und Typ der benötigten Einheiten fest. 2. Lege die Verbindungen zwischen den Einheiten fest. 3. Initialisiere die Gewichte an den Kanten. 4. Wähle eine Menge von Beispielen (Paare von Ein- und Ausgaben). 5. Lege fest, in welcher Reihenfolge die Eingaben der Beispiele in das Netz eingegeben werden sollen. 6. Bestimme für jedes Beispiel die Differenz zwischen gewünschter und tatsächlicher Ausgabe. 7. Passe die Gewichte in geeigneter Weise an ⇒ Lernalgorithmus. Verwendungsweise Neuronaler Netze Abbruckkriterium Da Neuronale Netze dazu neigen, die Trainingsdaten „auswendig“ zu lernen, wurden verschiedene Kriterien entwickelt dieses „overfitting“ zu vermeiden. Eine einfache Strategie ist die folgende: 1. Bestimme den Fehler auf einem Validierungs-Datensatz (VD). 2. Beende das Training, wenn der Fehler auf dem VD nicht weiter fällt. 3. Ein Vergleich der Netze kann auf Basis eines unbekannten Testdatensatzes erfolgen (Leave-k-out). Verwendungsweise Neuronaler Netze Bei Verwendung einer Hidden-Schicht mit nichtlinearen Aktivierungsfunktionen können Neuronale Netze im Grunde beliebige nichtlineare Entscheidungsgrenzen lernen. C1 C2 Radiale Basis-Funktion Netze Radiale Basis-Funktion Netze Während das MLP eine rein verteilte Repräsentation lernt, besitzen Radiale Basis-Funktion Netze eher eine lokale Repräsentation, indem eine Aktierungsfunktion verwendet wird, die den Abstand vom Muster zum Gewicht der Neurone berechnet. ( h j (I) = G I − c j ) Oft werden die Zentren cj nach der Verteilung der Daten inintialisiert. Sie können allerdings auch nach dem Backpropagation Lernalgorithmus gelernt werden. Es gibt auch Verfahren, die Knoten neu Einfügen oder Löschen. Die Gewichte der zweiten Schicht werden nach der Delta Lernregel bestimmt. Selbstorganisierende Merkmalskarten QuickTime™ and a decompressor are needed to see this picture. Teuvo Kohonen Historie und Zukunft Neuronaler Netze Multi-Paradigmen Systeme Neuartige NetzwerkModelle & Lernverfahren Neuronenmodelle Perzeptron Lernmatrix Turing, EDV Zahlreiche Applikationen Hebb Gestaltgesetze Aktivitäten Computational Neuroscience Support Vector Maschine und andere statistische Verfahren Entdeckung von Neuronen Neuronale Eiszeit! Zeit 1900 1920 1940 1960 1980 2000 2020 Literatur Bücher: • Zell, A. Simulation Neuronaler Netzwerke. Addison-Wesley 1994. • Brause, R. Neuronale Netze. B.G. Teubner Stuttgart, 1996 • Bishop, Chr. Neural Networks for Patter Recognition, Oxford Press 1997 • Ritter, H., Martinetz, Th., Schulten, K. Neuronale Netze. Addison-Wesley 1994. • Kohonen, T. Self-Organizing Maps. Springer Series in Information Sciences. Vol. 30, Springer Verlag 1995. • Duda, R. O., Hart, P.E. & Stork, D.G. Pattern Classification. New York: Wiley, 2001. • Lämmel, U., Cleve, J. Künstliche Intelligenz – Lehr- und Übungsbuch. Fachbuchverlag Leipzig, 2001 • Haykin, S. Neural Networks and Learning Machines (3rd Edition), Prentice Hall, 2009 Zeitschriften: • Neural Networks, Neural Computing, Neural Computation • IEEE Transactions on Neural Networks • Neural Processing Letters