Download - 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

Transcript
Page 1: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

6. Neuronale Netze

Page 2: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

2

Motivation§ Wir haben in den vorherigen Kapiteln verschiedene

Verfahren zur Regression und Klassifikationkennengelernt (z.B. lineare Regression, SVMs)

§ Abstrakt betrachtet sind alle diese Verfahren in der Lage,eine mathematische Funktion (d.h. Abbildung) zu lernen

§ im Fall von Regression

§ im Fall binärer Klassifikation

Data Science / Kapitel 6: Neuronale Netze

f : Rm ! R

f : Rm ! {0, 1}

Page 3: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

3

Neuronale Netze§ Künstliche neuronale Netze (artificial neural networks)

werden seit den 1940ern als Modell zur Darstellungmathematischer Funktionen erforscht

§ Neuronale Netze unterstützen sowohl Regressionals auch Mehrklassen-Klassifikation (z.B. zumErkennen von Hand geschriebener Ziffern)

§ Renaissance neuronaler Netze in denletzten 5 Jahre: Fortschritte bei tiefenArchitekturen (deep learning) undderen Training mit GPUs

Data Science / Kapitel 6: Neuronale Netze

Page 4: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

4

Gehirn als Inspiration§ Menschliches Gehirn besteht aus

ca. 1010 Nervenzellen (Neuronen),die über Dendriten und Neuritenmiteinander verbunden sind

§ Dendriten nehmen Erregungvon anderen Zellen auf

§ Neuriten geben Erregungan andere Zellen weiter

Data Science / Kapitel 6: Neuronale Netze

Page 5: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

5

Inhalt§ 6.1 Perzeptron

§ 6.2 Feed-Forward Netze

§ 6.3 Back Propagation

§ 6.4 Konvolutionale neuronale Netze

§ 6.4 Rekurrente neuronale Netze

Data Science / Kapitel 6: Neuronale Netze

Page 6: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

6

6.1 Perzeptron§ Wie können wir ein Neuron mathematisch modellieren?

§ es soll Eingaben erhalten und diese kombinieren§ seine Ausgabe soll von kombinierten Eingaben abhängen

§ Perzeptron (perceptron) wurde in den 1950ern als mathematisches Modell eines Neurons vorgestellt

§ es erhält Eingaben x0, …, xm und berechnet eineLinearkombination dieser Werte

§ ist der resultierende Wert kleiner gleich 0, so bleibt das Perzeptron inaktiv (d.h. gibt den Wert 0 aus), andernfalls„feuert es“ und gibt den Wert 1 aus

Data Science / Kapitel 6: Neuronale Netze

Page 7: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

7

Perzeptron

§ Perzeptron berechnet Linearkombination der Eingaben xj

und wendet eine Aktivierungsfunktion

auf das Ergebnis an, um die Ausgabe zu bestimmen Data Science / Kapitel 6: Neuronale Netze

g : R æ [0, 1]

xm

x0 = 1

g, w g

Q

amÿ

j=0wj xj

R

b

z =mX

j=0

wj xj

Page 8: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

8

Perzeptron§ Eingabe x0 wird als 1 angenommen und das zugehörige

Gewicht w0 entspricht damit dem konstanten Term(vgl. multiple lineare Regression)

§ Perzeptron (perceptron) verwendet Treppenfunktion(step function) als Aktivierungsfunktion

Data Science / Kapitel 6: Neuronale Netze

-4 -2 0 2 4

0.0

0.2

0.4

0.6

0.8

1.0

g(z) =;

0 : z Æ 01 : z > 0

Page 9: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

9

Einschichtige neuronale Netze§ Ein einschichtiges neuronales Netz, als einfachster Fall,

besteht aus einem einzelnen Neuron (z.B. Perzeptron),das zu einer Eingabe (Daten) eine Ausgabe bestimmt

§ Welche Funktionen können wir mit solch einem einfachenneuronalen Netzwerk darstellen?

Data Science / Kapitel 6: Neuronale Netze

Eingabe Ausgabe

Page 10: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

10

AND und OR als neuronale Netze§ Perzeptron beschreibt eine separierende Hyperebene,

welche Eingaben in zwei Klassen einteilt

