Universität PotsdamInstitut für Informatik
Lehrstuhl Maschinelles Lernen
Neuronale Netze,Deep Learning
Tobias Scheffer
Maschinelles Lernen
Motivation
Modelle neuronaler Informationsverarbeitung Hoffnung:
Bessere Lösungen für Probleme, in denen Computer schlecht sind (z.B. Bild- und Sprachverarbeitung)
Künstliche Intelligenz als größere Vision Ansatz hat mehrere Popularitätswellen erlebt
Perceptron: Rosenblatt 1960 Verdrängt duch SVM, Bayes‘sche Verfahren Jetzt Stand der Technik Voice Recognition (Google
DeepMind), Face Recognition (Deep Face, 2014)
2
Maschinelles Lernen
Deep Face
Face Verification: zeigen zwei Bilder dieselbe Person?
Multi-Layer-Architektur lernt Merkmale für die Unterscheidung von Personen
Höchste Genauigkeit für Face Identification
3
Maschinelles Lernen
DNNResearch
Von Geoff Hinton gegründet, 2013 von Google gekauft
Object Detection (für Bildersuche) Speech Recognition: Neuronale Netze für
akustische Modellierung Spracherkennung
für Android
4
Maschinelles Lernen
Google X Artificial Brain Larry Pages‘ Vision für
Google: allwissende künstliche Intelligenz mit Zugriff auf alle
verfügbaren Informationen
Verstehen von Texten Verstehen von Sprache Verstehen von Bildern Übersetzen von Texten Verstehen der
Informations-bedürfnisse der Nutzer
5
Maschinelles Lernen
„Rekorde“ von Deep Learning
Neuronale Netze sind genaueste bekannte Verfahren für Objektklassifikation (CIFAR/NORB/PASCAL VOC-
Benchmarks) Videoklassifikation, verschiedene Benchmark-
Datensätze Sentiment-Analysis von Texten (MR-Benchmark) Erkennung von Fußgängern Spracherkennung …
6
Maschinelles Lernen
Feed-Forward-Netzwerke
Typisch für Mustererkennungsaufgaben: Im Eingaberaum liegen Positiv- und Negativbeispiele
(z.B. Bitmaps von Gwyneth Paltrow und Jennifer Aniston) ineinander vermischt
Separierung durch linearen Klassifikator im Pixelraum unmöglich
7
1
0.15...0.98
x 2
0.22...0.17
xGrauwert Pixel 1
Grauwert Pixel 307.200
=?
Maschinelles Lernen
Deep Learning Schrittweise Transformation
der rohen Eingabedaten in höhere Merkmale
Ende der Kette: Merkmale, mit denen sich die Klassen separieren lassen
Beim Training nur Eingabedaten und Label gegeben
Merkmale der Zwischenebenen ergeben sich als Teil der Lösung eines Optimierungsproblems
8
Grauwertmatrix
Lokale Muster
Gesichts-Teile
Individuen-diskriminierendeMerkmale
Label „Gwyneth Paltrow“
Maschinelles Lernen
Deep Learning Bildverarbeitung
Pixel Kanten lokale Muster Objektteile Objekte Text
Zeichen Wort Wortgruppe Klausel Satz Dokument
Sprache Signal Spektralband Phon Phonem Wort …
9
Maschinelles Lernen
Deep Learning
Eine (ausreichend große) Zwischenebene und eine Ausgabeebene genügen grundsätzlich, um jede beliebige Funktion zu approximieren
Aber: Mit mehreren Ebenen genügen häufig viel weniger Knoten Berechnungen können mehrfach verwendet werden
Beispiel: Parity-Funktion N Elemente in log(N) Ebenen Oder 2N Elemente in zwei Ebenen
10
Maschinelles Lernen
Deep Learning
Sind Kernel-Verfahren „tief“? Nein, eine Anwendung der Kernel-Funktion, dann
lineare Funktion Keine Zwischen-Merkmale
Sind Entscheidungsbäume „tief“? Nein, alle Entscheidungen werden anhand der
Eingabeattribute getroffen Es werden keine neuen Merkmale Berechnet
Sind Empfehlungsalgorithmen „tief“? Ja, wenn latente Merkmale berechnet werden Allerdings nur eine Ebene latenter Merkmale
11
Maschinelles Lernen
Überwachtes, unüberwachtes Lernen Überwachtes Lernen
Gesamtes Netzt wird überwacht trainiert (Merkmale der Zwischenebenen Teil der Lösung des
Optimierungsproblems) Unüberwacht + überwachter Klassifikator oben
Ebenen werden sequentiell unüberwacht trainiert Oberste Ebene wird überwacht trainiert
Unüberwachtes Pre-Training + überwachtes Lernen Ebenen werden sequentiell unüberwacht trainiert Mit diesen Startwerten wird danach gesamtes Netz
überwacht trainiert Gut bei vielen ungelabelten, wenigen gelabelten Daten
12
Maschinelles Lernen
Neuronale Informationsverarbeitung
13
Eingänge
Synaptische Gewichte:Werden durch Lernprozesse Verstärkt oder abgeschwächt
Gewichtete Eingangssignale werden aggregiert
Axon:Ausgangssignal:
Gewichtete Eingangssignale
Wah
rsch
einl
ichk
eit
eine
s A
usga
ngs-
Sig
nals
Verbindungen zu anderen Nervenzellen
Signale in Form von „Spikes“
Maschinelles Lernen
Neuronale Informationsverarbeitung: Modell
14
1x
2x
3x
mx
...
1
2
3
...m
T0h x θ
)(hEingabevektor x
Gewichtsvektor θ
AusgabeGewichtete Eingangssignale
Aus
gang
ssig
nal
Maschinelles Lernen
Feed-Forward-Netze
Forward Propagation: Eingabevektor: Lineares Modell: Jede Einheit hat
Parametervektor: Ebene i hat
Parametermatrix:
15
0x
...
1θ
2θ
dθ
1 i
i i ik n θ
01x
dx1
0i i i ik k kh θ x
1 1 0 10k k kh θ x
1 1( )k kx h
2 2 1 20k k kh θ x
2 2( )k kx h
Index kIndex i
Eingabe-Ebene
Verdeckte Ebenen
Ausgabe-Ebene
... 0mx
1
1
11 11
1
i
i i i i
i iin
i
i i in n n n
θθ
θ
Maschinelles Lernen
Feed-Forward-Netze
Forward Propagation: Eingabevektor: Lineares Modell: Aktivierungsfunktion und
Propagation: Ausgabevektor:
16
0x
...
1θ
2θ
dθ
( )i ix hdx
01x
dx
1 1( )k kx h
2 2( )k kx h
Index kIndex i
Eingabe-Ebene
Verdeckte Ebenen
Ausgabe-Ebene
... 0mx
10
i i i ik k kh θ x
2 2 1 20k k kh θ x
1 1 0 10k k kh θ x
Maschinelles Lernen
Feed-Forward-Netze
„Bias Unit“ Lineares Modell: Konstantes Element wird
häufig weggelassen und durch zusätzliche Knoten mit konstanter Aktivierung von 1 ersetzt:
17
...
1θ
2θ
dθ
01x
dx
1 1( )k kx h
2 2( )k kx h
Index kIndex i
... 0mx
1
1
1[1.. 1]k
i i ik k nh
θ x
10
i i i ik k kh θ x
2 2 1 20k k kh θ x
1 1 0 10k k kh θ x
Maschinelles Lernen
Feed-Forward-Netze
Forward Propagation pro Ebene in Vektornotation:
18
...
1θ
2θ
dθ
01x
dx
1 1( )k kx h
2 2( )k kx h
Index kIndex i
... 0mx
1
1
1i i ih θ x
2 2 1 20k k kh θ x
1 1 0 10k k kh θ x
Maschinelles Lernen
Feed-Forward-Netze
Training durch Gradientenabstieg, häufig stochastic Gradient
Fehlerfunktion:
Gradientenabstieg:
Stochastischer Gradient, Bsp. x
19
...
dx
1θ
2θ
dθ
0x
21( ) ( )2
dm j jj
Em
θ y x
2
( )' ( ) '
1 ( )2
mm
dj jj
EE
m
θθ θ θ θθ
y xθ
θ
212 ( )'
d
y xθ θθ
1 1( )k kx h
2 2( )k kx h2 2 1 2
0k k kh θ x
1 1 0 10k k kh θ x
Maschinelles Lernen
Feed-Forward-Netze: Back Propagation
Stochastischer Gradient, Bsp. x
Für Gewichte der obersten Ebene:
Mit:
20
...
1θ
2θ
dθ
0x
212 ( )'
d
y xθ θθ
2x
1x
212 (
)( )
)
'(
dk k
dk
dk
d dk k ky
yh
h
x
x
1
1 1 1
1
2 21 12 2
2
1
1 1
2
1
1
1
1
( ) ( )
( ) )
(
( ((
( '
)
( (
( '( )
) )
)
d
d d d
d d
d d d
d d
d d
k
k k k kd dk k
d d dk k k k
d d dk k kd d
k k kdk
dk
kd
y x y
y
x h
y
y
θ x
θ x θ x θ xθ x θ x
θ
θ x θ x
θ
x
x
x
θ
dx dy x dδ
Maschinelles Lernen
Feed-Forward-Netze: Back Propagation
Für Gewichte der Ebene i:
Mit
21
...
iθ
dθ
2 21 12 2
1
( ) ( )d dk k k k
i
ik
ik
i
ik
ik
k
y x y x hh
θ
x
θ
1
1
2
1
1
1 1
1
12
1
1 12112
1 11
212
( )
( ,..., )( )( ,..., )
( )
'( )
'( )
i
i
ik i
k
ik
il
i i ill k k
i i il lk kli i ik l lk
dk k
i idnk k
i in
d ik k k
l
y x
x xy xx x
y x x
h
h
hh
h
h
x h
0x
ix
dx dy x dδ
...1ix
ikh
1ilx
1ilk
)( ikh
1ix 1iδ
iδ
1iδ
Forw
ard
Pro
paga
tion B
ack Propagation
Maschinelles Lernen
Aktivierungsfunktion
Jede differenzierbare, sigmoide Funktion ist möglich
Beispiel:
22
1( )1 hh
e
'( ) ( )(1 ( ))h h h
Maschinelles Lernen
Back Propagation: Algorithmus
Iteriere über alle Trainingsbeispiele (x, y): Forward Propagation: Für i=0…d:
Für k=1…ni:
Back Propagation: Für k=1…ni:
Für i=d-1…1:• Für k=1…ni:
Bis zur Konvergenz
23
10
i i i ik k kh θ x
( )i ix h
'( )( )d d dk k k kh y x
1 1'( )i i i ik k l lkl
h 1'i i
k ki ik xθ θ
1'd dk k
d dk xθ θ
Maschinelles Lernen
Back Propagation
Fehlerfunktion ist nicht konvex Jede Permutation von Gewichten der inneren Knoten
eines Minimums ergibt wieder ein Minimum Gelernte Merkmale (Gewichte der inneren Knoten)
können ok aber nicht optimal sein Hoffnung:
Lokale Optima können trotzdem beliebig gut sein Bessere Lösung mit mehr Daten
Realität: Back Propagation funktioniert nur für wenige (1,
maximal 2) verdeckte Ebenen Training tiefer Netze endet in lokalem Optimum
24
Maschinelles Lernen
Regularisierung
L2-regularisierte Verlustfunktion
Entspricht normalverteiltem Prior auf Parametern Regularisierter Gradient: Update: Wird auch als Weight Decay bezeichnet. Weitere Formen von Regularisierung verbreitet
Early Stopping (nicht mehr Stand der Technik): Training vor Konvergenz abbrechen
Units mit geringen Gewichten rauswerfen Dropout: Units beim Training zufällig ausblenden Länge der propagierten Vektoren normalisieren
25
212
T2( ) ( )d
m j jm jE θ y x θ θ
1( )i ijmi
jmE δ xθ θ
' j δ xθ θ θ
Maschinelles Lernen
Regularisierung: Dropout
In komplexen Netzen bilden sich durch Co-Adaption von Knoten zu komplexe Mechanismen Nicht robust für neue Testdaten
Dropout: In jedem Trainingsschritt wird ein Anteil (Hyperparameter) der Units ausgeblendet
Bei der Anwendung des trainierten Netzes werden alle Units verwendet.
Verbessert Robustheit: Jeder Knoten muss in unterschiedlichen Kombinationen von anderen Knoten zum Ergebnis beitragen
26
Maschinelles Lernen
Regularisierung: Stochastic Binary Units
Ein stochastisch-binärer Knoten berechnet Aktivierung
Und propagiert mit einer Wahrscheinlichkeit von einen Wert von 1
Ungefähr äquivalent dazu, mit einer festen Wahrscheinlichkeit einen Wert von zu schicken
Mögliche Implementierung von Dropout Biologische Neuronen scheinen sich so zu
verhalten.
27
( )i ik kx h
ikx
ikx
Maschinelles Lernen
Back Propagation: Tricks
Cross-Entropy als Verlust für Klassifikation Stochastic Gradient auf kleinen Batches Trainingsdaten zufällig mischen Lernrate über den Verlauf der Optimierung hinweg
sinken lassen Gewichte zufällig initialisieren (Nullpunkt kann
Sattelpunkt sein) Gewichte durch unsupervised Pre-Training
initialisieren
28
Maschinelles Lernen
Unsupervised Feature Learning
Auto Encoder: Lerne Identitätsfunktion Von m Eingabeknoten über n1 verdeckten Knoten
nach m Ausgabeknoten mit n1 << m. Idee: verdeckte Knoten lernen Repräsentation, aus
denen sich die Daten rekonstruieren lassen.
29
1θ
2θ
01x ... 0
mx
...
Maschinelles Lernen
Auto Encoder
Auto Encoder: Lerne Identitätsfunktion Zusätzliche Regularisierung: verdeckte Knoten
sollen sparse sein, meistens Aktivierung 0 haben. Regularisierungsparameter Regularisierungsterm
Backprop-Updateregel
30
1θ
2θ
01x ... 0
mx
...
0.05
111 11
1|| ) log (1 ) log1
( n
kk k
KLx x
ρ x
2 2 3 31 1
1'( )1k k l lkl
k k
hx x
Maschinelles Lernen
Auto Encoder
Beispiel: Binäre Eingabevektoren mit einer 1. Ausgabe Verdeckt Eingabe
Verdeckte Ebene lernt Binärcode Code-Wörter können aber
beliebig permutiert sein
3131
1θ
2θ
01x ... 0
mx
...
0000 0010 0100 100000 01 10 11
0000 0010 0100 1000
Maschinelles Lernen
Convolution / Faltung
Multiplikation eines Filters mit dem Ausschnitt einer Eingabe: Intensität des Filtersignals an dieser Stelle
Jedes neue Pixel ist Ergebnis einer Konvolution. Verarbeitung von Bildern, Audiosignalen
Z.B. Detektion von Kanten, bestimmten Frequenzen, Muster, Gesichtern
32
1 0,
n n
ij i k j l klk n l n
x x
Maschinelles Lernen
Convolution / Faltung
Verschiedene Detektoren pro Position Z.B. Kanten verschiedener Orientierungen Unterschiedlich skalierte Detektoren
ergeben ein Array von Feature Maps
33
Maschinelles Lernen
Auto Encoder
Beispiel: Eingabe und Ausgabe: gemischte Bilder Gewichte der 25 x # Positionen verdeckten Knoten:
Netzwert lernt Detektorenfür lokale Muster (überwiegend Kanten)
Euto-Encoder-Training mit Back Propagation funktioniertnur mit einer verdeckten Ebene
PCA = linearer Auto Encoder3434
1θ
2θ
01x ... 0
mx
...
Maschinelles Lernen
Restricted Boltzmann Machine
Eingabeebene und eine Ebene verdeckter Knoten Binäre stochastische Knoten Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion:
35
1θ
01x ... 0
mx
11x ... 1
kx0
1 1 0 0 1
0 1 1 0 T 1
T1 1 0 100 0 0 0
1 1 0 00
( , ) ( )
n
n n n n n
E
x h
x h
x h θ x h
00 1x
10 1x
Bias-Units
=0 (Bias-Unitsnicht verbunden)
Maschinelles Lernen
Restricted Boltzmann Machine
Energiefunktion:
P(Aktivierung) ~ Energiefunktion
Z ist Normalisierungsfaktor
36
1θ
01x ... 0
mx
11x ... 1
kx
0 1 1 0 T 1( , ) ( )E x h θ x h
00 1x
10 1x
Bias-Units
0 10 1 ( , )1( , ) EZP e x hx h
0 1
10 ( , )1( ) E
ZP e x hh
x
0 1
0 1 1
0
0 10 1
1
( , )1
( , )1
( , )( | )( )
11
EZ
EZ
PPP
ee e
x
θ
h
x h hx
x hx hh
Maschinelles Lernen
Restricted Boltzmann Machine
Lernen: Maximiere log-Wahrscheinlichkeit der Eingabevektoren.
Gradient:
Energiegradient:
37
1θ
01x ... 0
mx
11x ... 1
kx
00 1x
10 1x
Energiegradient für beobachtete Eingabe
10arg max log ( )P
θx
1
0 1
0
0 11 0
0 11 0
1
1
, 1
log ( )
( , )( | )
( , )( , )
ji
ji
ji
p
Ep
Ep
h
x h
x
x hh x
x hh x
Marginaler Energiegradient
0 1 1 0 T 10 1
1 1
( , ) ( )
ji jii j
E x h
x h θ x h
Maschinelles Lernen
RBM: Sampling von Zuständen
RBM generiert Zustände wie Bayessches Netz MCMC: Iteriere über alle Knoten, abwechselnd
einen Eingaben und verdeckten Knoten Ziehe Aktivierung des Knotens gegeben Aktivierung
der Nachbarn Nach Burn-In-Phase ergibt die Markov-Kette eine
Stichprobe aus der vom Netz modellierten Verteilung
38
Maschinelles Lernen
Restricted Boltzmann Machine: Lernen
Gradient:
Mit
Gewichtungs-Update:
39
1 0 11 1 1
0 0 1 0 11 0 1 0
,
log ( ) ( , ) ( , )( | ) ( | )ji ji ji
p E Ep p
h x h
x x h x hh x h x
0 1 1 0 T 10 1
1 1
( , ) ( )
ji jii j
E x h
x h θ x h
0 1 0 11 1' )(ji ji i j jx h x h
Beobachtete Eingabe
In einem MCMC-Schritt generierter Eingabevektor
Maschinelles Lernen
Restricted Boltzmann Machines
Training einer RBM fügt einem Netzwerk eine weitere Ebene hinzu, auf der eine neue Repräsentation der Trainingsdaten gelernt wird
Bilden die Grundlage tiefer Netzwerke Training wird iterativ, Ebene für Ebene durchgeführt
40
Maschinelles Lernen
Convolutional Networks
Mustererkennung: Objekterkennung, Spracherkennung, Photo Tagger
Idee: Detektoren erzeugen Merkmale aus Bereich der
Eingabe Detektoren mit denselben Gewichten werden auf
unterschiedliche Bereiche angewendet, ergibt ein Feld von Werten eines Merkmals
Z.B. Kantendekektor für Kanten eines bestimmten Winkels wird auf gesamtes Bild angewendet, ergibt Kantenbild
41
Maschinelles Lernen
Convolutional Networks
Knoten mit gekoppelten Gewichten (identische Funktion) werden auf überlappende Bereiche der Eingabe angewandt.
42
1θ
0 0 0 0 01 2 3 4 5( , , , , )x x x x x
11x 1
2x 13x
Gleiche Gewichte
Maschinelles Lernen
Convolutional Networks
Knoten mit gekoppelten Gewichten (identische Funktion) werden auf überlappende Bereiche der Eingabe angewandt.
Parallel angeordnete Layer mit unterschiedlichen Filtern
43
0 0 0 0 01 2 3 4 5( , , , , )x x x x x
Maschinelles Lernen
Convolutional Networks
Für Bildverarbeitung: Pro Filter ergibt sich ein Array von Knoten mit gekoppelten Gewichten
44
Maschinelles Lernen
Convolutional Networks
Beispiel: Kantendetektoren für 8 Richtungen x 5 Skalierungen (Fenstergrößen)
45
Maschinelles Lernen
Convolutional Networks
MaxPooling-Layer: Teile jedes Filter-Array in nicht-überlappende
Bereiche Liefere für jeden Bereich das Maximum zurück
MaxPooling-Layer leisten Ad-Hoc-Dimensionsreduktion
46
Maschinelles Lernen
Convolutional Networks
Beispiel: DeepFace Eingabe: 3 Farbkanäle x 152 x 152 Pixel 32 Filterbänke pro Kanal, 11 x 11 Pixel Breite MaxPooling 16 Filterbänke, 9 x 9 Pixel Breite 3 lokal verknüpfte Layer Diskriminativ trainierte Layer
47
Maschinelles Lernen
Tiefe Autoencoder
Ebene für Ebene weniger Dimensionen Trainiere Restricted Boltzmann Machine
ebenenweise
48
1θ
01x ... 0
mx
...
2θ ...
3θ ......
z.B. 1000 Knoten
z.B. 200 Knoten
z.B. 10 Knoten
Maschinelles Lernen
Tiefe Autoencoder
Autoencoder wird dann „aufgeklappt“ und mit Backpropagation weiter trainiert
Nichtlineare, „tiefe“ Form von PCA
49
1θ
dθ
01x ... 0
mx
...
...
...
......
2θ
3θ
...2θ
...1θ
1dx ... d
mx
Maschinelles Lernen
Tiefe Autoencoder: Beispiel
2D-Visualisierung eines Korpus von Dokumenten TF-Vektor wird auf 500 Dimensionen 250
Dimensionen 2 Dimensionen abgebildet
50
Worthäufigkeiten von vielen Wörtern
1θ ...500 Einheiten
...2θ
3θ
250 Einheiten
2 Einheiten
Maschinelles Lernen
GPU-Training
Grafikkarten eignen sich zur Parallelisierung des Trainings neuronaler Netze Matrixmultiplikation, Faltungen, elementweise
Operationen GPU-Software
CUDA: NVIDIA C-API OPENCL: nicht NVIDIA-spezifisch PyCUDA: Python-API PyOPENCL: nicht NVIDIA-spezifisch
51
Top Related