6. Neuronale Netze - swl.htwsaar.de · 15 Lernen der Parameter § Regel zur Anpassung der Gewichte...

Post on 27-Sep-2019

3 views 0 download

Transcript of 6. Neuronale Netze - swl.htwsaar.de · 15 Lernen der Parameter § Regel zur Anpassung der Gewichte...

6. Neuronale Netze

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}

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

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

5

Inhalt§ 6.1 Perzeptron

§ 6.2 Feed-Forward Netze

§ 6.3 Back Propagation

Data Science / Kapitel 6: Neuronale Netze

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

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

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

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

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

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

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

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

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 Richtung

der 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

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

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 Datenpunkte

in 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

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

18

Lernen der Parameter in Python

§ Vollständiges Jupyter-Notebook unter:[HTML][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)

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(

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

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

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

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

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, 2015

http://neuralnetworksanddeeplearning.com

Data Science / Kapitel 6: Neuronale Netze

25

6.2 Feed-Forward Netze§ Wir haben gesehen, dass wir mit neuronalen Netzen

bestehend aus einer oder mehreren Schichtenvon Perzeptren beispielsweise logischeFunktionen darstellen können

§ Nun betrachten wir sogenannte vorwärtsgerichteteneuronale Netze (feed forward networks), dieverwendet werden können, um Regressions-und Klassifikationsprobleme zu lösen

§ Auch wenn vorwärtsgerichtete Netze keine Perzeptrenverwenden, heißen sie auch Multilayer Percepton (MLP)

Data Science / Kapitel 6: Neuronale Netze

26

Sigmoid-Neuron

§ 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

27

Sigmoid-Neuron§ Bei einem Sigmoid-Neuron kommt die logistische

Funktion, die wir bereits bei logistischer Regression gesehen haben, zum Einsatz

Data Science / Kapitel 6: Neuronale Netze

-4 -2 0 2 40.0

0.2

0.4

0.6

0.8

1.0

g(x) = 11+e≠x = ex

1+ex

28

Feed-Forward Netze§ Ein vorwärtsgerichtetes neuronales Netz besteht aus

§ einer Eingabeschicht (input layer) mit den Eingabewerten

§ einer oder mehrerer verborgener Schichten (hidden layers)bestehend aus mehreren Sigmoid-Neuronen

§ einer Ausgabeschicht (output layer) bestehend aus einem oder mehreren Sigmoid-Neuronen

§ Jede Einheit der l-ten Schicht ist mit jeder Einheit der(l + 1)-ten Schicht verbunden, daher auchdie Bezeichnung „vorwärtsgerichtet“

Data Science / Kapitel 6: Neuronale Netze

29

Feed-Forward Netze§ Beispiel: Vorwärtsgerichtetes neuronales Netz mit zwei

verborgenen Schichten bestehend aus zwei Neuronen

Data Science / Kapitel 6: Neuronale Netze

Eingabe AusgabeVerborgene Schichten

a(2)0

a(2)1

a(2)2

a(3)0

a(3)1

a(3)2

a(4)1

x0

x1

x2

a(1)0

a(1)1

a(1)2

w(1)1,0

30

Feed-Forward Netze§ Die Ausgaben der Neuronen a0

(l) werden für die Eingabeschicht und alle inneren Schichtenals 1 angenommen

§ Das Gewicht der Verbindung zwischen dem k-ten Neuronder l-ten Schicht ak(l) und dem j-ten Neuron der (l + 1)-tenSchicht aj(l + 1) wird als wj,k(l) bezeichnet

Data Science / Kapitel 6: Neuronale Netze

31

Feed-Forward Netze§ Die verborgenen Schichten eines vorwärtsgerichteten

neuronalen Netzes können sich in der Anzahlihrer Neuronen unterscheiden

§ Die Anzahl verborgener Schichten sowie die jeweiligeAnzahl von Neuronen sind Hyperparameter, diewir mit den bekannten Validierungsverfahren(z.B. Kreuzvalidierung) optimieren können

Data Science / Kapitel 6: Neuronale Netze

32

Vorwärtspropagierung§ Die Ausgabe eines vorwärtsgerichteten neuronalen Netzes

berechnen mir mittels Vorwärtspropagierung(d.h. von links nach rechts)

§ berechne die Ausgaben der Neuronen der zweiten Schichtbasierend auf den Eingaben

§ berechne die Ausgaben der Neuronen der dritten Schichtbasierend auf den Ausgaben der Neuronender zweiten Schicht

§ …

Data Science / Kapitel 6: Neuronale Netze

33

Vorwärtspropagierung§ Die Ausgabe des k-ten Neuron der l-ten Schicht ak(l) wird

hierbei berechnet als

mit m als Anzahl von Neuronen in der (l - 1)-ten Schicht

Data Science / Kapitel 6: Neuronale Netze

a(l)k = g(z(l)

k )

z(l)k = a(l≠1)

0 w(l≠1)k,0 + a(l≠1)

1 w(l≠1)k,1 + . . . + a(l≠1)

m w(l≠1)k,m

34

Vorwärtspropagierung§ Beispiel:

Data Science / Kapitel 6: Neuronale Netze

Eingabe

x0

x1

x2

AusgabeVerborgene Schichten

a(2)0

a(2)1

a(2)2

a(3)0

a(3)1

a(3)2

a(4)1

0.5 0.1

0.5

0.1

0.1

0.5

1.0

1.0

0.1

0.1

1.0

0.5

0.5

0.1

0.5

1

0.2

0.5

a(2)1 = g(1 · 0.1 + 0.2 · 0.5 + 0.5 · 0.1) ¥ 0.56

1

0.56

0.68

0.84

0.77

0.73

35

Logistische Regression als neuronales Netz

Data Science / Kapitel 6: Neuronale Netze

Eingabe Ausgabe

36

Mehrfachklassifikation als neuronales Netz

§ Die Ausgaben spiegeln Klassenwahrscheinlichkeiten wider

Data Science / Kapitel 6: Neuronale Netze

Eingabe Ausgabe

37

6.3 Back-Propagation§ Wie können wir die Gewichte eines vorwärtsgerichteten

neuronalen Netzes anhand von Trainingsdaten lernen?

§ Trainingsdaten bestehen aus Eingaben x(i) und den zugehörigen erwarteten Ausgaben y(i)

§ bei logistischer Regression ist die Ausgabeein Wert in {0,1}

§ bei Mehrfachklassifikation ist die Ausgabeein binärer Vektor (one-hot encoding)

Data Science / Kapitel 6: Neuronale Netze

38

Back-Propagation§ Wie beim Perzeptron betrachten wir in jeder Epoche

jede der Eingaben, in zufälliger Reihenfolge, und berechnen mittels Vorwärtspropagierungdie Ausgabe des neuronalen Netzesmit den aktuellen Gewichten

§ Stimmt die Ausgabe des neuronalen Netzes nicht mit der gewünschten Ausgabe überein, müssen wir seineGewichte derart anpassen, dass seine Ausgabenäher an die gewünschte Ausgabe rückt

Data Science / Kapitel 6: Neuronale Netze

39

Back-Propagation§ Das Anpassen der Gewichte erfolgt mittels einer

Rückwärtspropagierung (d.h. von rechts nach links)des beobachteten Fehlers durch die Schichtender neuronalen Netzes

§ Ist die l-te Schicht unsere Ausgabeschicht, so erhaltenwir den beobachteten Fehler für eine Eingabe als

Data Science / Kapitel 6: Neuronale Netze

”(l) = a(l) ≠ y

40

Back-Propagation§ Wir propagieren den Fehler wie folgt rückwärts zur(l - 1)-ten Schicht, indem wir für jedes Neuronseinen Fehler berechnen als

Data Science / Kapitel 6: Neuronale Netze

”(l≠1)j =

ÿ

k

w(l≠1)k,j ”(l)

k a(l≠1)j (1 ≠ a(l≠1)

j )

41

Back-Propagation§ Das Gewicht der Verbindung zwischen dem i-ten Neuron

der (l +1)-ten Schicht ai(l+1) und dem j-ten Neuron der l-tenSchicht aj(l) wird dann wie folgt aktualisiert

mit Lernrate η

Data Science / Kapitel 6: Neuronale Netze

w(l)i,j = w(l)

i,j ≠ ÷ a(l)j ”(l+1)

i

42

Back-Propagation

Data Science / Kapitel 6: Neuronale Netze

Eingabe

x0

x1

x2

AusgabeVerborgene Schichten

a(2)0

a(2)1

a(2)2

a(3)0

a(3)1

a(3)2

a(4)1

0.5 0.1

0.5

0.1

0.1

0.5

1.0

1.0

0.1

0.1

1.0

0.5

0.5

0.1

0.5

1

0.2

0.5

1

0.56

0.68

0.84

0.77

0.73

0

÷ = 0.1

0.43

0.44

0.04

”(3)1 = 0.00

”(4)1 = 0.73

”(3)2 = 0.05

”(3)2 = 0.01

43

Andere Architekturen neuronaler Netze§ Andere Architekturen neuronaler Netze existieren

neben den vorwärtsgerichteten Netzen

§ Rekurrente neuronale Netze (recurrent neural networks) enthalten Zyklen, d.h. eine Schicht kann Ausgabe nachgelagerter Schicht als Eingabe erhalten

§ Konvolutionale neuronale Netze (convolutional neuralnetworks) berücksichtigen die räumliche Strukturder Eingabe (z.B. eines Bildes) und fassendiese hierarchisch zusammen

Data Science / Kapitel 6: Neuronale Netze

44

Implementierung neuronaler Netze§ Zur Implementierung neuronaler Netze haben sich in

den letzten Jahren verschiedene Bibliotheken etabliert

§ TensorFlow (https://www.tensorflow.org) und Theano (http://deeplearning.net/software/theano/)erlauben das Training von Modellen auf CPU und GPU

§ Keras (https://keras.io) erlaubt die einfache Spezifikationder Architektur eines neuronalen Netzes und kannzum Training auf andere TensorFlow und Theanozurückgreifen

Data Science / Kapitel 6: Neuronale Netze

45

MNIST-Datensatz§ Ein häufig verwendeter Datensatz im Bereich Machine

Learning sind die sogenannten MNIST-Daten(http://yann.lecun.com/exdb/mnist/)

§ Der Datensatz enthält von Hand geschriebene Ziffern(0-9), wobei jede als Bild bestehend aus 28x28 Pixeln mit Grauwerten (0-255) abgelegt ist

Data Science / Kapitel 6: Neuronale Netze

46

MNIST-Datensatz§ Insgesamt sind 60.000 Ziffern als Trainingsdaten

und 10.000 Ziffern als Testdaten enthalten

§ Die Ziffern wurden von 250 verschiedenen Personengeschrieben, 125 davon Studierende und 125 davon Mitarbeiter des National Institute of Standards andTechnology (NIST)

Data Science / Kapitel 6: Neuronale Netze

47

Neuronales Netz zur Klassifikation von Ziffern§ Wir verwenden nun Keras, um ein neuronales Netz

zu implementieren, welches die Ziffern in dieKlassen (0-9) klassifiziert

§ Das neuronale Netz soll folgende Architektur haben

§ die Eingabeschicht besteht aus 784 Eingabewerten§ zwei verborgene Schichten mit jeweils 128 Neuronen§ die Ausgabeschicht besteht aus 10 Neuronen

Data Science / Kapitel 6: Neuronale Netze

48

Neuronales Netz zur Klassifikation von Ziffern

Data Science / Kapitel 6: Neuronale Netze

import numpy as npfrom keras.datasets import mnistfrom keras.models import Sequentialfrom keras.layers.core import Dense, Activationfrom keras.optimizers import SGDfrom keras.utils import np_utilsnp.random.seed(1671)

# Parameter des neuronalen Netzes und bzgl. TrainingNB_EPOCH = 100BATCH_SIZE = 128VERBOSE = 1NB_CLASSES = 10OPTIMIZER = SGD()N_HIDDEN = 128VALIDATION_SPLIT=0.2

# MNIST-Daten herunterladen und vorbereiten(X_train, y_train), (X_test, y_test) = mnist.load_data()RESHAPED = 784X_train = X_train.reshape(60000, RESHAPED)X_test = X_test.reshape(10000, RESHAPED)X_train = X_train.astype('float32')X_test = X_test.astype('float32')

# MNIST-Daten normalisierenX_train /= 255X_test /= 255

49

Neuronales Netz zur Klassifikation von Ziffern

§

§ vgl. A. Gulli und S. Pal: Deep Learning with Keras,Packt Publishing, 2017

Data Science / Kapitel 6: Neuronale Netze

# One-Hot Encoding durchführenY_train = np_utils.to_categorical(y_train, NB_CLASSES)Y_test = np_utils.to_categorical(y_test, NB_CLASSES)

# Architektur des neuronalen Netzes beschreibenmodel = Sequential()model.add(Dense(N_HIDDEN, input_shape=(RESHAPED,)))model.add(Activation('sigmoid'))model.add(Dense(N_HIDDEN))model.add(Activation('sigmoid'))model.add(Dense(NB_CLASSES))model.add(Activation('sigmoid'))model.summary()

# Modell umsetzenmodel.compile(loss='categorical_crossentropy', optimizer=OPTIMIZER, metrics=['accuracy'])

# Modell trainierenhistory = model.fit(X_train, Y_train, batch_size=BATCH_SIZE,

epochs=NB_EPOCH, verbose=VERBOSE, validation_split=VALIDATION_SPLIT)

# Gütemaße ausgebenscore = model.evaluate(X_test, Y_test, verbose=VERBOSE)print("Test score:", score[0])print("Test accuracy:", score[1])

50

Neuronales Netz zur Klassifikation von Ziffern§ Vollständiges Jupyter-Notebook unter:

[HTML][IPYNB]

§ Das trainierte neuronale Netz erreicht auf den Testdatennach 100 Epochen eine Genauigkeit (accuracy)von 91.85%

§ Die Genauigkeit lässt sich durch Verwendung andererAktivierungsfunktionen (Rectified Linear Unit, Softmax)weiter steigern

Data Science / Kapitel 6: Neuronale Netze

51

Zusammenfassung§ Sigmoid-Neuron verwendet die logistische Funktion

als Aktivierungsfunktion

§ Vorwärtsgerichtete neuronale Netze besitzen mehrereverborgene Schichten, von denen aufeinanderfolgendevollständig miteinander verbunden sind

§ Backpropagation erlaubt das Lernen von Gewichteneines vorwärtsgerichteten neuronalen Netzes

§ Keras als aktuelle Bibliothek zur Implementierung neuronaler Netze und Training auf CPU/GPU

Data Science / Kapitel 6: Neuronale Netze

52

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, 2015

http://neuralnetworksanddeeplearning.com

[4] A. Gulli and S. Pal: Deep Learning with Keras

Packt Publishing, 2017

Data Science / Kapitel 6: Neuronale Netze