10. Neuronale Netze 1

Ähnliche Dokumente
11. Neuronale Netze 1

10. Neuronale Netze 1

Datenorientierte SA. Aufbau und Grundlagen. Aufbau und Grundlagen. Aufbau und Grundlagen. Was sind neuronale Netze?

Der Backpropagation-Algorithmus als Beispiel für Lernalgorithmen künstlicher neuronaler Netze Reinhard Eck 1

Wissensentdeckung in Datenbanken

Neuronale Netze. Anna Wallner. 15. Mai 2007

Proseminar Machine Learning. Neuronale Netze: mehrschichtige Perzeptrone. Christina Schmiedl Betreuer: Christian Spieth, Andreas Dräger

Grundlagen neuronaler Netzwerke

Konzepte der AI Neuronale Netze

Aufbau und Beschreibung Neuronaler Netzwerke

Hannah Wester Juan Jose Gonzalez

Praktische Optimierung

Künstliche neuronale Netze

BACKPROPAGATION & FEED-FORWARD DAS MULTILAYER PERZEPTRON

Neuronale. Netze. Henrik Voigt. Neuronale. Netze in der Biologie Aufbau Funktion. Neuronale. Aufbau Netzarten und Topologien

Mustererkennung: Neuronale Netze. D. Schlesinger ()Mustererkennung: Neuronale Netze 1 / 12

Adaptive Systeme. Mehrere Neuronen, Assoziative Speicher und Mustererkennung. Prof. Dr. rer. nat. Nikolaus Wulff

Künstliche Neuronale Netze

Wissensentdeckung in Datenbanken

Thema 3: Radiale Basisfunktionen und RBF- Netze

Künstliche Neuronale Netze

Neuronale Netze (Konnektionismus) Einführung in die KI. Beispiel-Aufgabe: Schrifterkennung. Biologisches Vorbild. Neuronale Netze.

Wir haben in den vorherigen Kapiteln verschiedene Verfahren zur Regression und Klassifikation kennengelernt (z.b. lineare Regression, SVMs)

Lernverfahren von Künstlichen Neuronalen Netzwerken

Neuronale Netze. Christian Böhm.

Neural Networks: Architectures and Applications for NLP

Rekurrente / rückgekoppelte neuronale Netzwerke

