SlideShare ist ein Scribd-Unternehmen logo
It‘s not Rocket-Science:
Neuronale Netze
Lars Röwekamp | @mobileLarson
#WISSENTEILEN by OPEN KNOWLEDGE
@mobileLarson
CIO New Technologies
OPEN KNOWLEDGE
Lars Röwekamp
@mobileLarson
CIO New Technologies
OPEN KNOWLEDGE
Lars Röwekamp
Architecture
Microservices
Cloud
AI & ML
<
<
<
<
ÜBER OPEN KNOWLEDGE
Branchenneutrale Softwareentwicklung & IT-Beratung
Neuronale Netze
„Eine Einordnung“
„Artificial Intelligence is a system’s ability
to correctly interpret external data,
to learn from such data, and to use those learnings
to achieve specific goals and tasks
through flexible adaptation.“
(Andreas Kaplan & Michael Haenlein, 2018)
künstliche Intelligenz
starke
KI
schwache KI
echte Nachbildung des
menschlichen Bewusstseins
(bis heute nicht existent)
Maschine, die
menschliches
Verhalten (teilweise)
imitiert
künstliche Intelligenz
starke
KI
schwache KI
Machine
Learning
echte Nachbildung des
menschlichen Bewusstseins
(bis heute nicht existent)
Teilgebiet der künstlichen
Intelligenz: lernt mittels
statistischer Methoden
und kann sich anhand von
Erfahrungen verbessern
Maschine, die
menschliches
Verhalten (teilweise)
imitiert
Teilgebiet des Machine
Learnings: bedient sich
mehrschichtiger neuronaler
Netze zum Lernen/Entscheiden
künstliche Intelligenz
starke
KI
schwache KI
Deep
Learning
Machine
Learning
echte Nachbildung des
menschlichen Bewusstseins
(bis heute nicht existent)
Teilgebiet der künstlichen
Intelligenz: lernt mittels
statistischer Methoden
und kann sich anhand von
Erfahrungen verbessern
Maschine, die
menschliches
Verhalten (teilweise)
imitiert
Neuronale Netze
zum Lernen und Entscheiden
künstliche Intelligenz
starke
KI
schwache KI
Deep
Learning
Machine
Learning
Quelle: https://news.microsoft.com/de-de/deep-learning-whitepaper/
Quelle: https://news.microsoft.com/de-de/deep-learning-whitepaper/
Programmier Paradigmen
Klassische
Programmierung
Answers
Die Welt, wie wir sie kennen (und lieben),
aka Kausalität.
Rules
Input
Machine
Learning
Input
Answer
Rule
Programmier Paradigmen
Die Welt, wie sie uns in ML erwartet,
aka Korrelation.
Neuronale Netze
„Vorhersagen“
Die Vorhersagemaschine v1.0
Machine
Learning
Input
Answer
Rule?
Wie sieht die Korrelation
zwischen Input und Answer aus?
Die Vorhersagemaschine v1.0
Machine
Learning
Rule?
100
km
62.137
miles
Wie sieht die Korrelation
zwischen KM und Miles aus?
Die Vorhersagemaschine v1.0
miles = 0.5 x km 50 vs 62.147
100
km
62.137
miles
*
*willkürlich geratener Wert
Wie sieht die Korrelation
zwischen KM und Miles aus?
Die Vorhersagemaschine v1.0
miles = 0.5 x km 50 vs 62.147
100
km
62.137
miles
*
*willkürlich geratener Wert
Wie sieht die Korrelation
zwischen KM und Miles aus?
FEHLER
Das ist nicht ganz korrekt!
62,137 – 50 = 12,137
Die Vorhersagemaschine v1.0
miles = 0.5 x km 50 vs 62.147
100
km
62.137
miles
*
*willkürlich geratener Wert
Wie sieht die Korrelation
zwischen KM und Miles aus?
Parameter
anpassen
+ 0.1
Das ist nicht ganz korrekt!
62,137 – 50 = 12,137
FEHLER
Die Vorhersagemaschine v1.0
miles = 0.6 x km 60 vs 62.147
100
km
62.137
miles
Wie sieht die Korrelation
zwischen KM und Miles aus?
Die Vorhersagemaschine v1.0
miles = 0.6 x km 60 vs 62.147
100
km
62.137
miles
Wie sieht die Korrelation
zwischen KM und Miles aus?
Das ist nicht ganz korrekt!
62,137 – 60 = 2,137
FEHLER
Die Vorhersagemaschine v1.0
miles = 0.6 x km 60 vs 62.147
100
km
62.137
miles
Wie sieht die Korrelation
zwischen KM und Miles aus?
Das ist nicht ganz korrekt!
62,137 – 60 = 2,137
FEHLER
Parameter
anpassen
+ 0.1
Die Vorhersagemaschine v1.0
miles = 0.7 x km 70 vs 62.147
100
km
62.137
miles
Wie sieht die Korrelation
zwischen KM und Miles aus?
Die Vorhersagemaschine v1.0
miles = 0.7 x km 70 vs 62.147
100
km
62.137
miles
Wie sieht die Korrelation
zwischen KM und Miles aus?
Wow, falsche Richtung!
62,137 – 70 = -7,863
FEHLER
Die Vorhersagemaschine v1.0
miles = 0.7 x km 70 vs 62.147
100
km
62.137
miles
Wie sieht die Korrelation
zwischen KM und Miles aus?
Wow, falsche Richtung!
62,137 – 70 = -7,863
FEHLER
Parameter
anpassen
- 0.08
Die Vorhersagemaschine v1.0
miles = 0.62 x km 62 vs 62.147
100
km
62.137
miles
Wie sieht die Korrelation
zwischen KM und Miles aus?
Die Vorhersagemaschine v1.0
miles = 0.62 x km 62 vs 62.147
100
km
62.137
miles
Wie sieht die Korrelation
zwischen KM und Miles aus?
Ok, damit kann ich leben!
62,137 – 62 = 0,147
Die Vorhersagemaschine v1.0
miles = 0.62 x km
100
km
62.137
miles
Wie sieht die Korrelation
zwischen KM und Miles aus?
Miles = 0.62 x km
(+/- 0.22% Abweichung)
Rule
Die Vorhersagemaschine v1.0
INPUT
100km
OUTPUT
ca 62 miles
MODELL
NEURON
(Parameter)
Input x 0.62 = Output
Es besteht eine „unbekannte“ Relation zwischen einer
EINGABE und der zugehörigen AUSGABE.
Das ML-Paradigma
Es besteht eine „unbekannte“ Relation zwischen einer
EINGABE und der zugehörigen AUSGABE.
Ein MODELL „schätzt“ diese Relation anhand von
veränderbaren PARAMETERN mit einem FEHLER ab.
Das ML-Paradigma
Es besteht eine „unbekannte“ Relation zwischen einer
EINGABE und der zugehörigen AUSGABE.
Ein MODELL „schätzt“ diese Relation anhand von
veränderbaren PARAMETERN mit einem FEHLER ab.
Der FEHLER hilft dabei die PARAMETER anzupassen
und so das MODELL Schritt für Schritt zu verbessern.
Das ML-Paradigma
Das ML-Paradigma
PREDICT COMPARE LEARN*
*btw. den Fehler eines NN gegen 0 zu reduzieren
ist deutlich einfacher, als das richtige Ergebnis vorherzusagen
Neuronale Netze
„Die Basics“
Quelle: MNIST Database
Network & Training
Data & Labels Prediction
0
1
8
9
Die Vorhersagemaschine v2.0
Die Vorhersagemaschine v2.0
Die Vorhersagemaschine v2.0
EINGABE? MODELL? AUSGABE?
Es besteht eine „unbekannte“ Relation zwischen einer
EINGABE und der zugehörigen AUSGABE.
Ein MODELL „schätzt“ diese Relation […] ab.
Die Vorhersagemaschine v2.0
EINGABE AUSGABE
MODELL
EINGABE AUSGABE
MODELL
VOODOO
more to come later …
EINGABE AUSGABE
28 x 28 Pixel
MODELL
Pixel
#2
Pixel
Pixel
Pixel
#1
EINGABE AUSGABE
#783
#784
28 x 28 Pixel
MODELL
0 .. 255
Pixel
#2
Pixel
Pixel
0
9
„NEUN“
Pixel
#1
EINGABE AUSGABE
#783
#784
28 x 28 Pixel
MODELL
0 .. 255
Pixel
#1
Pixel
#2
Pixel
0
9
„NEUN“
mit 98%iger
Wahrscheinlichkeit
EINGABE AUSGABE
#783
Pixel
#784
28 x 28 Pixel
MODELL
0.9763
0.0112
0 .. 1
0 .. 255
Pixel
#1
Pixel
#2
Pixel
0
9
„NEUN“
mit 98%iger
Wahrscheinlichkeit
EINGABE AUSGABE
#783
Pixel
#784
? ? ?
28 x 28 Pixel
MODELL?
„Wie komme ich
von der EINGABE
zur AUSGABE?“
Pixel
#1
Pixel
#2
Pixel
0
9
„NEUN“
mit 98%iger
Wahrscheinlichkeit
EINGABE AUSGABE
#783
Pixel
#784
? ? ?
28 x 28 Pixel
?
NEURON
EINGABE AUSGABE
PARAM
*
* Reminder: Vorhersagemaschine v1.0
Die Vorhersagemaschine v2.0
FORMEL
Parameter
NEURON
PARAM
Die Vorhersagemaschine v2.0
A
B
C
OFF / ON
OUT =
A + B + C
EINGABE AUSGABE
NEURON
PARAM
Die Vorhersagemaschine v2.0
A
B
C
0 / 1
OUT =
A + B + C
EINGABE AUSGABE
NEURON
PARAM
Die Vorhersagemaschine v2.0
A
B
C
0 / 1
OUT =
A + B + C
Hmm, OUT vs 0/1
?
EINGABE AUSGABE
NEURON
PARAM
Die Vorhersagemaschine v2.0
A
B
C
0 / 1
OUT = A + B + C < Y ? 0 : 1
* Y als Schwellwert aka Aktivierungsfunktion
+ A
+ B
+ C
< Y*
EINGABE AUSGABE
NEURON
0
1
10
5
-10 -5
OUT = A + B + C < Y ? 0 : 1
Die Vorhersagemaschine v2.0
0
1
10
5
-10 -5
Die Vorhersagemaschine v2.0
OUT = f(x) = 0 … 1
0
1
10
5
-10 -5
1
1 + e-x
*Sigmoid Function (in jeder guten Math-Lib vorhanden)
Die Vorhersagemaschine v2.0
OUT = f(x) = 0 … 1
=
PARAM
Die Vorhersagemaschine v2.0
A
B
C
0 ... 1*
OUT = sig(A + B + C)
+ A
+ B
+ C
sig
*btw das ist die Eingabe für die nächste Schicht
EINGABE AUSGABE
NEURON
Pixel
#1
Pixel
#2
Pixel
0
9
„NEUN“
mit 98%iger
Wahrscheinlichkeit
EINGABE AUSGABE
#783
Pixel
#784
? ? ?
28 x 28 Pixel
MODELL?
„Wie komme ich
von der EINGABE
zur AUSGABE?“
Es besteht eine „unbekannte“ Relation zwischen einer
EINGABE und der zugehörigen AUSGABE.
Ein MODELL „schätzt“ diese Relation anhand von
veränderbaren PARAMETERN … ab.
Die Vorhersagemaschine v2.0
Schicht 1 Schicht 2 Schicht 3
Eingaben Ausgaben
Parameter Parameter aka Gewichtung
Die Vorhersagemaschine v2.0
1
2
3
1
2
3
1
2
3
Schicht 1 Schicht 2 Schicht 3
Eingaben Ausgaben
Parameter Parameter aka Gewichtung
w1,1
w1,2
w3,2
w1,3
Die Vorhersagemaschine v2.0
1
2
1
2
Schicht 1 Schicht 2
Eingaben Ausgaben
E1 = 1.0
E2 = 0.5
Die Vorhersagemaschine v2.0
1
2
1
2
Schicht 1 Schicht 2
Eingaben Ausgaben
w1,1 = 0.9
w1,2 = 0.2
w2,2 = 0.8
w2,1 = 0.3
E1 = 1.0
E2 = 0.5
Die Vorhersagemaschine v2.0
1
2
1
2
Schicht 1 Schicht 2
Eingaben Ausgaben
w1,1 = 0.9
w1,2 = 0.2
w2,2 = 0.8
w2,1 = 0.3
A1 = ?
A2 = ?
E1 = 1.0
E2 = 0.5
Die Vorhersagemaschine v2.0
1
2
1
2
Schicht 1 Schicht 2
Eingaben Ausgaben
E1 = 1.0
w1,1 = 0.9
w2,1 = 0.3
f(x) =
1
1 + e-x
Spickzettel:
E2 = 0.5 A2 = ?
Die Vorhersagemaschine v2.0
A1 = sig(a + b)
= sig(E1 * w1,1
+ E2 * w2,1)
= 0.7408
Ausgaben
f(x) =
1
1 + e-x
Spickzettel:
1
2
1
2
Schicht 1 Schicht 2
Eingaben
E1 = 1.0
w1,2 = 0.2
w2,2 = 0.8
E2 = 0.5
A1 = …
Die Vorhersagemaschine v2.0
A2 = sig(a + b)
= sig(E1 * w1,2
+ E2 * w2,2)
= 0.6457
1
2
1
2
Schicht 1 Schicht 2
Eingaben Ausgaben
E1 = 1.0
w1,1 = 0.9
w1,2 = 0.2
w2,2 = 0.8
w2,1 = 0.3
f(x) =
1
1 + e-x
Spickzettel:
A1 = sig(a + b)
= sig(E1 * w1,1
+ E2 * w2,1)
= 0.7408
A2 = sig(a + b)
= sig(E1 * w1,2
+ E2 * w2,2)
= 0.6457
E2 = 0.5
Die Vorhersagemaschine v2.0
0
9
Pixel
#1
Pixel
#2
Pixel
#783
das sind aber viele!
EINGABE AUSGABE
Pixel
#784
= sig(Weights * Inputs)
Willkommen in der Wunderwelt der Matrizen
(siehe auch „Forward Propagation in NNs“, V. Luhanival, https://bit.ly/3raPycJ)
Outputs
Forward Propagation:
W I
O = *
sig( )
0
9
55%
aka 0.55
15%
aka 0.15
„NULL“
Pixel
#1
Pixel
#2
EINGABE AUSGABE
Pixel
#783
Pixel
#784
„Hallo? Warum NULL?“
0
9
55%
aka 0.55
15%
aka 0.15
„NULL“
Pixel
#1
Pixel
#2
EINGABE AUSGABE
Pixel
#783
Pixel
#784
Alles nur GERATEN!
Pixel
#1
Pixel
#2
Pixel
0
9
„NEUN“
mit 98%iger
Wahrscheinlichkeit
EINGABE AUSGABE
#783
Pixel
#784
VOODOO
more to come … NOW!
MODELL
Neuronale Netze
„Unter der Haube“
Es besteht eine „unbekannte“ Relation zwischen einer
EINGABE und der zugehörigen AUSGABE.
Ein MODELL „schätzt“ diese Relation anhand von
veränderbaren PARAMETERN mit einem FEHLER ab.
Die Vorhersagemaschine v2.0
Es besteht eine „unbekannte“ Relation zwischen einer
EINGABE und der zugehörigen AUSGABE.
Ein MODELL „schätzt“ diese Relation anhand von
veränderbaren PARAMETERN mit einem FEHLER ab.
Der FEHLER hilft dabei die PARAMETER anzupassen
und so das MODELL Schritt für Schritt zu verbessern.
Die Vorhersagemaschine v2.0
0
9
55%
aka 0.55
15%
aka 0.15
„NULL“
Pixel
#1
Pixel
#2
„Lass mich raten!“ *
EINGABE AUSGABE
Pixel
#783
Pixel
#784
*aka RANDOM Values!
0
9
FEHLER
-0.55 = 0.0 – 0.55
Pixel
#1
Pixel
#2
EINGABE AUSGABE
Pixel
#783
Pixel
#784 +0.85 = 1.0 – 0.15
55%
aka 0.55
15%
aka 0.15
„Upps, ich korrigiere!“
TARGET
ERROR = OUTPUT
-
0
9
Pixel
#1
Pixel
#2
EINGABE AUSGABE
Pixel
#783
Pixel
#784
Korrektur(-0.55)
Korrektur(+0.85)
55%
aka 0.55
15%
aka 0.15
*viele, viele Male!
Fehlerkorrektur:
Schritt 1: Anteilige Verteilung des Ausgabe-FEHLERS
auf alle Neuronen* des MODELL.
Schritt 2: Anpassen der PARAMETER (aka Gewichte) in
Relation zu dem jeweils zugehörigen FEHLER.
*über alle Schichten hinweg
Die Vorhersagemaschine v2.0
Fehlerkorrektur:
Schritt 1: Anteilige Verteilung des Ausgabe-FEHLERS
auf alle Neuronen* des MODELL.
Schritt 2: Anpassen der PARAMETER (aka Gewichte) in
Relation zu dem jeweils zugehörigen FEHLER.
*über alle Schichten hinweg
Die Vorhersagemaschine v2.0
0
9
Pixel
#1
Pixel
#2
EINGABE AUSGABE
Pixel
#783
Pixel
#784
Korrektur(-0.55)
Korrektur(+0.85)
55%
aka 0.55
15%
aka 0.15
? ? ?
? ? ?
? ? ?
? ? ?
= Wn-1,n * En
Willkommen in der Wunderwelt der Matrizen*
(siehe auch „How does Back-Propagation works?“, A. Al-Masri, https://bit.ly/3uiwB9U)
En-1
T
Backward Error Propagation:
En-1 = *
Wn-1,n
T En
W I
O = *
sig( )
a) Signalweiterleitung (Propagation)
b) Fehlerrückführung (Backpropagation)
Was haben wir bisher erreicht?
1
2
1
2
Input Layer Hidden Layer Output Layer
Input Output
I1
I2
O1
O2
E1
E2
Error
eh2 eo2
eh1 eo1
1
2
Was haben wir bisher erreicht?
Fehlerkorrektur:
Schritt 1: Anteilige Verteilung des Ausgabe-FEHLERS
auf alle Neuronen* des MODELL.
Schritt 2: Anpassen der PARAMETER (aka Gewichte) in
Relation zu dem jeweils zugehörigen FEHLER.
*über alle Schichten hinweg
Was fehlt und noch?
Fehlerkorrektur:
Schritt 1: Anteilige Verteilung des Ausgabe-FEHLERS
auf alle Neuronen* des MODELL.
Schritt 2: Anpassen der PARAMETER (aka Gewichte) in
Relation zu dem jeweils zugehörigen FEHLER.
*über alle Schichten hinweg
Was fehlt und noch?
1
2
1
2
Input Layer Hidden Layer Output Layer
Input Output
I1
I2
O1
O2
E1
E2
Error
eh2
eh1
eo2
eo1
Wie wirken sich die anteiligen Fehler auf die Parameter* aus?
*aka Gewichte
+/i … ?
+/i … ?
1
2
Die Vorhersagemaschine v2.0
Herausforderung:
Wir haben sehr, sehr viele PARAMETER, die nicht
losgelöst voneinander betrachtet werden können.*
Ändere ich einen PARAMETER auf Basis des lokalen
FEHLERS am Knoten, hat dies automatisch Auswirkungen
auf das gesamte MODELL.
*Korrektur der Gewichte lässt sich leider nicht mathematisch einfach ausdrücken.
(Source: „Make your own neuronal network“ by Tariq Rashid)
Die Vorhersagemaschine v2.0
Fragestellung:
Wie beeinflussen Änderungen an den PARAMETERN
die FEHLER?
Wie kann ich die (Summe der) FEHLER gegen Null
divergieren lassen?
Die Vorhersagemaschine v2.0
Idee aka Backpropagation-Voodoo*:
Wir brauchen eine FEHLER-Funktion in Abhängigkeit zu
den PARAMETERN.
Durch iteratives Anpassen der PARAMETER minimieren
wir Schritt für Schritt den FEHLER gegen 0.
Die Vorhersagemaschine v2.0
*aka Gradientabstiegsverfahren
Die Vorhersagemaschine v2.0
zufälliger initaler
PARAMETER-Wert
Ergebnis der zugehörigen
FEHLER-Funktion
X
Y
f(x) = y = …
Die Vorhersagemaschine v2.0
zufälliger initaler
PARAMETER-Wert
Ergebnis der zugehörigen
FEHLER-Funktion
X
Y
f(x) = y = …
GRADIENT
(mit Vorzeichen)*
*negatives Vorzeichen
= fallender Gradient
= Wert erhöhen
*positives Vorzeichen
= steigender Gradient
= Wert vermindern
Die Vorhersagemaschine v2.0
korrigierter
PARAMETER-Wert
Ergebnis der zugehörigen
FEHLER-Funktion
X
Y
f(x) = y = …
GRADIENT
(negativer Wert)
Die Vorhersagemaschine v2.0
korrigierter
PARAMETER-Wert
Ergebnis der zugehörigen
FEHLER-Funktion
X
Y
f(x) = y = …
GRADIENT
(negativer Wert)
Die Vorhersagemaschine v2.0
korrigierter
PARAMETER-Wert
Ergebnis der zugehörigen
FEHLER-Funktion
X
Y
f(x) = y = …
GRADIENT
(negativer Wert)
Die Vorhersagemaschine v2.0
korrigierter
PARAMETER-Wert
Ergebnis der zugehörigen
FEHLER-Funktion
X
Y
f(x) = y = …
GRADIENT
(gleich 0)
Minimum!
Die Vorhersagemaschine v2.0
korrigierter
PARAMETER-Wert
Ergebnis der zugehörigen
FEHLER-Funktion
X
Y
f(x) = y = …
GRADIENT
(mit Vorzeichen!)
Minimum!
LEARNING RATE
(Schrittlänge)
Die Vorhersagemaschine v2.0
X
Y
f(x) = y = …
LEARNING RATE
zu GROß:
oszilliert am
Minimum vorbei
Die Vorhersagemaschine v2.0
X
Y
f(x) = y = …
LEARNING RATE
zu KLEIN:
erreicht das
Minimum „nie“
Was zeichnet eine gute FEHLER-Funktion aus?
Die Vorhersagemaschine v2.0
Soll - Ist
1.0
0.4
0.8
1.0
0.5
0.7
0.0
0.1
-0.1
0.0
Output Sollwert
Summe
Was zeichnet eine gute FEHLER-Funktion aus?
Die Vorhersagemaschine v2.0
Soll - Ist [Soll – Ist]
1.0
0.4
0.8
1.0
0.5
0.7
0.0 0.0
0.1 0.1
-0.1 0.1
0.0 0.2
Output Sollwert
Summe
Was zeichnet eine gute FEHLER-Funktion aus?
Die Vorhersagemaschine v2.0
Soll - Ist [Soll – Ist] (Soll – Ist)2
1.0
0.4
0.8
1.0
0.5
0.7
0.0 0.0 0.00
0.1 0.1 0.01
-0.1 0.1 0.01
0.0 0.2 0.04
Output Sollwert
Summe
Was zeichnet eine gute FEHLER-Funktion aus?
a) die Funktion ist mathematisch einfach (genug)
b) die Funktion verläuft sanft und stetig*
c) der Gradient wird zum Minimum hin kleiner**
d) große Fehler fallen stärker ins Gewicht als kleine
Die Vorhersagemaschine v2.0
*es gibt weder Lücken noch Sprünge
**verringert das Risiko, über das Minimum hinauszuschießen
OK, aber was genau bedeutet das jetzt genau für die
Backpropagation des Fehlers zu den Gewichten?
Die Vorhersagemaschine v2.0
Die Vorhersagemaschine v2.0
X
Y
GRADIENT
(mit Vorzeichen!)
f(x) = y = …
Die Vorhersagemaschine v2.0
Wjk
Fehler
GRADIENT
(mit Vorzeichen!)
PARAMETER
des neuronalen
Netzes
∂E
∂Wjk
FEHLER
des neuronalen
Netzes
j = vorherige Schicht / k = folgende Schicht
= …
∂E
∂Wjk
Weight Adoption:
Willkommen in der Wunderwelt der Matrizen
= *
∂E
∂Wjk
∂E
∂Ok ∂Wjk
∂Ok
Kettenregel!
Error ist abhängig von Output
Output ist abhängig von Weight
Problemstellung:
Error ist abhängig von Weight
Weight Adoption:
Willkommen in der Wunderwelt der Matrizen
= *
∂E
∂Wjk
∂E
∂Ok ∂Wjk
∂Ok
=
rechne, *
rechne,
rechne…
siehe https://data-science-blog.com/blog/2019/01/13/training-eines-neurons-mit-dem-gradientenverfahren/
Weight Adoption:
Willkommen in der Wunderwelt der Matrizen
= *
ΔWjk
Ek Ok (1 – Ok )
* * Oj
T
α *
Anpassung der
WEIGHT j,k
Weight Adoption:
Willkommen in der Wunderwelt der Matrizen
= *
ΔWjk
Ek Ok (1 – Ok )
* * Oj
T
α
Anpassung der
WEIGHT j,k
LEARNING
RATE
*
ERROR der
folgenden Schicht
folgenden Schicht vorherigen Schicht
OUTPUT der …
Die Vorhersagemaschine v2.0
= *
ΔWjk
Ek Ok (1 – Ok )
* * Oj
T
α
Anpassung der
WEIGHT j,k
*
#WTF
What a Terrible Formula!
Die Vorhersagemaschine v2.0
= *
ΔWjk
Ek Ok (1 – Ok )
* * Oj
T
α
Anpassung der
WEIGHT j,k
*
Die gute Nachricht:
Das lässt sich alles einfach via Matrizen-Operationen ausdrücken.
Die Vorhersagemaschine v2.0
Die Vorhersagemaschine v2.0
= *
ΔWjk
Ek Ok (1 – Ok )
* * Oj
T
α *
En-1 = *
Wn-1,n
T En
W I
O = *
sig( )
a) Signalweiterleitung (Propagation)
b) Fehlerrückführung (Backpropagation – Teil 1)
c) Parameteranpassung (Backpropagation – Teil 2)
= *
ΔWjk
Ek Ok (1 – Ok )
* * Oj
T
α *
Neuronal Network
Matrix Cheat Sheet
> Hands-On
initiale „random“
Verteilung der Gewichte
Berechnung der
Outputs Layer 1 & 2
Backpropagation
des Fehlers
Berechnung der
Outputs Layer 1 & 2
Korrektur
der Gewichte
Backpropagation
des Fehlers
Berechnung der
Outputs Layer 1 & 2
Neuronale Netze
„Fine-Tuning“
Neuronale Netze
„Fine-Tuning“
Die Vorhersagemaschine v3.0 0,600
Die Vorhersagemaschine v3.0
Fine Tuning: Daten, Daten, Daten
0,947
60.000 Train
10.000 Test
Score: 0.947
100 Train
10 Test
Score: 0.600
Neuronale Netze
„Fine-Tuning“
Die Vorhersagemaschine v3.0
Fine Tuning: Learning Rate
Die Learning Rate bestimmt die „Schrittweite“ während des
Lernens innerhalb des Gradientabstiegs.
• zu groß: optimale Gewichtung wird übersprungen*
• zu klein: optimale Gewichtung wird nicht erreicht
*aka Overshooting
Neuronale Netze
„Fine-Tuning“
Die Vorhersagemaschine v3.0
Fine Tuning: Learning Rate
Score
des
NN
Lernrate des NN
1,0
0,0
0,82
0,98
0,96
0,94
0,92
0,90
0,88
0,86
0,84
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9
0,954
Neuronale Netze
„Fine-Tuning“
Die Vorhersagemaschine v3.0
Fine Tuning: Learning Rate
0,954
L-Rate: 0.2
Score: 0.954
Neuronale Netze
„Fine-Tuning“
Die Vorhersagemaschine v3.0
Fine Tuning: Epochen
Das Trainieren des Modells wird mehrfach wiederholt.
Dabei bekommt das Gradientabstiegsverfahren mehrere
Chancen das optimale „Minimum“ zu finden.
• zu wenige: Modell stark vom Zufall beeinflusst
• zu viele: Modell zu sehr auf Trainingsdaten zugeschnitten*
*aka Overfitting
Die Vorhersagemaschine v3.0
Fine Tuning: Epochen
Score
des
NN
Epochen des NN
25
0,0
0,935
0,975
0,970
0,965
0,960
0,955
0,950
0,945
0,940
5 10 15 20
0,956
Die Vorhersagemaschine v3.0
Fine Tuning: Epochen + Learning Rate
Score
des
NN
Epochen des NN
25
0,0
0,935
0,975
0,970
0,965
0,960
0,955
0,950
0,945
0,940
5 10 15 20
lr = 0,2
lr = 0,1
0,968
Die Vorhersagemaschine v3.0
Fine Tuning: Epochen + Learning Rate
0,968
L-Rate: 0.1
Epoches: 5
Score: 0.968
Neuronale Netze
„Fine-Tuning“
Die Vorhersagemaschine v3.0
Fine Tuning: Topologie
Die versteckte(n) Schicht(en) bzw. die Verknüpfungs-
gewichte sind für das eigentliche Lernen verantwortlich.
• zu wenige: kaum „Raum“ zum Lernen*
• zu viele: Training des Netzes wird schwierig(er)
*Korrelationen können nicht feingranular genug erkannt werden
Die Vorhersagemaschine v3.0
Fine Tuning: Topologie
Score
des
NN
versteckte Knoten des NN
500
0
0,60
1,00
0,95
0,90
0,85
0,80
0,75
0,70
0,65
100 200 300 400
0,975
Die Vorhersagemaschine v3.0
Fine Tuning: Topologie
0,975
H-Nodes: 200
Score: 0.975
Die Vorhersagemaschine v3.0
10 20
0
10
20
Original
Fine Tuning: Daten, Daten, Daten – Teil 2
Die Vorhersagemaschine v3.0
10 20
0
10
20
10 20
0
10
20
10 20
0
10
20
Original Original +5O
Original –5O
Fine Tuning: Daten, Daten, Daten – Teil 2
0,981
Neuronale Netze
„Fine-Tuning“
Die Vorhersagemaschine v3.0
Fine Tuning: weitere Optionen
• Skalierung
• Initiale Gewichte
• Gedächtnis
Neuronale Netze
verstehen
Lars Röwekamp | @mobileLarson
BESTEN DANK!
#WISSENTEILEN
It‘s not Rocket Science
Neuronale Netze
verstehen
Lars Röwekamp | @mobileLarson
Feedback
erwünscht!
#WISSENTEILEN
It‘s not Rocket Science
Morgen, Mittwoch um 17:00 Uhr (FMi25)
© Tarchyshnik – iStockphoto.com (Folie 1)
© CandyDuck – iStockphoto.com (Folie 118)
© Meranna – iStockphoto.com (Folie 142)
Alle weiteren Bilder der Präsentation sind entweder von
• pexels.com,
• pixabay.com,
• unsplash.com,
• freeicon.com
oder mir selbst erstellt.
Bildernachweis

