Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep...

38
Christoph Doell, Rudolf Kruse Neuronale Netze 1 Neuronale Netze Prof. Dr. Rudolf Kruse Computational Intelligence Institut f ¨ ur Intelligente Kooperierende Systeme Fakult ¨ at f ¨ ur Informatik [email protected]

Transcript of Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep...

Page 1: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Christoph Doell, Rudolf Kruse Neuronale Netze 1

Neuronale Netze

Prof. Dr. Rudolf Kruse

Computational Intelligence

Institut fur Intelligente Kooperierende Systeme

Fakultat fur Informatik

[email protected]

Page 2: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Christoph Doell, Rudolf Kruse Neuronale Netze 2

Lernen Tiefer Neuronaler Netze (Deep Learning)

Page 3: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

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

Objekterkennung in Bildern

Faltung

Pooling

Faltende Neuronale Netze

Adversarial Examples

weitere Anwendungen

Page 4: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

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

Page 5: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

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

Page 6: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

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

Page 7: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Wiederholung: Universal Approximation Theorem

Christoph Doell, Rudolf Kruse Neuronale Netze 7

Jede stetige Funktion auf einem beliebigen kompakten Unterraum des IRn kanndurch ein MLP mit einer versteckten Schicht beliebig genau approximiert werden.

Dieser Satz wird oft verwendet um zu sagen, dass:

◦ man bei MLPs nur eine versteckte Schicht benotigt,◦ es keinen echten Bedarf gibt sich mit tieferen MLPs zu befassen

Trotzdem: Der Satz sagt nichts aus uber die Anzahl der dafur benotigten ver-steckten Neuronen, um die gewunschte Genauigkeit der Approximation zu liefern.

Abhangig von der anzunahernden Funktion ist es moglich, dass sehr viele versteck-te Neuronen benotigt werden.

Mehr versteckte Schichten konnten ermoglichen, dass die selbe Genauigkeit derApproximation durch deutlich weniger Neuronen erreicht werden konnte.

Page 8: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Bisherige Probleme

Christoph Doell, Rudolf Kruse Neuronale Netze 8

Probleme:

Lernen dauert zu lang

Zu wenige (gelabelte) Lernbeispiele

Konvergenz zu lokalen Minima

Gewichtsanderung nimmt in vorderenSchichten exponentiell ab(Vanishing Gradient Problem)

Uberanpassung der Netze wegenzu vieler Parameter

Losungsansatze:

Erfolg durch verbesserte, optimierteHardware, parallele Verarbeitung aufmehreren CPUs und GPUs

Sammle mehr gelabelte Lernbeispiele(z.B. durch web-crawling von sozialenNetzen oder Youtube)

Kann nicht vollstandig verhindert wer-den (da Optimierung NP-schwer)

Initialisiere Gewichte nicht zufallig,sondern abhangig vom Datensatz

Dropout von Neuronen beim Lernen

Page 9: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Deep Learning: Vanishing Gradient Problem

Christoph Doell, Rudolf Kruse Neuronale Netze 9

logistische Aktivierungsfunktion:

fact(net, θ) =1

1 + e−(net−θ)

net

0

1

2

1

0�� 8 �� 4 �+ 4 �+ 8

Ableitung der logistischen Funktion:

f ′act(net, θ) = fact(net, θ) · (1− fact(net, θ))

net

0

1

4

1

��� 8 �� 4 �+ 4 �+ 8

Wenn die logistische Aktivierungsfunktion (links) verwendet wird, sind die Ge-

wichtsanderungen proportional zu λ(l)u = out

(l)u

(

1− out(l)u

)

(rechts).

Dieser Faktor wird mit zuruck propagiert ist aber nie großer als 14 (siehe rechts).

⇒ Der Gradient tendiert dazu verschwindend klein zu werden wenn durch vieleSchichten zuruck propagiert wird.Lernen in den vorderen versteckten Schichten kann sehr langsam werden

