540 likes | 939 Views
Neuronale Netzwerke. Why connectionism? Backpropagation Netzwerke. Was ist ein neuronales Netzwerk?. Ein neuronales Netzwerk besteht aus einer großen Anzahl miteinander verknüpfter kleiner Elemente, den Nervenzellen (= Neuronen)
E N D
Neuronale Netzwerke Why connectionism? Backpropagation Netzwerke
Was ist ein neuronales Netzwerk? • Ein neuronales Netzwerk besteht aus einer großen Anzahl miteinander verknüpfter kleiner Elemente, den Nervenzellen (= Neuronen) • Informationen werden verarbeitet und weitergeleitet, indem sich die Neuronen mit Hilfe von Verbindungen untereinander aktivieren.
Warum neuronale Netzwerke? • Während elektronische Schaltelemente zwar in der Lage sind, im Nanosekunden-Bereich zu reagieren, sind natürliche Neuronen im Gehirn mit einer Schaltzeit im Millisekunden-Bereich vergleichsweise langsam…! • Aber: Trotzdem ist das menschliche Gehirn in der Lage, Probleme zu lösen, die für jeden konventionellen Rechner in weiter Ferne liegen… • …und das liegt hauptsächlich an der großen Anzahl der Neuronen, deren starker Vernetzung und der Tatsache, dass neuronale Netze „lernen“ können. • Die Idee: Die Arbeitsweise des Gehirns wird auf Maschinen übertragen.
Künstliche neuronale Netze • Mit künstlichen neuronalen Netzen werden natürlichebiologische neuronale Netze als informationsverarbeitende Systeme nachgeahmt. • Will heißen: Das Modell des künstlichen Neurons basiert auf den Untersuchungen von natürlichen Nervenzellen.
Nervenzellen = Neuronen • Nervenzellen sind die Grund-bausteine des Nervensystems und grundsätzlich für die Reiz-aufnahme, die Weitergabe und Verarbeitung von Nerven-impulsen zuständig
Aufbau einer Nervenzelle • Zellkörper mit Zellkern
Aufbau einer Nervenzelle • Zellkörper mit Zellkern • Dendriten (Input)
Aufbau einer Nervenzelle • Zellkörper mit Zellkern • Dendriten (Input) • Axon (Output)
Aufbau einer Nervenzelle • Zellkörper mit Zellkern • Dendriten (Input) • Axon (Output) • Synapsen (Kontaktstellen zwischen Neuronen)
Aufbau einer Nervenzelle • Zellkörper mit Zellkern • Dendriten (Input) • Axon (Output) • Synapsen (Kontaktstellen zwischen Neuronen)
Arten von Nervenzellen • Sensorische Nervenzellenleiten Impulse an das Zentralnervensystem weiter • Interneuronezwischengeschaltete Nervenzellen, die Impulse verarbeiten • Motoneuroneveranlassen willkürliche und unwillkürliche Körperbewegungen
„Datenfluss“ • Informationen werden in Form von Änderungen des Ruhe-potentials weitergeleitet. • Durch das Öffnen von Ionenkanälen in der Zellmembran können Ionen ein- oder ausströmen und so die Ladung der Zelle ändern. • Diese Ladungsänderung wird weitergeleitet und an den Synapsen auf andere Nervenzellen übertragen.
Das künstliche Neuron Verbindung zur nächsten Zelle Dendriten Zelle Axon
Das künstliche Neuron Dendriten Verbindung zur nächsten Zelle Dendriten Zelle Axon
Das künstliche Neuron Dendriten Zelle Verbindung zur nächsten Zelle Dendriten Zelle Axon
Das künstliche Neuron Dendriten Zelle Axon Verbindung zur nächsten Zelle Dendriten Zelle Axon
Das künstliche Neuron Dendriten Zelle Axon Verbindung zur nächsten ZelleOutput Verbindung zur nächsten Zelle Dendriten Zelle Axon
Gewichtung von Neuronen Neuron 1 Gewichtung Neuron 2
Gewichtung von Neuronen Neuron 1 Gewichtung Neuron 2 0.5 2 1 (2 x 0.5)
Aktivierungsfunktionen Neuron 1 xi wi • Summierung (Σ) aller Inputwerte zu „net“ • Anwendung einer Aktivierungsfunktion • Output Summierung aller Inputwerte: net = Σ wixi Aktivierungsfunktion: Verschiede logistische Rechenfunktionen mit dem Wert „net“. Einfachste Funktion: f(net) = net
Aktivierungsfunktionen Lineare Funkion Ändert nichts am Rechenvorgang Schwellwertfunktion „Wenn net kleiner 0, setzte 0“ „Wenn net größer/gleich 0, setzte 1“ Sigmoide Funktion Für Backpropagation-Netze nötig Liefert im Vergleich zur Schwell-wertfunktion ein kontinuierliches Ausgangssignal und ist besser differenzierbar… (dafür aber kompliziert!)
Gewichtung von Neuronen Neuron 1 Neuron 3 Neuron 2
Gewichtung von Neuronen Neuron 1 0,5 2 Neuron 3 bekommt als Input den Wert 3 1 2 Aktivierung mit f(net)=net Neuron 1: 2 x 0,5 = 1 f(1) = 1 Neuron 2: 2 x 1 = 2 f(2) = 2 Neuron 3: 1 + 2 = 3 Neuron 2
Fehlerbehebung… Neuron 1 Gewichtung Neuron 2 0.5 2 4 2 x 0.5 ≠ 4
Fehlerbehebung… Neuron 1 Gewichtung Neuron 2 0.5 2 4 8 8 x 0.5 4
Das XOR-Problem 0 0 1 1 1 1 1 0 0 0 0 1
Das XOR-Problem 0 x 0 + 0 x 0 = 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1
0 0 0 0 Das XOR-Problem 0 x 1 + 0 x 1 = 0 0 0 1 1 1 1 1 0 0 0 0 1
0 0 0 0 0 0 0 0 Das XOR-Problem 0 x 0 + 0 x 1 ≠ 1 0 x 1 + 0 x 0 ≠ 1 0 0 1 1 1 1 1 0 0 0 0 1
1 1 Das XOR-Problem 1 x 1 + 1 x 0 = 1 0 0 1 1 1 1 1 0 0 0 0 1
1 1 1 1 1 1 1 1 Das XOR-Problem 1 x 0 + 1 x 1 = 1 1 x 0 + 1 x 0 = 0 1 x 1 + 1 x 0 = 1 Falsch: 1 x 1 + 1 x 1 ≠ 1 0 0 1 1 1 1 1 0 0 0 0 1
Die Lösung: „Hidden Units“ Output „Versteckte“ Schicht Inputs Im Multilayer (mehrschichtigen) Netzwerk ist jedes Neuron mit allen Neuronen der beiden benachbarten Layer verbunden, mit zwei Ausnahmen: Die Input-Schicht hat keine Vorgänger, und die Output-Schicht hat keine Nachfolger.
Die Lösung: „Hidden Units“ O 1 1 Aktivierungsfunktion mit Benutzung einer Schwellwertfunktion mit der Eigenschaft f(x) = 1 wenn x > 0 | sonst 0 H1 H2 1 1 -1 -1 I1 I2
I1 = 0 und I2 = 0 0 1 1 H1 H2 I1 = 0 I2 = 0 H1 = 1 x 0 + (-1) x 0 = 0 f(0) = 0 H2 = 1 x 0 + (-1) x 0 = 0 f(0) = 0 O = 1 x 0 + 1 x 0 = 0 f(0) = 0 1 1 -1 -1 0 0
I1 = 1 und I2 = 1 0 1 1 H1 H2 I1 = 1 I2 = 1 H1 = 1 x 1 + (-1) x 1 = 0 f(0) = 0 H2 = 1 x 1 + (-1) x 1 = 0 f(0) = 0 O = 1 x 0 + 1 x 0 = 0 f(0) = 0 1 1 -1 -1 1 1
I1 = 0 und I2 = 1 1 1 1 H1 H2 I1 = 0 I2 = 1 H1 = 1 x 0 + (-1) x 1 = -1 f(-1) = 0 H2 = 1 x 1 + (-1) x 0 = 1 f(1) = 1 O = 1 x 0 + 1 x 1 = 1 f(1) = 1 1 1 -1 -1 0 1
I1 = 1 und I2 = 0 1 1 1 H1 H2 I1 = 1 I2 = 0 H1 = 1 x 1 + (-1) x 0 = 1 f(1) = 1 H2 = 1 x 0 + (-1) x 1 = -1 f(-1) = 0 O = 1 x 1 + 1 x 0 = 1 f(1) = 1 1 1 -1 -1 1 0
Mit den „Hidden Units“ lassen sich also „Probleme“ lösen… • Aber wie bringt man ein Netzwerk dazu, diese Lösung zu finden, sie zu lernen und schluss-endlich zu trainieren? • Ein Ansatz: Backpropagation(„Rückfortpflanzung“, Rückwärtsverteilung)
Backpropagation Ein Feedforward Multilayer Perceptron (MLP) • Backpropagation: Ein 1974 von Paul Werbos in seiner Dissertation an der Harvard-Universität entwickeltes Verfahren, das aber erst 1986 durch die Arbeiten von Rumelhart, Hinton und Williams seine Bedeutung erlangte. • Der Trick: Ein Lernalgorithmus minimiert den Fehler zwischen dem berechneten und dem gewünschten Output – und zwar vom Output-Ergebnis aus rückwärts gehend.(„Supervised Learning“ – überwachtes Lernen) …Verbindungen können auch in beide Richtungen vorhanden sein…
Backpropagation • Vorgehensweise des Backpropagation-Verfahrens: • 1. Forwardpropagation (auch Forward Pass) • Berechne ausgehend von gegebenen Input-Werten die Output-Werte… • 2. Backpropagation (auch Backward Pass) • Ermittle den Fehler ausgehend von den erwarteten Werten…(Das ist die Differenz von dem errechneten Wert zu dem gewünschten Wert) • Ändere die Gewichtungen zwischen den Neuronen…(Zelle für Zelle rückwärts gehend, vom Output zu den Hidden Units etc.) • 3. Wiederhole die Phasen, bis der Fehler minimiert ist
Backpropagation • Das Backpropagation-Verfahren beruht auf einem Gradienabstiegsverfahren. • Das Verfahren startet mit einer zufällig gewählten Gewichtung x. • Es wird der Gradient bestimmt und um eine vorgegebene Länge, die Lernrate, „herabgestiegen“. • Die dann erhaltene Gewichtsveränderung liefert den Gewichtsvektor y, in dem wiederum der Gradient bestimmt wird. • Wiederholung, bis ein Fehler-Minimum erreicht ist.
Formelchaos… 1. Berechne ausgehend von gegebenen Input-Werten xi die Output-Werte yi 2. Errechne das Fehlersignal ausgehend von den erwarteten Werten: Falls Neuron j in der Output-Schicht liegt mit der Formel (wobei e der erwartete Output und y der berechnete Output ist) und falls Neuron j ein Hidden-Neuron ist mit der Formel 3. Berechne die Gewichtungsänderungen mit der Formel (wobei yi der berechnete Output von Neuron i, k die Lernrate und das Fehlersignal ist) 4. Wiederholen, bis Fehler minimiert…!
Formelchaos… • Wenn dann als Aktivierungsfunktion die Sigmoide-Funktion gewählt wird, kommt folgende Gleichung heraus: • Dann lassen sich Output-Neuronen j mit der Formel… • …und Hidden-Neuronen mit der Formel • …berechnen.
Zu jedem Eingangswert wird ein Ausgabewert des Netzes errechnet. Mit Hilfe der Fehlerfunktion wird der Fehler des Netzes bestimmt (also die Differenz von tatsächlichem Output zum Soll-Output) Liegt der Fehler oberhalb eines bestimmten Wertes, erfolgt eine Modifikation des Netzes durch den Backward-Pass. Liegt der Fehler unterhalb eines vorgegebenen Wertes, wird die Routine (oder Training) beendet(und gegebenenfalls eine Testphase eingeleitet, um die Generalisierungsfähigkeit zu überprüfen) Im Backward-Pass werden Schritt für Schritt die Verbindungen und deren Gewichtungen zwischen den Neuronen im Backprop-Netz abgeändert. Diese Änderung erfolgt mit Hilfe einer Lernregel, für die der Fehler des Netzes die Grundlage bildet. Der Backward-Pass erfolgt in entgegengesetzter Richtung zum Forward-Pass.Daher spricht man auch von einem Backpropagation-Error, dem rückwärtsverteilten Fehler. Was die Formeln rechnen…
Backpropagation als Form des Lernens • Durch die schrittweise Rückverfolgung des Fehlers könnte das Backpropagation-Verfahren eine Art des „Lernens“ darstellen… • Beispiel 2: • Input: Hand fest auf den heißen Herd pressen Output: Übelst verbrannte Hand! • Fehler: Verletzung und Schmerzen… • Lernregel: „Du sollst dich durch die Welt bewegen, ohne dich ständig zu verletzen“ • Backpropagation: Hand vielleicht nicht so fest auf heißen Herd pressen? • Input: Hand nicht so fest auf heißen Herd pressen Output: Hand noch immer verkohlt! • Fehler: Verletzung und Schmerzen… • Lernregel: „Du sollst dich durch die Welt bewegen, ohne dich ständig zu verletzen…!“ • Backpropagation: Hand vielleicht … (x-Mal abstufbar) … gar nicht auf den Herd legen? • Input: Hand nicht auf Herd pressen Output: Keine Schmerzen, kein Arzt!
Backpropagation als Form des Lernens • Durch die schrittweise Rückverfolgung des Fehlers könnte das Backpropagation-Verfahren eine Art des „Lernens“ darstellen… • Beispiel 1: • Input: In der Stadt 150 km/h gefahren Output: Von der Polizei geblitzt worden! • Fehler: Zu schnell gefahren… • Lernregel: „Du sollst in der Stadt nur 50 km/h fahren“ • Backpropagation: Vielleicht langsamer fahren? Gewichtung im Fuß umverteilen! • Input: In der Stadt 120 km/h gefahren Output: Schon wieder geblitzt worden! • Fehler: Zu schnell gefahren… • Lernregel: „Du sollst in der Stadt nur 50 km/h fahren“ • Backpropagation: Vielleicht langsamer fahren? Gewichtung im Fuß umverteilen! • … • Input: In der Stadt 50 km/h fahren Output: Kein Knöllchen!