Neuronale Netze in der Phonetik: Feed-Forward Netze. Pfitzinger, Reichel IPSK, LMU München {hpt 14.

Neuronale Netze (Konnektionismus)

Maschinelles Lernen: Neuronale Netze. Ideen der Informatik

Einführung in die Computerlinguistik

Grundlagen zu neuronalen Netzen. Kristina Tesch

Intelligente Algorithmen Einführung in die Technologie

Künstliche Neuronale Netze

3. Lineare Ausgleichsrechnung

Technische Universität Berlin Fakultät IV Elektrotechnik und Informatik. 8. Aufgabenblatt

kurze Wiederholung der letzten Stunde: Neuronale Netze Dipl.-Inform. Martin Lösch (0721) Dipl.-Inform.

Neuroinformatik. Übung 1

6.4 Neuronale Netze zur Verarbeitung von Zeitreihen

Neuronale Netze. Gehirn: ca Neuronen. stark vernetzt. Schaltzeit ca. 1 ms (relativ langsam, vgl. Prozessor)

MULTILAYER-PERZEPTRON

(hoffentlich kurze) Einführung: Neuronale Netze. Dipl.-Inform. Martin Lösch. (0721) Dipl.-Inform.

Wie fängt eine Eule eine Maus in der Nacht: eine biologisch motivierte Simulation

Maschinelles Lernen: Neuronale Netze. Ideen der Informatik Kurt Mehlhorn

Computational Intelligence 1 / 20. Computational Intelligence Künstliche Neuronale Netze Perzeptron 3 / 20

Einführung in neuronale Netze

Klassifikation linear separierbarer Probleme

Einige überwachte Lernverfahren. Perzeptron, Mehrschicht-Perzeptronen und die Backpropagation-Lernregel

Perzeptronen. Katrin Dust, Felix Oppermann Universität Oldenburg, FK II - Department für Informatik Vortrag im Rahmen des Proseminars 2004

Was bisher geschah Künstliche Neuronen: Mathematisches Modell und Funktionen: Eingabe-, Aktivierungs- Ausgabefunktion Boolesche oder reelle Ein-und

Was bisher geschah. Lernen: überwachtes Lernen. biologisches Vorbild neuronaler Netze: unüberwachtes Lernen

Was sind Neuronale Netze?

Praktikum Simulationstechnik Rene Schneider, Benjamin Zaiser

Einführung in die Neuroinformatik Lösungen zum 5. Aufgabenblatt

auch: Konnektionismus; subsymbolische Wissensverarbeitung

Perzeptronen. Lehrstuhl für Künstliche Intelligenz Institut für Informatik Friedrich-Alexander-Universität Erlangen-Nürnberg

kurze Wiederholung der letzten Stunde: Neuronale Netze Dipl.-Inform. Martin Lösch (0721) Dipl.-Inform.

Neuronale Netze mit mehreren Schichten

Andreas Scherer. Neuronale Netze. Grundlagen und Anwendungen. vieweg

Statistical Learning

Ein selbstmodellierendes System für die Wasserwirtschaft

6.2 Feed-Forward Netze

5. Lernregeln für neuronale Netze

Universität Leipzig. Fakultät für Mathematik und Informatik. Forschungsseminar Deep Learning. Prof. Dr. Erhard Rahm. Wintersemester 2017/18

Maschinelles Lernen: Neuronale Netze. Ideen der Informatik Kurt Mehlhorn

Rekurrente Neuronale Netze

Der Sprung in die Zukunft! Einführung in neuronale Netzwerke

2.4.4 Die Fraktale Dimension

DEEP LEARNING MACHINE LEARNING WITH DEEP NEURAL NETWORKS 8. NOVEMBER 2016, SEBASTIAN LEMBCKE

Adaptive Systeme. Neuronale Netze: Neuronen, Perzeptron und Adaline. Prof. Dr. rer. nat. Nikolaus Wulff

Radiale-Basisfunktionen-Netze. Rudolf Kruse Neuronale Netze 120

Können neuronale Netze Vorhersagen treffen? Eine Anwendung aus der Stahlindustrie

Objekt Attributwerte Klassifizierung X Y

Ausgleichsproblem. Definition (1.0.3)

Klassifikationsverfahren und Neuronale Netze

7. Vorlesung Neuronale Netze

Neuronale Netze I. Proseminar Data Mining Florian Zipperle Fakultät für Informatik Technische Universität München

Künstliche neuronale Netze

Konvergenz von Hopfield-Netzen

Klausur Modellbildung und Simulation (Prof. Bungartz) SS 2007 Seite 1/7

Praktikum Computational Intelligence 2 Ulrich Lehmann, Johannes Brenig, Michael Schneider

Wir haben in den vorherigen Kapiteln verschiedene Verfahren zur Regression und Klassifikation kennengelernt (z.b. lineare Regression, SVMs)

Kurvenanpassung mit dem SOLVER

KNN für XOR-Funktion. 6. April 2009

Einführung in Neuronale Netze

Universität Klagenfurt

Adaptive Systeme. Neuronale Netze: der Backward Propagation Algorithmus. Prof. Dr. rer. nat. Nikolaus Wulff

Computational Intelligence I Künstliche Neuronale Netze

Universität des Saarlandes

Nichtlineare Klassifikatoren

Aufgabe 1 Probabilistische Inferenz

Teil III: Wissensrepräsentation und Inferenz. Kap.5: Neuronale Netze

Lernregeln. Künstliche neuronale Netze. Professur Psychologie digitaler Lernmedien. Institut für Medienforschung Philosophische Fakultät

Einführung in. Neuronale Netze

Gliederung. Biologische Motivation Künstliche neuronale Netzwerke. Anwendungsbeispiele Zusammenfassung. Das Perzeptron

Neuronale Netze. Einführung i.d. Wissensverarbeitung 2 VO UE SS Institut für Signalverarbeitung und Sprachkommunikation

Faltungsnetzwerke. (Convolutional Neural Networks) Maximilian Schmidt. Faltungsnetzwerke

Implementationsaspekte

Transkript:

10. 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 probabilistischen 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) Ein Neuronales Netz besteht aus verbundenen Neuronen (ca. 10 10 10 11 Neuronen bei einem Menschen mit ca. 10 14 10 15 Verbindungen). Abbildung aus Wikipedia: https:// de.wikipedia.org/wiki/neuronales Netz 4

Einführung (4) Ein Neuron hat Dendriten, die die Eingaben einsammeln Soma, der Zellkörper Axon, welches die Ausgabe der Zelle weiterleitet, sich verzweigt und mit den Dendriten nachfolgender Neuronen über Synapsen in Kontakt tritt. Synapsen schütten Neurotransmitter aus, die anregend oder dämpfend wirken. 5

Einführung (5) Ein Modell eines Neurons: Eingabe X 1 ω 1j Übertragungsfunktion Aktivierungsfunktion Ausgabefunktion Ausgabe X i ω ij f prop net f act a f out o j j j X n ω nj Schwellwert Gewichte Die Ausgabe führt zur Ausschüttung von Neurotransmittern und damit zu einer Eingabe der nachfolgenden Zellen bzw. Neuronen. In den Aktivitäten der Neuronen ist die Information codiert. 6

Einführung (6) Vereinfacht: Ein Neuron i mit n Eingängen (Dendriten) bekommt einen Gesamtinput von net i und erhält damit einem Aktivitätswert a i. Daraus folgt ein Ausgangswert o i (Axon), der über eine synaptische Koppelung w i,j an das Neuron j koppelt. net i a i net j o w i i,j o a j j Neuronale Netze waren für längere Zeit auf Grund der Lernprobleme aus der Mode gekommen. Seit ca. 2005 erleben neuronale Netzwerke eine Wiedergeburt, da sie bei herausfordernden Anwendungen oft bessere Ergebnisse als konkurrierende Verfahren liefern. 7