[Hochreiter 1991].

Page 10: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Rectified Linear Unit (ReLU)

Christoph Doell, Rudolf Kruse Neuronale Netze 10

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]

Page 11: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

ReLU: Berechnungsvarianten

Christoph Doell, Rudolf Kruse Neuronale Netze 11

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]

Page 12: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Dropout

Christoph Doell, Rudolf Kruse Neuronale Netze 12

ohne Dropout

mit Dropout

Gewunschte Eigenschaft:Robustheit bei Ausfall von Neuronen

Ansatz beim Lernen:◦ Nutze nur p% der Neuronen

◦ Wahle diese zufallig

Ansatz beim Anwenden:◦ Nutze 100% der Neuronen

◦ Multipliziere alle Gewichte mit p

Ergebnis:◦ Robustere Reprasentation

◦ Verbesserte Generalisierung

◦ Verringerte Uberanpassung

Page 13: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Autoencoder

Christoph Doell, Rudolf Kruse Neuronale Netze 13

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]

Page 14: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Autoencoder

Christoph Doell, Rudolf Kruse Neuronale Netze 14

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]

Page 15: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Rauschreduzierender (Denoising) Autoencoder

Christoph Doell, Rudolf Kruse Neuronale Netze 15

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

Page 16: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Stapeln von Autoencodern

Christoph Doell, Rudolf Kruse Neuronale Netze 16

Staple Autoencoder, um die besten Features zu erhalten

