Neuronale Netze Einführung in die Wissensverarbeitung 2 VO 708.560+ 1 UE 442.072 SS 2013 Institut für Signalverarbeitung und Sprachkommunikation TU Graz Inffeldgasse 12/1 www.spsc.tugraz.at Institut für Grundlagen der Informationsverarbeitung TU Graz Inffeldgasse 16b/1 www.igi.tugraz.at
Lehrveranstaltungsübersicht IGI Kapitel 1 Grundbegriffe des maschinellen Lernens Kapitel 2 Neuronale Netze Kapitel 3 Klassische Klassifikationsalgorithmen Kapitel 4 Modellselektion Kapitel 5 Aussagenlogik 2
Plan für heute: Kapitel 2 Wie sind Neuronale Netze aufgebaut? Wie werden Neuronale Netze gelernt? Welche Funktionen können Neuronale Netze lernen? Welche praktischen Tipps für die Anwendung gibt es? Welche Stärken und Schwächen haben Neuronale Netzwerke? 3
Hintergrund Biologische neuronale Netzwerke Informationsverarbeitung im menschlichen Gehirn wird mittels 1011 Nervenzellen (Neuronen) und 1015 Synapsen durchgeführt. 4
Anwendungen Künstliche Neuronale Netze werden angewendet in den Gebieten: Funktionsapproximation, Regression, e.g. Zeitreihenvorhersage Klassifikation, Muster- und Sequenzerkennung Datenverarbeitung, Filterung, Clustering Beispiele: Systemerkennung, Regelungstechnik (Fahrzeugsteuerung), Spiele (Backgammon, Steuerung von Rennspielen), Mustererkennung (Gesichtserkennung, Handschrifterkennung), Medizinische Diagnosen, Finanzanwendungen (Börse), Data mining (Erkenntnisgewinnung aus Datenbeständen), Spam-Filter 5
Lernbeispiel Bilderkennung Trainingsbeispiele -1 +1 +1-1 6
Lineare Klassifikation möglich? Nichlineare Probleme können meist nicht von linearen Modellen (linearen Klassifikatoren) gelöst werden Lernbeispiel Bilderkennung: Lineare Klassifikatoren liefern für dieses XOR Problem einen zero-one Fehler von mindestens 0.25: y = sign w T x =sign w 0 w 1 x 1... w d x d 7
Kapitel 2 Wie sind Neuronale Netze aufgebaut? 8
Architektur Netzwerke mit allgemeiner feedforward Architektur: Allgemein: Ein Netzwerk kann als gerichteter Graph G = (V,E) beschrieben werden mit Knoten V (Neuronen, inputs, outputs) und Kanten E (Verbindungen) Für jede Kante i, j E von Knoten i zu Knoten j gibt es ein Gewicht w i, j Für jeden nicht input Knoten i gibt es eine Aktivierungsfunktion hi 9
Architektur Wir betrachten ausschließlich feedforward Netzwerke mit layered Architektur. (auch genannt multi layer perceptrons) x ℝD y ℝK w 1 ℝ M D w 2 ℝ K M Input layer Hidden layer Output layer 10
Architektur x ℝD y ℝK w 1 ℝ M D w 2 ℝ K M Durch das Netzwerk implementierte Funktion: 2 yk x, w = h = h 2 M 2 ki w h i=1 M 2 ki 1 1 w h i=1 D 1 1 2 w x w w ij j i0 k0 j=1 D 1 w ij x j j =1 11
Aktivierungsfunktionen Die Wahl der Aktivierungsfunktion hängt vom Lernproblem ab: Lineares Gatter Sigmoides Gatter Schwellengatter h(a) h a =a h a = 1 a 1 e { h a = 0 a 0 1 a 0 a a a Lineare Regression Nichtlineare Funktionen (auch Klassifikation) Klassifikation 12
Aktivierungsfunktionen Die Wahl der Aktivierungsfunktion hängt vom Lernproblem ab: Lineares Gatter Sigmoides Gatter Schwellengatter h(a) h a =a h a =tanh a { h a = 1 a 0 1 a 0 a a a Lineare Regression Nichtlineare Funktionen (auch Klassifikation) Klassifikation 13
Eigenschaften Durch die Verknüpfung simpler Elemente entsteht komplexes Verhalten. Berechnung ist verteilt und parallel. Einigermaßen robust gegenüber Defekten (verteiltes Rechnen). Funktion wird programmiert anhand der Justierung der Gewichte. 14
Kapitel 2 Wie werden Neuronale Netze gelernt? 15
Wie können Neuronale Netze die XOR Funktion lösen? y z1 z2 x1 x2 16
Fehlerfunktion Die (empirische und wahre) Fehlerfunktion von mehrschichtigen Neuronalen Netzen sind im Allgemeinen komplexe Funktionen mit mehreren lokalen Minima. Allgemein: XOR: MSE MSE MSE w2 ' MSE w1 ' MSE MSE w1 w 21 w2 w0 ' w1 ' MSE w 11 w 22 w 12 17
Ansatz: Gradientenabstieg Wie findet man das optimale w welches MSE w minimiert? Der Gradient W E w zeigt immer in Richtung des steilsten Anstiegs von E w (Wir verwenden ab hier die kürzere Notation E anstatt MSE.) E w W E w 18
Arten von Minima E w w Globale global minima: Punkte w mit E w E w Lokale Minima : für alle w Minima für welche Punkte mit kleinerem E existieren Um eine gute Lösung zu finden benötigt man kein globales Minimum, aber man sollte mehrere lokale Minima überprüfen und das Beste nehmen. 19
Gradientenabstieg Da es keine Hoffnung gibt eine analytische Lösung für W E w = 0 zu finden, führen wir folgende iterative numerische Prozedure durch Wähle w 0 w 1 =w w mit = 0, 1, 2,... Es gibt viele Algorithmen, welche nach diesem Prinzip funktionieren, und viele verwenden Information über den Gradienten. 20
Batch learning Mache einen kleinen Schritt in Richtung des negativen Gradienten w 1 = w E w wo 0 eine kleine Lernrate ist. Für die exakte Berechnung des Gradienten benötigt man alle Trainingsbeispiele batch mode. 21
Online Learning Die Fehlerfunktion kann aufgeteilt werden in L E w = l=1 E l w In der online version erfolgt der update nach jedem einzelnen Trainingsbeispiel. w 1 = w E mod N 1 w E w Er konvergiert schneller und kann lokalen Minima entkommen. 22
Backpropagation Eingeführt 1973 von Paul Werbos in dessen Ph.D. Thesis (Harvard University). In den 80ern einige Male neu erfunden (Parker, LeCun). Bekannt geworden durch das Buch Parallel Distributed processing von Rummelhart und McClelland (1987). Lösung für das Credit Assignment Problem: Wer hat wieviel Schuld am Fehler? 23
Voraussetzungen für Backprop Allgemeine feed-forward Architektur Differenzierbare Aktivierungsfunktionen (e.g. sigmoide Gatter) Für die Klasse von Fehlerfunktionen gilt E w = l n=1 E n w h(x) 24
Backpropagation Der Gradient der Fehlerfunktion wird durch den lokalen Austausch von Nachrichten ermittelt (message passing): Vorwärts Übertragung... von Aktivierungen, d.h. x y, um den output aller Neuronen und des gesamten Netzwerkes zu bestimmen. Rückwärts Übertragung... der Fehlerzuweisung für jedes Gatters. 25
Algorithmus Fehlerberechnung: l E w = n=1 E n w E n w = k z j w kj Fehler * input Vorwärts Übertragung: Berechnung des outputs z j des Gatters j Rückwärts Übertragung: Berechnung der Fehlers k des Gatters k 2 a k y k l h k a k r w rk Hidden Gatter: k = r post k ak Output Gatter: k = 26
Pseudocode Begin initialize network architecture (# hidden neurons), Goal, und w, m 0 do m m 1 m x randomly chosen pattern input forward propagation, error back propagation 1 w 1 w ji ji j x i, 2 w 2 w kj kj k z j until E w return end 27
Kapitel 2 Welche Funktionen können Neuronale Netze lernen? 28
Neuronale Netze: Rechenkraft XOR Problem: 29
Neuronale Netze: Rechenkraft Theorem 1: D K Jede Boolesche Funktion f :{0,1} {0,1} kann durch einen Schwellenschaltkreis (also durch ein neuronales Netz bestehend aus Schwellengattern) der Tiefe 2 (ein hidden layer) berechnet werden. 30
Neuronale Netze: Rechenkraft Theorem 2: D K Zu jeder kontinuierlichen Funktion f :[0,1] [0,1] und jedem 0 gibt es ein neuronales Netz N der Tiefe 2 (ein hidden layer), bestehend aus sigmoiden Gattern auf dem hidden layer und linearen (oder sigmoiden) Gattern auf dem output layer, welches die Funktion f mit der Genauigkeit approximiert, d.h. für alle x 1,..., x D [0, 1] D gilt f x 1,..., x D N x 1,..., x D y Netzwerk mit 3 hidden Neuronen blau... rot... --... y x Zielfunktion Approximation ouput der hidden Neuronen x 31
Neuronale Netze: Rechenkraft Klassifikation: Neuronale Netze können beliebig komplexe Entscheidungsregionen definieren (output = Schwellengatter) Netzwerk mit 2 hidden Neuronen grün... rot... --... Zielfunktion Approximation ouput der hidden Neur. 32
Kapitel 2 Welche praktischen Tipps für die Anwendung gibt es? 33
Tipp 1: Setzen der Lernrate Die Lernrate darf nicht zu klein oder zu groß gewählt werden, um Konvergenz zum Minimum zu garantieren. MSE Für quadratische Fehlerfunktionen kann man die optimale Lernrate berechen, um in einem Schritt zum globalen Minimum zu gelangen. 34
Adaptive Lernrate In der Praxis verwendet man häufig eine adaptive Lernrate. Z.B: Intialize 0.1 if error T 1.04 error T 1 then 0.7 elseif error T error T 1 1.05 end 35
Tipp 2: Impulsterm Idee: Man gibt dem Gewichtsvektor einen Impuls. Die Lernregel für stochastisches backpropagation wird verändert, sodass der Gewichtsupdate einen Anteil des letzten updates enthält. w 1 =w 1 w w 1 für 0 1. Ein typischer Wert von ist 0.9. 36
Impulsterm gleicht stochastische Gewichtsänderungen aus Matlab: traingdm Gradient descent mit Impulsterm (momentum) traingda Gradient descent mit adaptiver Lernrate traingdx GD mit Impulsterm und adaptiver Lernrate 37
Klassifikation mit Neuronalen Netzen Binäre Klassifikation: Man rundet den output eines linearen oder sigmoiden output Neurons, um ihn als Klassifikation mit Werten {0,1} zu interpretieren. 38
Klassifikation mit Neuronalen Netzen Klassifikationsprobleme mit K > 2 Klassen: Man rundet den output eines linearen ouput Neurons, e.g. Problem: Impliziert Nähe zwischen den Klassen, d.h. Klassifikationsbias Man verwendet für jede Klasse c ein output Neuron. Für jedes Trainingsbeispiel aus Klasse ck wird der Zielwert yc von output Neuron c auf 1 gesetzt. Man verwendet mehrere (M > K) output Neuronen und kodiert die Klasse anhand binärer Vektoren mit möglichst großem (Hamming-) Abstand. c=1 1 0 y= 1... 1 c=2 c=k 0 1 y= 0... 1... 0 1 y= 1... 0 39
Beobachtete Generalisierung Je größer die Anzahl der Neuronen k, desto komplexer wird der Klassifikator. Je kleiner die Anzahl der Neuronen k, desto einfacher wird der Klassifikator. Underfitting: Hypothesenklasse ist nicht ausdrucksstark genug Wahrer Fehler Optimale Anzahl k Trainingsfehler Overfitting Hypothesenklasse ist zu groß Anzahl der Neuronen k Man spricht von overfitting, wenn error P H error L H 40
Generalisierung allgemein (für alle Hypothesenklassen) Underfitting: Hypothesenklasse ist nicht ausdrucksstark genug Wahrer Fehler Trainingsfehler Overfitting Hypothesenklasse ist zu groß Komplexität m Gesuchte Hypothesenklasse mit Komplexität mf 41
Methoden für Neuronale Netze um overfitting zu vermeiden Ansatz: Man versucht zusätzlich zu einem geringen Trainingsfehler die Gewichte des Neuronalen Netzes möglichst klein zu halten. Kleine Gewichte, haben kleine Aktivierungen der Neuronen zur Folge, wodurch diese und damit auch teilweise das Netzwerk im linearen Bereich arbeiten. Weight decay Early stopping 42
Weight decay Gewichte des Neuronalen Netzes werden durch einen zusätzlichen Regularisierungsterm in der Fehlerfunktion klein gehalten. 2 E w = MSE w i, j wij 2 43
Weight decay Andere Strafterme: 1. 2. = ij w ij = ij w 2ij wij2 const w ij 44
Early stopping Ablauf: 1. Die Gewichte werden mit sehr kleinen Werten initialisiert (Warum nicht 0?). 2. Das Lernen wird abgebrochen, wenn der Fehler auf Validierungsdaten steigt. error 45
Warum funktioniert early stopping? outputs inputs 46
Kapitel 2 Welche Stärken und Schwächen haben Neuronale Netzwerke? 47
Auswahlkriterien für Lernalgorithmen Qualität des Lernalgorithmus (siehe Kapitel 1) Benötigte Rechenzeit beim Trainieren und Testen Speicherbedarf Intuitive Interpretierbarkeit 48
Auswahlkriterien für Neuronale Netze Qualität des Lernalgorithmus (siehe Kapitel 1) Gute performance (für Klassifikation meist schlechter als SVM). Benötigte Rechenzeit beim Trainieren und Testen Benötigt relativ viel Zeit um zu lernen. Testen dauert auch bei vielen Testbeispielen nicht lange. Speicherbedarf Gering. Intuitive Interpretierbarkeit Sehr schlecht. 49