Weitere ähnliche Inhalte

Mehr von OPEN KNOWLEDGE GmbH

Mehr von OPEN KNOWLEDGE GmbH (20)

Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data ImputationFEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
 
Nie wieder Log-Files!
Nie wieder Log-Files!Nie wieder Log-Files!
Nie wieder Log-Files!
 
Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!
 
From Zero to still Zero: The most beautiful mistakes going into the cloud.
From Zero to still Zero: The most beautiful mistakes going into the cloud. From Zero to still Zero: The most beautiful mistakes going into the cloud.
From Zero to still Zero: The most beautiful mistakes going into the cloud.
 
API Expand Contract
API Expand ContractAPI Expand Contract
API Expand Contract
 
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & Co
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & CoReady for the Future: Jakarta EE in Zeiten von Cloud Native & Co
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & Co
 
Shared Data in verteilten Architekturen
Shared Data in verteilten ArchitekturenShared Data in verteilten Architekturen
Shared Data in verteilten Architekturen
 
Machine Learning mit TensorFlow.js
Machine Learning mit TensorFlow.jsMachine Learning mit TensorFlow.js
Machine Learning mit TensorFlow.js
 
KI und Architektur
KI und ArchitekturKI und Architektur
KI und Architektur
 
Shared Data in verteilten Systemen
Shared Data in verteilten SystemenShared Data in verteilten Systemen
Shared Data in verteilten Systemen
 