[http://ufldl.stanford.edu/wiki/index.php/Stacked Autoencoders]

Page 17: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Stapeln von Autoencodern

Christoph Doell, Rudolf Kruse Neuronale Netze 17

Nutze die (vor)gelernten Features zur Klassifikation

[http://ufldl.stanford.edu/wiki/index.php/Stacked Autoencoders]

Page 18: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Hybrider Deep Learning Algorithmus

Christoph Doell, Rudolf Kruse Neuronale Netze 18

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

Page 19: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Problem: Objekterkennung in Bildern

Christoph Doell, Rudolf Kruse Neuronale Netze 19

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

Page 20: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Faltung (Convolution)

Christoph Doell, Rudolf Kruse Neuronale Netze 20

[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

Page 21: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Faltung (Convolution)

Christoph Doell, Rudolf Kruse Neuronale Netze 21

[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

Page 22: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Pooling

Christoph Doell, Rudolf Kruse Neuronale Netze 22

[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

Page 23: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Faltendende (Convolutional) Neuronale Netze

Christoph Doell, Rudolf Kruse Neuronale Netze 23

[http://ufldl.stanford.edu/wiki/index.php/Feature extraction using convolution]

Page 24: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Features in Faltenden (Convolutional) Neuronalen Netzen

Christoph Doell, Rudolf Kruse Neuronale Netze 24

Gut trainierte Netze haben klarerkennbare Features

Features werden in tieferen Schich-ten komplexer

Layer 1:Kantenzuge

Layer 2:Augen, Nasen, Augenbrauen,Munder

Layer 3:(abgeschnittene) ganze Gesichter

Page 25: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Resultate im Bereich Bildklassifizierung

Christoph Doell, Rudolf Kruse Neuronale Netze 25

28.2%

25.8%

15.3%

11.7%

7.3% 6.7%

3.6% 3%

2010 2011 2012AlexNet

2013 2014VGG

2014GoogLeNet

2015ResNet

20160

5

10

15

20

25

30 classification error (top5)

of ILSVRC winnersNoch vor 10 Jahren:unmoglich

Rasante Entwicklungin den letzten Jahren

Oft verwendet:Ensemblesvon Netzen

Netze werden tiefer:ResNet (2015) mehrals 150 Schichten

Page 26: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Adversarial Examples

Christoph Doell, Rudolf Kruse Neuronale Netze 26

kritische Anwendungen: Sicherheitskameras, selbstfahrende Autos

Wie sicher sind die Vorhersagen?

Neuronale Netze konnen ausgetrickst werden!

[Goodfellow et al. 2015]

Page 27: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Generieren von Adversarial Examples

Christoph Doell, Rudolf Kruse Neuronale Netze 27

Historisch zunachst mit recht langsamen Optimierungsverfahren wie L-BFGS oderAdam

Spater Gradientenverfahren (Fast Gradient Sign oder Fast Least Likely Class)schnell, aber nur Approximierung

[Baluja et al. 2017]

Idee beim Generieren:

Betrachte fur ein Lernbeispiel die Gradienten der letzten Schicht, fur die Vorher-sage einer falschen Klasse

Nutze diese Gradienten um gezielt ein Gegenbeispiel zu erzeugen

Teste wiederholt leichte Variationen

Page 28: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Was tun gegen Adversarial Examples?

Christoph Doell, Rudolf Kruse Neuronale Netze 28

Verstecken der Gradienten der letzten Schicht? Hilft nicht

Nutzen von Ensembles von mehreren Neuronalen Netzen? Hilft nicht

Auf ahnlichen Lernbeispielen gelernte Ersatznetze lassen sich durchdie selben Adversarials austricksen

Sogar auf normalem Papier gedruckte und mit Handykamera abfotografierteGegenbeispiele konnen Netze hereinlegen!

Page 29: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Was tun gegen Adversarial Examples?

Christoph Doell, Rudolf Kruse Neuronale Netze 29

Idee: Generiere viele Adversarial Examples

Nutze diese als zusatzliche Beispiele zum Trainieren

Page 30: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Was tun gegen Adversarial Examples?

Christoph Doell, Rudolf Kruse Neuronale Netze 30

Idee: Generiere viele Adversarial Examples

Nutze diese als zusatzliche Beispiele zum Trainieren

Page 31: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Was tun gegen Adversarial Examples?

Christoph Doell, Rudolf Kruse Neuronale Netze 31

Ursachen: Ubertriebene Konfidenz bei unsicheren Beispielen

Idee: glatte die Grenzen durch Reduzierung der Konfidenz der Lernbeispiele

Dies wird defensive destillation [Papernot et al. 2016] genannt.

Resultat: kontinuierlichere Ausgaben, kritische Manipulationen sind schwierigerzu finden

Page 32: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Anwendung: IQ-Test

Christoph Doell, Rudolf Kruse Neuronale Netze 32

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

Page 33: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

German Traffic Sign Recognition Benchmark (GTSRB)

Christoph Doell, Rudolf Kruse Neuronale Netze 33

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

Page 34: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Visualisierung von gelernten Neuronalen Netzen

Christoph Doell, Rudolf Kruse Neuronale Netze 34

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?

Page 35: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

AlphaGo: Problemstellung Go

Christoph Doell, Rudolf Kruse Neuronale Netze 35

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

Page 36: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

AlphaGo: Ansatz Monte Carlo Suche

Christoph Doell, Rudolf Kruse Neuronale Netze 36

Ansatz: Suche im Spielbaum

Lerne Netz 1 fur menschenahnliche nachste Zuge

Lerne Netz 2 zum Bewerten von Stellungen

Page 37: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

AlphaGo: Ergebnisse

Christoph Doell, Rudolf Kruse Neuronale Netze 37

Sieg gegen Europameister, Fan Hui: 5 zu 0

Sieg gegen Top10 der Weltrangliste, Lee Sedol: 4 zu 1

Page 38: Neuronale Netze - fuzzy.cs.ovgu.defuzzy.cs.ovgu.de/wiki/uploads/Lehre.NN2017/nn_v13_dl.pdf · Deep Learning Christoph Doell, Rudolf Kruse Neuronale Netze 3 Wiederholung Lernen Rekurrenter

Deep Learning Libraries

Christoph Doell, Rudolf Kruse Neuronale Netze 38

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