Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2016/nn_v13_dl.pdf · Deep...
Transcript of Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2016/nn_v13_dl.pdf · Deep...
Christoph Doell, Rudolf Kruse Neuronale Netze 1
Neuronale Netze
Prof. Dr. Rudolf Kruse
Computational Intelligence
Institut fur Intelligente Kooperierende Systeme
Fakultat fur Informatik
Christoph Doell, Rudolf Kruse Neuronale Netze 2
Lernen Tiefer Neuronaler Netze (Deep Learning)
Deep Learning
Christoph Doell, Rudolf Kruse Neuronale Netze 3
Wiederholung◦ Lernen Rekurrenter Netze durch ausfalten
◦ Problem des verschwindenden Gradienten
Varianten des Neurons
Autoencoder
Hybrider Lernalgorithmus
Faltung
Pooling
Faltende Neuronale Netze
Anwendungen
Wiederholung: Lernen Rekurrenter Netze
Christoph Doell, Rudolf Kruse Neuronale Netze 4
Beispiel: Newton’sches Abkuhlungsgesetz
Euler–Cauchy-Polygonzuge fur verschiedene Schrittweiten:
t
ϑ
ϑA
ϑ0
0 5 10 15 20
t
ϑ
ϑA
ϑ0
0 5 10 15 20
t
ϑ
ϑA
ϑ0
0 5 10 15 20
∆t = 4 ∆t = 2 ∆t = 1
Die dunne Kurve ist die genaue analytische Losung.
Rekurrentes neuronales Netz:
ϑ(t0) ϑ(t)−kϑA∆t
−k∆t
Wiederholung: Fehler-Ruckpropagation uber die Zeit
Christoph Doell, Rudolf Kruse Neuronale Netze 5
Annahme: Wir haben Messwerte der Abkuhlung (oder Erwarmung) eines Korpers zuverschiedenen Zeitpunkten. Außerdem sei die Umgebungstemperatur ϑA bekannt.
Ziel: Bestimmung des Werts der Abkuhlungskonstanten k des Korpers.
Initialisierung wie bei einem MLP: Biaswert und Gewicht der Ruckkopplung zufalligwahlen.
Die Zeit zwischen zwei aufeinanderfolgenden Messwerten wird in Intervalle unterteilt.Damit wird die Ruckkopplung des Netzes ausgefaltet. Liegen z.B. zwischen einemMesswert und dem folgenden vier Intervalle (tj+1 = tj + 4∆t), dann erhalten wir
ϑ(t0) θ θ θ θ ϑ(t)1−k∆t 1−k∆t 1−k∆t 1−k∆t
Wiederholung: Fehlerruckpropagation
Christoph Doell, Rudolf Kruse Neuronale Netze 6
∀u ∈ Uin :
out(l)u = ex
(l)u
Vorwarts-propagation:
∀u ∈ Uhidden ∪ Uout :
out(l)u =
(
1 + exp(
−∑
p∈pred(u)wup out(l)p
))−1
logistischeAktivierungs-funktionimpliziterBiaswert
x1
x2
xn
... ...
... ...
· · ·
· · ·
...
...
y1
y2
ym
∀u ∈ Uhidden :
δ(l)u =
(
∑
s∈succ(u) δ(l)s wsu
)
λ(l)u
Ruckwarts-propagation:
∀u ∈ Uout :
δ(l)u =
(
o(l)u − out
(l)u
)
λ(l)u
Fehlerfaktor:
λ(l)u = out
(l)u
(
1− out(l)u
)Aktivierungs-ableitung:
Gewichts-anderung:
∆w(l)up = η δ
(l)u out
(l)p
Bisherige Probleme
Christoph Doell, Rudolf Kruse Neuronale Netze 7
Probleme:
Gewichtsanderung nimmt in vorderenSchichten exponentiell ab
Lernen dauert zu lang
Zuwenige (gelabelte) Lernbeispiele vor-handen
Konvergenz zu lokalen Minima
Losungsansatze:
Initialisiere Gewichte nicht zufallig,sondern abhangig vom Datensatz
Verwende schnellere ComputerLastverteilung auf GPUs
Sammle mehr gelabelte Lernbeispiele
Kann nicht vollstandig verhindert wer-den
Rectified Linear Unit (ReLU)
Christoph Doell, Rudolf Kruse Neuronale Netze 8
Wahle statt NeuronRectified Linear Unit
ReLU: f (x) = max(0, x)
Vorteile:◦ sehr einfache Berechnung
◦ Ableitung ist leicht zu bilden
◦ 0-Werte vereinfachen Lernen
Nachteile:◦ kein Lernen links der 0
◦ mathematisch eher unschon
◦ Nicht-differenzierbarer
”Knick“ bei 0
−3 −2 −1 0 1 2 3−1
0
1
2
3
f(x)
ReLU
[ReLu nach Glorot et. al 2011]
ReLU: Berechnungsvarianten
Christoph Doell, Rudolf Kruse Neuronale Netze 9
Softplus:f (x) = ln(1 + ex)◦”Knick“ wurde beseitigt
◦ Einige Vorteile auch
Noisy ReLU:f (x) = max(0, x +N (0, σ(x)))◦ Addiert Gaussches Rauschen
Leaky ReLU
f (x) =
{
x, falls x > 0,0.01x, sonst.
−3 −2 −1 0 1 2 3−1
0
1
2
3
f(x)
Softplus
[Softplus nach Glorot et. al 2011]
Dropout
Christoph Doell, Rudolf Kruse Neuronale Netze 10
ohne Dropout
mit Dropout
Gewunschte Eigenschaft:Robustheit bei Ausfall von Neuronen
Ansatz beim Lernen:◦ Nutze nur 50% der Neuronen
◦ Wahle diese zufallig
Ansatz beim Anwenden◦ Nutze 100% der Neuronen
◦ Halbiere alle Gewichte
Ergebnis:◦ Robustere Reprasentation
◦ Verbesserte Generalisierung
Autoencoder
Christoph Doell, Rudolf Kruse Neuronale Netze 11
Erstellt eine Kodierung der Daten
Lernt Gewichte mit Ruckpropagation
Durch unuberwachtes Lernen
Fehler ist |out− in|2
[Grafiken nach T. Mitchell, Machine Learning,McGraw Hill, 1997]
Autoencoder
Christoph Doell, Rudolf Kruse Neuronale Netze 12
Encoder Decoder
Nutze fur Dekodierung die transponierteGewichtsmatrix der Encodierung
Ergebnis nach 5000 Lerniterationen:
Binare Kodierung annahernd erreicht
[Grafiken nach T. Mitchell, Machine Learning,McGraw Hill, 1997]
Rauschreduzierender (Denoising) Autoencoder
Christoph Doell, Rudolf Kruse Neuronale Netze 13
Encoder Decoder
Gegeben:eine dunne (sparse) Reprasentation
Gewunscht:eine volle Reprasentation
Ansatz:Kombiniere Autoencoder mit Dropout
Ergebnis:komprimierte Darstellungdynamisch auf Lernbeispiele zugeschnittenFeatures fur andere Algorithmen
Stapeln von Autoencodern
Christoph Doell, Rudolf Kruse Neuronale Netze 14
Staple Autoencoder, um die besten Features zu erhalten
[http://ufldl.stanford.edu/wiki/index.php/Stacked Autoencoders]
Stapeln von Autoencodern
Christoph Doell, Rudolf Kruse Neuronale Netze 15
Nutze die (vor)gelernten Features zur Klassifikation
[http://ufldl.stanford.edu/wiki/index.php/Stacked Autoencoders]
Hybrider Deep Learning Algorithmus
Christoph Doell, Rudolf Kruse Neuronale Netze 16
1. Definiere fur die Lernaufgabe geeignete Netzstruktur
2. Erstelle entsprechend der Struktur Autoencoder und lasse sie mit Ruckpropagationeinzeln lernen
3. Verwende nur die Encoder, ihre Gewichte und eine weitere vollstandig vernetzte,zufallig initialisierte Schicht zur Klassifikation
4. Lasse das so vortrainierte Netz mit Ruckpropagation lernen
Problem: Objekterkennung in Bildern
Christoph Doell, Rudolf Kruse Neuronale Netze 17
Imagenet Large Scale Visual Recognition Challenge (LSVRC) seit 2010
Finde 200 Objektklassen (Stuhl, Tisch, Person, Fahrrad,...)
in Bildern mit ca. 500 x 400 Pixeln, 3 Farbkanalen
Neuronales Netz mit ca. 600.000 Neuronen in der ersten Schicht
200 Neuronen in der Ausgabeschicht
Faltung (Convolution)
Christoph Doell, Rudolf Kruse Neuronale Netze 18
[Quelle]
Motivation: Egal wo aufdem Bild ein Objekt ist, solles erkannt werden
Idee: Verwende die selbenFeatures auf dem gesamtenBild
Umsetzung: Filter / Kernelwerden auf jedem Teil des Bil-des angewandt und teilen sichdie Gewichte
Parameter:Anzahl der FilterStarke der Uberlappung
Faltung (Convolution)
Christoph Doell, Rudolf Kruse Neuronale Netze 19
[http://ufldl.stanford.edu/wiki/index.php/Feature extraction using convolution]
Featuretransformation
Schiebe einen”Filter“ uber
die Features und betrachte die
”gefilterten“ Features
Multipliziere Originalfeaturemit Filter und Summiere
Originalraum: 5x5
Filtergroße: 3x3
Neue Featuregroße: 3x3
Featureraum wird kleiner
Pooling
Christoph Doell, Rudolf Kruse Neuronale Netze 20
[Quelle]
Featuretransformation
Schiebe einen”Filter“ uber
die Features und betrachte die
”gefilterten“ Features
Betrachte den Bereich ent-sprechend der Filtergroße
Max Pooling: Nimm maxima-len Wert
Mean Pooling: Nimm Mittel-wert
Featureraum wird kleiner
Faltendende (Convolutional) Neuronale Netze
Christoph Doell, Rudolf Kruse Neuronale Netze 21
[http://ufldl.stanford.edu/wiki/index.php/Feature extraction using convolution]
Resultate im Bereich Bildklassifizierung
Christoph Doell, Rudolf Kruse Neuronale Netze 22
Grafik: William Beluch, ImageNet Classification with DeepConvolutional Neural Networks
Noch vor 10 Jahren:unmoglich
Rasante Entwicklung inden letzten Jahren
Oft verwendet:Ensembles von Netzen
Netze werden tiefer:ResNet (2015) mehr als150 Schichten
Anwendung: IQ-Test
Christoph Doell, Rudolf Kruse Neuronale Netze 23
Losen von verbalen Verstandnisfragen in IQ-Tests [Wang et al. 2015]
Verbale IQ-Tests beinhalten hier 5 Arten von Fragen:Analogie 1, Analogie 2, Klassifikation, Synonym, Antonym
Beispielfrage(Analogie 1): Isotherm verhalt sich zu Temperatur wie isobar zu?(i) Atmosphare, (ii) Wind, (iii) Druck, (iv) Ausdehnung, (v) Stromung
Ansatz:◦ Klassifiziere den Fragentyp mit Hilfe einer SVM◦ Benutze fur jeden Fragentyp einen dafur erstelltes Tiefes Neuronales Netz◦ Nutze zum Lernen von zusammengehorenden Worter eine große Datenbasis(Wiki2014)
Ergebnis: DeepLearning schneidet etwas besser ab, als Bachelor-Absolventen
Rhythmus-Rekonstruktion durch EEG-Analyse
Christoph Doell, Rudolf Kruse Neuronale Netze 24
[Quelle: Sebastian Stober, DKE-Kolloquium 03.06.2014]
German Traffic Sign Recognition Benchmark (GTSRB)
Christoph Doell, Rudolf Kruse Neuronale Netze 25
Wurde analysiert bei der Internatio-nal Joint Conference on Neural Net-works (IJCNN) 2011
Problemstellung:
Ein Bild, mehrere Klassen Klassifika-tionsproblem
Mehr als 40 Klassen
Mehr als 50.000 Bilder
Ergebnis:
Erste ubermenschliche visuelleMustererkennung
Fehlerraten:Mensch: 1.16%, NN:0.56%
Stallkamp et al. 2012
Verwendetes Netz:Input, Conv., Max., Conv., Max.,Conv., Max, Full, Full
Details zu den Gewinnern
Visualisierung von gelernten Neuronalen Netzen
Christoph Doell, Rudolf Kruse Neuronale Netze 26
Neuronale Netze zur Objekterkennung in Bildern
Was erkennt ein Neuronales Netz in Rauschen, wenn es Bananen gelernt hat?
Mehr Beispiele
Quelle: Heise: Wovon traumen neuronale Netze?
AlphaGo: Problemstellung Go
Christoph Doell, Rudolf Kruse Neuronale Netze 27
2 Spieler (Schwarz, Weiß)
Legen abwechselnd Steine
auf einem 19 x 19 Gitter
Ziel: Die Großte Flache einkreisen
eingekreiste Steine werden weggenommen
Anzahl der Moglichkeiten: 250150
Vergleich zu Schach: 3580
AlphaGo: Ansatz Monte Carlo Suche
Christoph Doell, Rudolf Kruse Neuronale Netze 28
Ansatz: Suche im Spielbaum
Lerne Netz 1 fur menschenahnliche nachste Zuge
Lerne Netz 2 zum Bewerten von Stellungen
AlphaGo: Ergebnisse
Christoph Doell, Rudolf Kruse Neuronale Netze 29
Sieg gegen Europameister, Fan Hui: 5 zu 0
Sieg gegen Top10 der Weltrangliste, Lee Sedol: 4 zu 1
Deep Learning Libraries
Christoph Doell, Rudolf Kruse Neuronale Netze 30
Theanohttp://deeplearning.net/software/theano/Python Implementierung fur GPU-Verarbeitung von mathematischen Ausdrucken
Tensorflow https://www.tensorflow.org/Verwendet von Googles DeepMind
Kerashttp://keras.ioPython Implementierung, basierend auf Theano oder Tensorflow
Torchhttp://torch.ch/LuaJIT und C/CUDA Implementierung, verwendet bei Facebook, Google, Twitter
DL4Jhttp://deeplearning4j.org/Plattformunabhangige Java Implementierung, kompatibel mit Spark, Hadoop
Caffehttp://caffe.berkeleyvision.org/C++, CUDA Implementierung mit Python und MATLAB SchnittstelleSehr schnell, viel verwendet fur Bildanalyse z.B. bei Facebook