0.0 0.2 0.4 0.6 0.8 1.0

0.0

0.2

0.4

0.6

0.8

1.0

x1

x 2

0.0 0.2 0.4 0.6 0.8 1.0

0.0

0.2

0.4

0.6

0.8

1.0

x1

x 2

AND OR

Data Science / Kapitel 6: Neuronale Netze

Page 11: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

11

AND als neuronales Netz

0.0 0.2 0.4 0.6 0.8 1.0

0.0

0.2

0.4

0.6

0.8

1.0

x1

x 2

Eingabe Ausgabe

-0.3

0.2

0.2

x0

x1

x2

AND

Data Science / Kapitel 6: Neuronale Netze

≠0.3 + 0.2 · x1 + 0.2 · x2 > 0

Page 12: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

12

OR als neuronales Netz

0.0 0.2 0.4 0.6 0.8 1.0

0.0

0.2

0.4

0.6

0.8

1.0

x1

x 2

OR

Eingabe Ausgabe

-0.1

0.5

0.5

x0

x1

x2

Data Science / Kapitel 6: Neuronale Netze

≠0.1 + 0.5 · x1 + 0.5 · x2 > 0

Page 13: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

13

NOT als neuronales Netz

Data Science / Kapitel 6: Neuronale Netze

Eingabe Ausgabe

0.2

-0.3

x0

x1

0.2 ≠ 0.3 · x1 > 0

Page 14: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

14

Lernen der Parameter§ Wie können wir die Parameter (d.h. die Gewichte wj)

eines Perzeptrons aus Trainingsdaten lernen?

§ Idee: Berechne für jeden Datenpunkt Ausgabe o mit aktuellen Gewichten; weicht diese von gewünschterAusgabe t ab, korrigiere die Gewichte in Richtungder gewünschten Ausgabe

§ Beispiel: Für einen Datenpunkt sei o = 1 und t = 0,daher muss das Gewicht wj bei positiver (negativer)Eingabe xj reduziert (erhöht) werden

Data Science / Kapitel 6: Neuronale Netze

Page 15: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

15

Lernen der Parameter§ Regel zur Anpassung der Gewichte eines Perzeptrons

mit Lernrate η (ein gängiger Wert ist 0.1)

§ Zum Training mit mehreren Datenpunkten durchläuft mandiese und wendet die Regel für jeden an; dies wiederholtman eine bestimmte Anzahl von Epochen oderbis sich die Gewichte nicht mehr ändern

Data Science / Kapitel 6: Neuronale Netze

wj Ω wj + ÷(t ≠ o)xj

Page 16: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

16

Lernen der Parameter§ Beispiel: Wir lernen die Parameter der Funktion AND

unter Verwendung der folgenden Datenpunkte

§ Prinzipiell können wir die Gewichte zufällig initialisieren,wählen hier jedoch für jedes den initialen Wert 0.5

§ In jeder Epoche durchlaufen wir die vier Datenpunktein der angegebenen Reihenfolge

Data Science / Kapitel 6: Neuronale Netze

x0 x1 x2 t

1 0 0 01 0 1 01 1 0 01 1 1 1

Page 17: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

17

Lernen der Parameter§ Initiale Gewichte

§ Gewichte nach erster Epoche

§ Gewichte nach zweiter Epoche

§ Gewichte nach dritter Epoche

§ Nach der dritten Epoche stimmt die Ausgabe für alle Datenpunkte, so dass keine weitere Anpassung nötig ist

Data Science / Kapitel 6: Neuronale Netze

w0 = 0.5 w1 = 0.5 w2 = 0.5

w0 = 0.2 w1 = 0.4 w2 = 0.4

w0 = ≠0.1 w1 = 0.3 w2 = 0.3

w0 = ≠0.3 w1 = 0.2 w2 = 0.2

Page 18: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

18

Lernen der Parameter in Python

§ Vollständiges Jupyter-Notebook unter:http://swl.htwsaar.de/.../2017-vl-ds-kap6-neuronale-netze.htmlhttp://swl.htwsaar.de/.../2017-vl-ds-kap6-neuronale-netze.ipynb

Data Science / Kapitel 6: Neuronale Netze