Einführung (7) Eine andere Sichtweise auf Neuronale Netze besteht darin, dass es sich schlicht und einfach um eine Darstellung eines Rechengraphen handelt, bei dem sich auf bestimmte Operationen beschränkt wurde, die anschließend nicht explizit notiert wurden. Zwei Beispiele von Rechengraphen x z x y a dot o + σ b x y z 8

Einführung (8) 1. Klassische künstliche Neuronale Netze Grundlage sind biologische Neuronen, jedoch in einer starken Vereinfachung, so dass sie mathematisch einfach und schnell zu behandeln sind. Heute werden sogenannte tiefe Netze (deep neural networks) verwendet, bei denen Neuronen über viele Schichten verbunden sind (siehe z.b. www.deeplearning.net/). Sie werden z.b. von Google, Apple, Facebook, NSA, BND und vielen anderen verwendet z.b. zur Bild- und Spracherkennung, in der Robotik, für Optimierungsprobleme usw. Fast täglich gibt es neue Meldungen über neue Anwendungen. 9

Einführung (9) Anwendungsgebiete nach Wikipedia (Stand 2016): Regelung und Analyse von komplexen Prozessen Frühwarnsysteme Optimierung Zeitreihenanalyse (Wetter, Aktien etc.) Sprachgenerierung 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 10

Einführung (10) Weitere aktuelle Anwendungsbeispiele (2016) Mit zwei tiefen Netzen, eins für die Vorhersage guter Züge und eins für den Wert einer Stellung, ist es im März 2016 gelungen, einen Go-Meister zu schlagen. Hardware: 1202 CPUs mit 176 GPUs. Facebook sagt, das neue System Deep Text versteht Texte genauso gut wie Menschen. Google Photo oder die Translater-App, auf Clustern trainiert, laufen jetzt auf dem Smartphone. Immer mehr Firmen entwickeln Empathiemodule. Google hat gerade für Neuronale Netze eine Tensor Processing Unit (TPU) entwickelt. In der MKL (Mathematical Kernel Library) von Intel gibt es jetzt ein Modul DNN (Deep Neural Network). 11

Einführung (11) 2. Neuronale Netze, nahe an der Biologie Größtes Beispiel in der EU: Das Human Brain Project https://www.humanbrainproject.eu/de Gestartet in 2013, Fördersumme 1,2 Milliarden Euro 6 Segmente: Neuroinformatik, Medizinische Informatik, Gehirnsimulation, Supercomputing, Neuronales Rechnen und Neurorobotik. Beispiel BrainScaleS-System, Heidelberg. 20 Silizium-Wafer mit je knapp 200.000 Neuronen, ca. 58 Millionen Synapsen. 12

Einführung (12) Beispiel SpiNNaker-Projekt, Manchester. 1.036.800 Arm9-Kerne Jeder Kern simuliert Neuronen und 6 Synapsen. http://apt.cs.manchester.ac.uk/projects/spinnaker/ In Betriebnahme 11.2018. Parallele Kommunikationsarchitektur, dem Gehirns nachgebildet. Der Computer verteilt Millionen kleiner Informationspakete gleichzeitig. Unabhängig von diesem Projekt gibt es jede Menge kleine Arbeiten, z.b. unsere hier. Im folgenden werden diese Projekte nicht weiter betrachtet. 13

Mathematisches Modell (1) Mathematisches Modell von neuronalen Netzen Die klassischen künstlichen Neuronalen Netze vereinfachen das biologische Vorbild so stark, dass viele biologische Eigenschaften verloren gehen, aber die Grundidee erhalten bleibt und eine schnelle Berechnung möglich ist. Mathematisch heißt das, der Weg von der Eingabe eines Neurons zur Eingabe des damit verbundenen Neurons wird durch sehr einfache Funktionen beschrieben. 14

Mathematisches Modell (2) Ein künstliches neuronales Netz besteht aus folgenden Komponenten 1. Neuronen mit einem Aktivierungszustand a i (t) zum Zeitpunkt t. 2. Eine Aktivierungsfunktion f act, die angibt, wie sich die Aktivierung in Abhängigkeit der alten Aktivierung a i (t), des Inputs net i und eines Schwellwerts Θ i mit der Zeit ändert. a i (t+1) = f act (a i (t),net i (t),θ i ). 3. Eine Ausgabefunktion f out, die aus der Aktivierung des Neurons den Output berechnet o i = f out (a i ). 15

Mathematisches Modell (3) 4. Ein Verbindungsnetzwerk mit den Koppelungen w i,j (Gewichtsmatrix). 5. Eine Propagierungsfunktion, die angibt, wie sich die Netzeingabe aus den Ausgaben der anderen Neuronen berechnet, meist einfach net j (t) = i o i (t)w i,j 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. 16

Mathematisches Modell (4) In vielen Anwendungen wird die Zeitabhängigkeit, z.b. bei der Objekterkennung weggelassen und es werden ganz einfache Funktionen verwendet: Die Ausgabefunktion ist einfach Propagierungsfunktion lautet o j = f out (a j ) = a j net j = i o i w i,j Die Ausgabe berechnet sich dann über o j = a j = f act (net j,θ j ) 17

wobei für f act eine Stufenfunktion, der Tangens Hyperbolicus, die logistische Funktion oder zur Zeit besonders die ReLU-Funktion (rectified linear unit) populär sind.

