51
Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen Neuronale Netze, Deep Learning Tobias Scheffer

Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

  • Upload
    buikien

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

Universität PotsdamInstitut für Informatik

Lehrstuhl Maschinelles Lernen

Neuronale Netze,Deep Learning

Tobias Scheffer

Page 2: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

Page 3: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

Page 4: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

Page 5: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

Page 6: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

Page 7: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

=?

Page 8: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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“

Page 9: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

Page 10: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

Page 11: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

Page 12: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

Page 13: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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“

Page 14: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

Page 15: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

Maschinelles Lernen

Feed-Forward-Netze

Forward Propagation: Eingabevektor: Lineares Modell: Jede Einheit hat

Parametervektor: Ebene i hat

Parametermatrix:

15

0x

...

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

θθ

θ

Page 16: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

Maschinelles Lernen

Feed-Forward-Netze

Forward Propagation: Eingabevektor: Lineares Modell: Aktivierungsfunktion und

Propagation: Ausgabevektor:

16

0x

...

( )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

Page 17: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

...

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

Page 18: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

Maschinelles Lernen

Feed-Forward-Netze

Forward Propagation pro Ebene in Vektornotation:

18

...

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

Page 19: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

Maschinelles Lernen

Feed-Forward-Netze

Training durch Gradientenabstieg, häufig stochastic Gradient

Fehlerfunktion:

Gradientenabstieg:

Stochastischer Gradient, Bsp. x

19

...

dx

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

Page 20: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

Maschinelles Lernen

Feed-Forward-Netze: Back Propagation

Stochastischer Gradient, Bsp. x

Für Gewichte der obersten Ebene:

Mit:

20

...

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δ

Page 21: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

Maschinelles Lernen

Feed-Forward-Netze: Back Propagation

Für Gewichte der Ebene i:

Mit

21

...

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δ

1iδ

Forw

ard

Pro

paga

tion B

ack Propagation

Page 22: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

Maschinelles Lernen

Aktivierungsfunktion

Jede differenzierbare, sigmoide Funktion ist möglich

Beispiel:

22

1( )1 hh

e

'( ) ( )(1 ( ))h h h

Page 23: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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θ θ

Page 24: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

Page 25: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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θ θ θ

Page 26: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

Page 27: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

Page 28: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

Page 29: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

01x ... 0

mx

...

Page 30: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

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

Page 31: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

01x ... 0

mx

...

0000 0010 0100 100000 01 10 11

0000 0010 0100 1000

Page 32: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

Page 33: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

Maschinelles Lernen

Convolution / Faltung

Verschiedene Detektoren pro Position Z.B. Kanten verschiedener Orientierungen Unterschiedlich skalierte Detektoren

ergeben ein Array von Feature Maps

33

Page 34: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

01x ... 0

mx

...

Page 35: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

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)

Page 36: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

Maschinelles Lernen

Restricted Boltzmann Machine

Energiefunktion:

P(Aktivierung) ~ Energiefunktion

Z ist Normalisierungsfaktor

36

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

Page 37: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

Maschinelles Lernen

Restricted Boltzmann Machine

Lernen: Maximiere log-Wahrscheinlichkeit der Eingabevektoren.

Gradient:

Energiegradient:

37

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

Page 38: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

Page 39: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

Page 40: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

Page 41: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

Page 42: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

Maschinelles Lernen

Convolutional Networks

Knoten mit gekoppelten Gewichten (identische Funktion) werden auf überlappende Bereiche der Eingabe angewandt.

42

0 0 0 0 01 2 3 4 5( , , , , )x x x x x

11x 1

2x 13x

Gleiche Gewichte

Page 43: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

Page 44: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

Maschinelles Lernen

Convolutional Networks

Für Bildverarbeitung: Pro Filter ergibt sich ein Array von Knoten mit gekoppelten Gewichten

44

Page 45: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

Maschinelles Lernen

Convolutional Networks

Beispiel: Kantendetektoren für 8 Richtungen x 5 Skalierungen (Fenstergrößen)

45

Page 46: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

Page 47: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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

Page 48: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

Maschinelles Lernen

Tiefe Autoencoder

Ebene für Ebene weniger Dimensionen Trainiere Restricted Boltzmann Machine

ebenenweise

48

01x ... 0

mx

...

2θ ...

3θ ......

z.B. 1000 Knoten

z.B. 200 Knoten

z.B. 10 Knoten

Page 49: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

Maschinelles Lernen

Tiefe Autoencoder

Autoencoder wird dann „aufgeklappt“ und mit Backpropagation weiter trainiert

Nichtlineare, „tiefe“ Form von PCA

49

01x ... 0

mx

...

...

...

......

...2θ

...1θ

1dx ... d

mx

Page 50: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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θ

250 Einheiten

2 Einheiten

Page 51: Neuronale Netze, Deep Learning - cs.uni-potsdam.de · Bias-Units auf jeder Ebene - log P(Aktivierung) ~ Energiefunktion Energiefunktion: 35 θ1 0 x 1... 0 x m 1 x 1... 1 x k 0 11001

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