Business-Mehrwert durch KI
Business-Mehrwert durch KIBusiness-Mehrwert durch KI
Business-Mehrwert durch KI
 
Mehr Sicherheit durch Automatisierung
Mehr Sicherheit durch AutomatisierungMehr Sicherheit durch Automatisierung
Mehr Sicherheit durch Automatisierung
 
API-Design, Microarchitecture und Testing
API-Design, Microarchitecture und TestingAPI-Design, Microarchitecture und Testing
API-Design, Microarchitecture und Testing
 
Supersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: QuarkusSupersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: Quarkus
 
Hilfe, ich will meinen Monolithen zurück!
Hilfe, ich will meinen Monolithen zurück!Hilfe, ich will meinen Monolithen zurück!
Hilfe, ich will meinen Monolithen zurück!
 
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
 
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
 
Das Product Goal oder "Ohne Ziele laufen eben alle in die Richtung, die ihnen...
Das Product Goal oder "Ohne Ziele laufen eben alle in die Richtung, die ihnen...Das Product Goal oder "Ohne Ziele laufen eben alle in die Richtung, die ihnen...
Das Product Goal oder "Ohne Ziele laufen eben alle in die Richtung, die ihnen...
 
Serverless Survival Guide
Serverless Survival GuideServerless Survival Guide
Serverless Survival Guide
 

It's not Rocket Science: Neuronale Netze