# Lernrateeta = 0.1

# Parameter (als 0.5 initialisiert)w = [0.5, 0.5, 0.5]

# DatenpunkteX = [[1, 0, 0], [1, 0, 1], [1, 1, 0], [1, 1, 1]]

# Gewünschte Ausgabet = [0, 0, 0, 1]

# Lerne für 10 Epochenfor epoch in range(0, 10):

for i in range(0, len(X)):# Ausgabe für Datenpunkt berechneno = (0 if w[0]*X[i][0] + w[1]*X[i][1] + w[2]*X[i][2] <= 0 else 1)# Parameter aktualisierenfor j in range(0, len(w)):

w[j] = w[j] + eta*(t[i]-o)*X[i][j]print(w)

Page 19: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

19

Darstellungskraft einfacher neuronaler Netze§ Können wir mit einem einfachen neuronalen Netz,

bestehend aus einem Perzeptron, allebinären Booleschen Funktionendarstellen?

§ Nein! XOR lässt sich z.B.nicht mit einem einzelnenPerzeptron darstellen

Data Science / Kapitel 6: Neuronale Netze

0.0 0.2 0.4 0.6 0.8 1.0

0.0

0.2

0.4

0.6

0.8

1.0

x1

x 2

XOR

:o(

Page 20: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

20

Neuronale Netze mit verborgenen Schichten§ XOR lässt sich mittels eines mehrschichtigen neuronalen

Netzes darstellen; innere Schichten von Neuronenwerden als verborgen (hidden) bezeichnet

Eingabe Ausgabe

x0

x1

x2

x3

x4

x5

-0.2

-0.2

0.3

-0.2

0.3

-0.2

-0.1

0.5

0.5

x3 = (x1 · ¬ x2)

x4 = (¬ x1 · x2)

x5 = (x3 ‚ x4)

0.0 0.2 0.4 0.6 0.8 1.0

0.0

0.2

0.4

0.6

0.8

1.0

x1

x 2

XORData Science / Kapitel 6: Neuronale Netze

Innere Schicht

Page 21: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

21

Neuronale Netze mit verborgenen Schichten§ Alternativ können wir die Perzeptren zur Darstellung von

AND, OR und NOT als Bausteine verwenden und daraus ein mehrschichtiges neuronalesNetz zur Darstellung von XORzusammensetzen

§ Auf diese Art und Weise lassen sich beliebige BoolescheFunktionen mittels mehrschichtiger neuronalerNetze darstellen

Data Science / Kapitel 6: Neuronale Netze

Page 22: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

22

Neuronale Netze mit verborgenen Schichten

§ Gewichte (vgl. Übungsblatt 6)

Data Science / Kapitel 6: Neuronale Netze

Eingabe

x0

x1

x2

x1

¬x1

¬x2

x2

x1 · ¬x2

¬x1 · x2

x0 x0

(x1 · ¬x2)‚

(¬x1 · x2)

AusgabeInnere Schichten

Page 23: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

23

Zusammenfassung§ Neuronale Netze sind von der Arbeitsweise des Gehirns

inspiriert und dienen der Darstellung von Funktionen

§ Perzeptron, als eine Art von künstlichem Neuron,kombiniert seine Eingaben linear und wendet dann eine Schrittfunktion als Aktivierungsfunktion an; seine Parameter lassen sich aus Daten lernen

§ Mehrschichtige neuronale Netze von Perzeptren können beliebige Boolesche Funktionen darstellen

Data Science / Kapitel 6: Neuronale Netze

Page 24: 6. Neuronale Netze - swl.htwsaar.de · 3 Neuronale Netze § Künstliche neuronale Netze (artificialneuralnetworks) werden seit den 1940ern als Modell zur Darstellung mathematischer

24

Literatur[1] S. Raschka: Machine Learning in Python,

mitp, 2017 (Kapitel 2 und 12)

[2] T. Mitchell: Machine Learning,McGraw Hill, 1997 (Kapitel 4)

[3] M. A. Nielsen: Neural Networks and Deep Learning,Determination Press, 2015http://neuralnetworksanddeeplearning.com

Data Science / Kapitel 6: Neuronale Netze