Mathematisches Modell (5) Stufenfunktion: o j = f act (net j,θ j ) == { 1 falls netj Θ j 0 sonst Tangens Hyperbolicus o i = tanh(c(net i Θ i )). Logistische Funktion oder Sigmoidfunktion o i = 1/(1+exp( c(net i Θ i ))) Die Konstante c beeinflusst die Steigung der Funktionen. 18

Mathematisches Modell (6) Aktivierungsfunktionen 1.5 1 Stufenfunktion Tangens Hyperbolicus Logistische Funktion 0.5 output 0-0.5-1 -1-0.5 0 0.5 1 1.5 2 2.5 3 input Hier wurde c = 5 und Θ = 1 verwendet. Meist wird aber c = 1 gesetzt. 19

Mathematisches Modell (7) Die ReLU-Funktion, oder leaky ReLU-Funktion ist einfach 1.4 1.2 Aktivierungsfunktion Leaky ReLU f(x) = x if x > 0 a otherwise output 1 0.8 0.6 0.4 0.2 0-0.2-1.5-1 -0.5 0 0.5 1 1.5 input Hier wurde a = 0.02 und Θ = 0 verwendet. Die Funktion ist absolut unbiologisch, aber sie funktioniert häufig sehr gut, z.b. bei Netzen zur Objekterkennung, und ist extrem schnell zu berechnen! 20

Mathematisches Modell (8) Beispiel: Ein nettes kleines bekanntes Netz mit wenigen Verbindungen und welches im Kopf nachzurechnen ist, ist das XOR-Netzwerk mit 4 Neuronen. n4 0.5 1-2 n3 1.5 1 1 1 Die Neuronen beinhalten die Schwellwerte, die Verbindungen sind mit den Gewichten beschriftet. n1 n2 Als Aktivitätsfunktion bzw. für die Ausgabe wird eine Stufenfunktion gewählt 21

Mathematisches Modell (9) Weiterhin wird die standardmäßige Propagierungsfunktion verwendet net j = i o i w i,j also gilt o j = { 1 falls io i w i,j Θ j 0 sonst. Aus der folgenden Tabelle ist die Funktionsweise des Netzes ersichtlich: o 1 o 2 net 3 Θ 3 o 3 net 4 Θ 4 o 4 0 0 0 1.5 0 0 0.5 0 0 1 1 1.5 0 1 0.5 1 1 0 1 1.5 0 1 0.5 1 1 1 2 1.5 1 0 0.5 0 22

Mathematisches Modell (10) 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 n4 0.5 1-1 -1 1 n1 n2 Eine kleine Übungsaufgabe: Wie sieht die zugehörige Tabelle von Eingabe zur Ausgabe aus? 23

Mathematisches Modell (11) Eingabeschicht: o 1,o 2 Aktivierungsfunktion: tanh(x) net 1 = o 1 w 11 +o 2 w 21 +Θ 1 n_o w_1o θ_ο net 2 = o 1 w 12 +o 2 w 22 +Θ 2 o 1 = tanh(net 1) n_1 θ_1 n_2 o 2 = tanh(net 2) net o = o 1 w 1o +o 2 w w_11 2o +Θ o o o = tanh(net o ) n_1 n_2 w_2o θ_2 w_12 w_21 w_22 Insgesamt ergibt sich die Funktion o o = tanh( ( tanh(o 1 w 11 +o 2 w 21 +Θ 1 ) w 1o + ( tanh(o 1 w 12 +o 2 w 22 +Θ 2 ) w 2o + Θ o Aufgabe des Lernens : Bestimmung der 9 Parameter w 11,w 12,w 21,w 22, w 1o,w 2o,Θ 1,Θ 2,Θ o, so dass sich für alle möglichen Werten o 1,o 2 die gewünschten o o ergeben. 24

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 Matrizen oder allgemeiner aus Feldern mit mehreren Indices oder Tensoren: Verbindungsmatrix w[ebene][ausgangsneuron][eingangsneuron] Schwellwertmatrix Θ[Ebene][N euron] Eingangsmatrix net[[ebene][n euron] Rechnungen erfolgen durch Neuberechnung der Ausgabematrix o[ebene][n euron]. Oft kommt bei ein weiterer Index für das Eingabemuster hinzu. 25

Darstellung von neuronalen Netzen (2) Tensoren: Tensoren sind Größen aus der linearen Algebra, um Objekte aus der linearen Algebra in ein einheitliches Schema einzuordnen. Tensoren haben Indizes. Die Anzahl der Indizes gibt den Rang oder die Stufe des Tensors an. Tensoren nullter Stufe sind Skalare Tensoren erster Stufe sind Vektoren Tensoren zweiter Stufe sind Matrizen Neuronale Netze werden durch Tensoren beschrieben, deshalb nennt Google seine Softwarebibliothek Tensorflow und seinen Spezialprozessor Tensorprozessor. Arten von Verbindungsnetzwerken: Je nach Netztopologie und der Art der Verarbeitung der Aktivitätswerte werden verschiedene neuronale Netze unterschieden. 26

Darstellung von neuronalen Netzen (3) 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, zurück zu Eingabeknoten), Netze mit indirekter Rückkopplung (indirect feedback, zurück zu Zwischenknoten), Netze mit Rückkopplung innerhalb einer Schicht (lateral feedback), Vollständig verbundene Netze (lateral feedback). 27

Darstellung von neuronalen Netzen (4) 2 Beispiel-Topologien und ihre Verbindungsmatrizen: 6 7 6 7 3 4 5 3 4 5 1 2 feedforward, ebenenweise verbunden 1 2 vollständig verbunden, ohne direkte Rückkopplung 28

Darstellung von neuronalen Netzen (5) Zwei zur Zeit häufig angewendete Architekturen Feedforward Networks (FFN), meist in der Form sogenannter Multilayer Perceptrons (MLP) oder in der Form von Convolution Neural Networks (CNN) (Faltungsnetze, überlappende Teilbereiche), z.b. in der Bildverarbeitung. Rekurrent Neuronal Networks (RNN), also solche mit Rückwärtsverbindungen, z.b. in der Form von Long Short Term Memory Networks (LSTM) für handgeschriebene Texte oder in der Spracherkennung. Diese Architekturen und deren Anwendung werden in den letzten Jahren fast überall diskutiert, z.b. seit ein paar Jahren auch in Zeitschriften wie C t 29

Darstellung von neuronalen Netzen (6) Beispiel eines feedforward Netzes, ein multiplayer Perceptron für eine Klassifizierung: Eingabe x 1 ω 11 x i ω 1i Ausgabe o 1 Eingabe z.b. Pixel eines Bildes (Gesicht, Zahl, Tier... x n ω 1n o m Ausgabe ein Neuron pro Name, pro Zahl, Art des Tiers... 30

Darstellung von neuronalen Netzen (7) Das Schöne an einem solchen Netz ist folgendes: Wenn die Parameter, also die Gewichte w i,j und die Schwellwerte Θ i gut bestimmt wurden, gilt: kleine Änderungen des Netzes (Verbindungen defekt) oder kleine Eingabeänderungen (Bild verrauscht) kleine Änderung der Ausgabewerte Bild wird höchst wahrscheinlich trotzdem erkannt, da das gleiche Neuron den größten Wert haben wird. 31

Lernen (1) Wie werden gute Parameter bestimmt oder woher weiß ein Netz, welches Neuron bei welchem Bild aktiv sein soll? 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 Neuronen 7. Löschen von Neuronen 32

Lernen (2) Lernverfahren Meist wird die Modifikation der Stärke von Verbindungen w i,j verwendet, da diese Verfahren am einfachsten sind und die Entwicklung bzw. das Löschen von Verbindungen mit eingeschlossen werden kann. 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. 33

Lernen (3) Hebbsche Lernregel Die einfachste Lernregel, die heute noch Grundlage der meisten Lernregeln ist, wurde 1949 von Donald O.Hebb entwickelt. Wenn Neuron j eine Eingabe von Neuron i erhält und beide gleichzeitig stark aktiviert sind, dann erhöhe das Gewicht w ij, die Stärke der Verbindung von i nach j. w ij = ηo i a j Die Konstante η wird als Lernrate bezeichnet. Verallgemeinert lautet die Hebbsche Regel w ij = ηh(o i,w ij )g(a j,t j ) t j ist die erwartete Aktivierung (teaching input), ein Parameter der Funktion g. Fast alle Lernregeln sind Spezialisierungen der Funktionen h und g. 34

Perzeptron (1) Im folgenden werden wir uns aus Zeitgründen nur eine Art von Netz mit einer Lernregel genauer ansehen, ein feedforward Netz in der Art des multiplayer Perzeptrons mit der Backpropagation-Lernregel. 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 Netze z.b. in der Steuerung autonomer Fahrzeuge eingesetzt. Ausgabeneuron (Lenkung) Eingabeneuronen (Straßenbild+entfernungen) 35

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 feedforward- Netz mit keiner oder einer verborgenen Schicht verwendet. 36

Backpropagation-Regel (1) Gegeben sind Eingabewerte, z.b. der MNIST-Datensatz mit 60000 Bilder der Größe 28x28 Pixel, auf denen handgeschriebene Ziffern abgebildet sind, ein Standard-Benchmark für Neuronale Netze. Das ergeben 784 Eingabeknoten und 10 Ausgabeknoten, für jede Ziffer einer. Ziel ist es, für ein gegebenes Bild p die Funktionen, die die Ausgabe o p des Netzes berechnen, so zu bestimmen, dass z.b. nur der Knoten, der der dem Bild entsprechenden Ziffer zugeordnet ist, einen Wert 1 hat und alle anderen Ausgabeknoten einen Wert 0 haben, was dann die gewünschten Ausgabewerte t p für dieses Bild wären (es gibt auch andere Zuordnungen). http://yann.lecun.com/exdb/mnist/ 37

Backpropagation-Regel (2) Ein Maß für die Abweichung des berechneten von dem gewünschten Ergebnis ist die Summe der quadratischen Abweichungen über alle Bilder p und alle Ausgabeneuronen j: das Fehlerfunktional E = P p=1e p E p = 1 2 n out j ( op,j t p,j ) 2 Die Funktionen, die die Ausgaben o p,j berechnen, hängen von den Gewichten der Verbindungen zwischen den Knoten und den Schwellwerten der einzelnen Knoten ab. Backpropagation ist ein Gradientenabstiegsverfahren, bei dem die Gewichte und Schwellwerte so geändert werden, dass das Fehlerfunktional (oder die Energiefunktion) minimiert wird. 38

Backpropagation-Regel (3) Numerik bei mir: lineare Ausgleichsrechnung Definition (Ausgleichsproblem) Gegeben sind n Wertepaare (x i,y i ), i = 1,...,n mit x i x j für i 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(x i ) y i für i = 1,...,n. 39

Backpropagation-Regel (4) Numerik bei mir: lineare Ausgleichsrechnung Statistik, 3. Semester: Methode der kleinsten Quadrate Definition (Fehlerfunktional) Gegeben sei eine Menge F von stetigen Funktionen sowie n Wertepaare (x i,y i ), i = 1,...,n. Ein Element von f F heißt Ausgleichsfunktion von F zu den gegebenen Wertepaaren, falls das Fehlerfunktional E(f) = n i=1 (f(x i ) y i ) 2 für f minimal wird, d.h. E(f) = min{e(g) g F}. Die Menge F nennt man auch die Menge der Ansatzfunktionen. Es werden also die Parameter der Funktion f(x) so bestimmt, so dass die Funktion möglichst dicht an den Punkten liegt. 40

Backpropagation-Regel (4) Ist die Funktion f(x i ) linear in den Parametern, also f(x) = p k=1 a kg k (x), so lässt sich das Minimum des Fehlerfunktionals über die Nullstelle der Ableitungen von E(f) durch Lösen einer linearen Gleichung für die Parameter a k bestimmen. Jetzt: Jedem x-wert entspricht einem Satz von Eingabewerten bzw. ein Eingabe- Pattern in p,i mit i 1 n in Werten. Jedem y-wert entspricht einem Satz von Ausgabewerten bzw. Ausgabe- Pattern t p,j mit j 1 n out 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: f i,j (in p,i,w i,j ) = o p,j. 41

Backpropagation-Regel (5) Dann lautet das Fehlerfunktional, die Summe der quadratischen Abweichungen anstatt jetzt E = n i=1 E i E i = (f(x i ) y i ) 2 n out ( op,j t p,j ) 2 E = p E p E p = 1 2 j Gesucht in dem nicht-linearen Ausgleichsproblem: das Minimum von E als Funktion der nicht-linearen Parameter. Hinweis: Häufig werden auch andere Fehlerfunktion verwendet. Das Minimum kann nicht exakt bestimmt werden, sondern es wird gesucht, in dem z.b. die Parameter entlang der negativen Steigung des Fehlerfunktionals geändert wird Backpropagation oder Gradientenabstiegsverfahren. 42

Backpropagation-Regel (6) 8 Fehlerfunktion fuer ein Gewicht w i,j 7 6 5 error 4 3 2 1 0 0 2 4 6 8 10 12 14 16 w i,j Die Aufgabe ist es ein möglichst gutes Minimum zu finden. Problem: Das funktioniert nur gut, wenn die Startwerte in der Nähe eines guten Minimums sind. 43

Backpropagation-Regel (7) Vor der Ableitung des Algorithmus ist eine Vereinheitlichung der Notation von Vorteil: Der Schwellwert-Wert eines Knotens wird interpretiert als eine Verbindung zu dem Knoten von einem Konten mit dem Ausgabewert 1 und einem Gewicht. Mit w n+1,j = Θ j und o n+1 = 1 gilt n i=1 o i w i,j Θ j = n+1 i=1 o i w i,j net j (t) 44

Backpropagation-Regel (8) Der Backpropagation-Algorithmus ändert die Gewichte w i,j von einem Knoten i zu einem Knoten j entlang des negativen Gradienten der Fehlerfunktion, bis diese (hoffentlich) minimal ist. w ij = η p E p w ij. Zur Berechnung der Ableitungen nochmal die Formal für das XOR- Problem mit 2 versteckten Knoten (Schwellwerte werden Bias- Konten und die Aktivierungsfunktion f act (x) = tanh(x) wird allgemein geschrieben). Eingabeschicht: o 1,o 2 net 1 = o 1 w 11 +o 2 w 21 +w 31 net 2 = o 1 w 12 +o 2 w 22 +w 23 o 1 = f act(net 1 ) o 2 = f act(net 2 ) net o = o 1 w 1o +o 2 w 2o +w 3o o o = f act (net o ) 45

Backpropagation-Regel (8) Zerlege die Ableitung des Fehlerfunktionals nach den Gewichten in einzelne Schritte: Ableitung nach den Gewichten zur Ausgabeschicht: Der Fehler hängt ab o o, das wiederum von net o, das wiederum von w io ab. Ableitung nach den Gewichten zur verdeckten Schicht: Der Fehler hängt ab o o, das wiederum von net o, das wiederum von o 1,o 2, das wiederum von net 1,net 2 und das von w i1 Verwende die Kettenregel, zuerst für den letzten Schritt: E p w ij = E p net pj net pj w ij. 46

Backpropagation-Regel (8) Der erste Faktor wird als Fehlersignal bezeichnet und der zweite Faktor ist δ pj = E p net pj net pj w ij = w ij k o pk w kj = o pi. Die Änderung der Gewichte berechnet sich dann durch w ij = η p o pi δ pj Bei der Berechnung von δ pj geht die konkrete Aktivierungsfunktion ein, also wie das Neuron j den Input in einen Output verwandelt. δ pj = E p net pj = E p o pj o pj net pj = E p o pj f act (net pj ) net pj = E p o pj f act(net pj ). 47

Backpropagation-Regel (9) Für den ersten Faktor muss zwischen den Ebenen, in denen sich die Knoten befinden, unterschieden werden. 1. j ist Index eines Ausgabeneurons. Dann gilt E p o pj = 1 2 o pj n out Der Gesamtfehler ist in diesem Fall k ( op,k t p,k ) 2 = (tpj o oj ). δ pj = f act (net pj) (t pj o oj ) 2. j ist Index eines Neurons der verdeckten Ebenen. Die Fehlerfunktion hängt von den Output o j indirekt über die Zwischenzellen k ab, denn der Output o j geht in den Input net pk von allen Knoten k eine Schicht höher ein. 48

Backpropagation-Regel (10) E p = o pj k = k E p net pk net pk o pj δ pk o pj i o pi w ik = k δ pk w jk Das bedeutet, dass man den Gesamtfehler des Neurons 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 = f act(net pj ) δ pk w jk Zusammengefasst w i,j = η p o p,i f act(net pj ) k (t pj o oj ) falls j Ausgabeneuron kδ pk w jk falls j verdecktes Neuron 49

Backpropagation-Regel (11) Meist wird als Aktivierungsfunktion die logistische Funktion verwendet mit der Ableitung d dx f log(x) = d dx 1 1+e x = f log(x) (1 f log (x)) Damit ergibt sich eine vereinfachte Formel für den Backpropagation Algorithmus mit dem Fehlersignal p w ij = ηo pi δ pj δ pj = { opj (1 o pj )(t pj o pj ) falls j Ausgabeneuron o pj (1 o pj ) kδ pk w jk falls j verdecktes Neuron } 50

Backpropagation-Regel (12) Beispiel: Netz mit 3 Ausgabeknoten n 1,n 2 und n 3 n1 n2 n3 W 42 n4 W 74 n7 w 4j = ηo 4 δ j = ηo 4 (t j o j ) f (net j ), j = 1,2,3 w 74 = ηo 7 δ 4 = ηo 7 ( 3 j=1 δ j w 4j )f (net 4 ) 51

Backpropagation-Regel (13) Das Verfahren zusammengefasst 1. Berechne bei einem gegebenem Input den Output oder Propagierung ein Signales über die Schichten: Die Ausgaben der Neuronen i (oder die Werte der Inputneuron i) einer Schicht werden an die Eingaben der Knoten j der nächsten Schicht weitergeleitet über net j (t) = n+1 i=1 o i w i,j Die Knoten j berechnen die Ausgabe, die eventuell an die nächste Schicht weiter geleitet wird, über o j = f act (net j ) Ist man an der Ausgabeschicht angekommen, überprüfe, ob das Eingabesignal erkannt wird, also berechne den Fehler bzw. das Fehlerfunktional. 52

Backpropagation-Regel (14) 2. Ist der Fehler zu groß, führe eine Rückpropagierung durch. Berechne das Fehlersignal, von der Ausgabeschicht beginnend rückwärts bis zur Eingabeschicht. Berechne die Korrektur der Gewichte gemäß p w ij = ηo pi δ pj 3. Beginne mit der Prozedur von vorne, bis der Fehler (hoffentlich) klein geworden ist, also die Eingaben gelernt wurden. 53

Backpropagation-Regel (15) Das Beispiel vom Anfang: o o = tanh( ( tanh(o 1 w 11 +o 2 w 21 +Θ 1 ) w 1o + ( tanh(o 1 w 12 +o 2 w 22 +Θ 2 ) w 2o +Θ o Ableitung der Aktivierungsfunktion: tanh = (1 tanh 2 ) Fehler bei der Ausgabe: t o o o Fehlersignal am Ausgabeknoten n o : δ o = (1 o 2 o )(t o o o ) Korrektur der Gewichte vom verdeckten Konten n i zum Ausgabeknoten n o : w i,o = ηo i δ o Fehler beim verdeckten Knoten n j : δ o w j,o Fehlersignal am verdeckten Knoten n j : δ j = (1 o 2 j )δ ow j,o Korrektur der Gewichte vom Eingangkonten n i zum verdeckten Knoten n j : w i,j = ηo i δ j 54

Backpropagation-Regel (16) Probleme: a) Bei zu kleinen Lernraten geht der Algorithmus nicht über das lokale Minimum hinaus. b) Kleine Gradienten wie bei Plateaus sorgen für eine erhebliche Mehrzahl an notwendigen Iterationsschritten. c) Ungeeignete Wahl einer Lernrate bei zu großen Gradienten bewirkt Oszillation des Lernprozesses d) oder unter Umständen ein Überspringen des globalen Minimums hin zu einem lokalen. 55

Backpropagation-Regel (17) Noch zu beachten: Werden für jede Eingabe einzeln neue Gewichte berechnet, spricht man von online-learning. Werden erst die Fehler für alle Eingaben aufsummeriert (so wie in der Herleitung), heißt das batch-learning. Meist werden die Fehler für Blöcke von Eingaben und damit Korrekturen für die Gewichte berechnet. Für die Initialisierung der Gewichte gibt es verschiedene Methoden, am einfachsten sind gleichverteilte oder Gauß-verteilte Zufallszahlen. Die Lernrate sollte kleiner werden mit kleiner werdendem Fehler.... und vieles mehr. 56

CNN (1) Neben den Multilayer Perceptrons sind heute die meist verwendeten Netze Faltungsnetze bzw. Convolution Neural Networks (CNN). Die meisten Daten liegen in Gittern vor (Bilder bei der Bilderkennung, 2 Dimensionen, Pixel, oder Töne bei der Spracherkennung, diskrete Zeitabstände, Frequenzen, 1 Dimension) Die Daten sind translationsinvariant, d.h. eine Katze unten rechts im Bild muss genauso erkannt werden wie oben links im Bild. Ein Gesamtbild setzt sich aus lauter benachbarten Einzelteilen zusammen, mehrere benachbarte Töne werden zu einem Wort, mehrere benachbarte Ausschnitte eines Bildes werden zu einem Objekt. 57

CNN (2) Idee: Betrachte nicht von einem Punkt (Neuron) Verbindungen zu allen anderen (Neuronen der darüber liegenden Schicht), sondern nur lokale Gruppen. Verwende die gleiche Gewichtsmatrix von allen Punkten aus (Faltung) a b c a b c a b c a b c a b c 58

CNN (3) Die Gewichtsmatrizen werden als Filter oder Kernel bezeichnet und es werden mehrere unterschiedliche Filter verwendet, die jeweils zu einer eigenen darüber liegenden Schicht führen. 2 6 3 8 a b 1 5 5 3 7 2*a+6*b+ 1*c+5*d 1 5 2 6*a+3*b+ 5*c+5*d 3*a+8*b+ 5*c+5*d c d 4 3 Eingangsbild, ein 2 2 CNN- Kernels mit den Parametern a,b,c,d, die gelernt werden. 3 2 Ausgaben. 1*a+5*b+ 3*c+7*d 5*a+5*b+ 7*c+1*d 5*a+5*b+ 1*c+2*d 59

CNN (4) Werden mehrere dieser Faltungsschichten hintereinander gehängt, vergrößert sich der Bereich immer weiter, der Einfluss auf das Ergebnis hat. Nützlich ist es sogenannte Pooling-Schichten zu verwenden, die die Ergebnisse von benachbarten Neuronen zusammenfassen, z.b. den Mittelwert oder den maximalen Wert nehmen und weiter leiten. 2 0 1 7 0 6 3 8 4 1 3 6 2 5 5 1 6 8 5 6 4 4 Eingangsbild, Max-Pooling Schicht, Filtermaske 2 und Schrittgröße 2. 2 2 Ausgaben. 60

CNN (5) Am Ende gibt es dann bei einem Klassifizierungsproblem für jedes Objekt ein Output- Neuron oder z.b. bei einem Segmentierungsproblem, also welches Pixel eines Bildes gehört zu welchem Objekt für jedes Pixel so viele Output-Neuronen, wie es Klassen gibt. Viele weitere Details sind für ein sinnvolles Netz notwendig, aber diese Netze machen auch nichts anderes als eine Kurve an Daten anzupassen. 61

Ausblick (1) Verbesserungen: Intelligentere Netze und Algorithmen + schnelle Hardware. weitere Formen von Faltungsnetzen / rekurrente Netze (mit Zeitabhängingkeit)/ Deep Belief Netze und viele mehr Stochastische Modelle Verbesserte Gradientenverfahren Genetische Algorithmen und anderes zur Netzverbesserung... Graphikkarten Frage: Was lernt das Netz? Ansatz: Rückverfolgung des Gelernten über die Schichten. Bei diesen Versuchen hat Google direkt eine neue Kunstrichtung ins Leben gerufen: Inceptionism Computer-Halluzinationen, Spektrum der Wissenschaft, 12/2015, Brian Hayes. 62

Ausblick (2) Es fehlen viele Kleinigkeiten, die als nächstes wichtig für eine aktuelle Anwendung, z.b. in der Objekterkennung wären, z.b.: Wie sind Faltungsnetze (CNN) in Detail aufgebaut? Welche Aktivierungsfunktion ist die geeignetste (LeakyReLU)? Welche Fehlerfunktion sollte gewählt werden (cross entropy)? Welchen Lernalgorithmus sollte man nehmen (Adam Algorithmus)? Was ist eine gute Initialisierung der Gewichte (Gauß-Verteilung)? Wie wird overfitting vermieden (Dropout/L2-Regularisierung/Batch- Norm)?... Das Anpassen von Kurven an Daten ist nicht trivial, wenn nur wenige Informationen über die Daten vorliegen, aber meist sehr erfolgreich, wenn viele Daten zur Verfügung stehen! 63