KI und insbesondere Deep Learning sind der Megatrend. Dank leistungsstarker Frameworks sind erste Schritte schnell gemacht. Leider stößt man aber genauso schnell auch wieder an (seine) Grenzen. Passt das genutzte Modell überhaupt zu meinem Problem? Wie sind die gewonnenen Ergebnisse zu bewerten? Kann durch geschickte Veränderung von Modell-Parametern das Ergebnis weiter verbessert werden? In der Session werden wir unser eigenes Neuronales Netz von Grund auf aufbauen und Schritt für Schritt verbessern. Aber keine Angst: „it’s not rocket science“!
6. „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)
8. 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
9. 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
10. Neuronale Netze
zum Lernen und Entscheiden
künstliche Intelligenz
starke
KI
schwache KI
Deep
Learning
Machine
Learning
18. 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?
19. 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
20. 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
22. 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
23. 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
25. 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
26. 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
28. 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
29. 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
31. Es besteht eine „unbekannte“ Relation zwischen einer
EINGABE und der zugehörigen AUSGABE.
Das ML-Paradigma
32. 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
33. 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
34. Das ML-Paradigma
PREDICT COMPARE LEARN*
*btw. den Fehler eines NN gegen 0 zu reduzieren
ist deutlich einfacher, als das richtige Ergebnis vorherzusagen
40. Es besteht eine „unbekannte“ Relation zwischen einer
EINGABE und der zugehörigen AUSGABE.
Ein MODELL „schätzt“ diese Relation […] ab.
Die Vorhersagemaschine v2.0
59. 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
69. = sig(Weights * Inputs)
Willkommen in der Wunderwelt der Matrizen
(siehe auch „Forward Propagation in NNs“, V. Luhanival, https://bit.ly/3raPycJ)
Outputs
Forward Propagation:
75. 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
76. 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
80. 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
81. 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
83. = 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:
84. En-1 = *
Wn-1,n
T En
W I
O = *
sig( )
a) Signalweiterleitung (Propagation)
b) Fehlerrückführung (Backpropagation)
Was haben wir bisher erreicht?
85. 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?
86. 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?
87. 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?
88. 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
89. 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
91. 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
101. 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
102. 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
103. 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
104. 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
105. OK, aber was genau bedeutet das jetzt genau für die
Backpropagation des Fehlers zu den Gewichten?
Die Vorhersagemaschine v2.0
109. = *
∂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
110. = *
∂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
111. = *
ΔWjk
Ek Ok (1 – Ok )
* * Oj
T
α *
Anpassung der
WEIGHT j,k
Weight Adoption:
Willkommen in der Wunderwelt der Matrizen
112. = *
Δ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
113. = *
ΔWjk
Ek Ok (1 – Ok )
* * Oj
T
α
Anpassung der
WEIGHT j,k
*
#WTF
What a Terrible Formula!
Die Vorhersagemaschine v2.0
114. = *
Δ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
116. 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
124. 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
125. 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
126. 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
128. 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
129. 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
130. 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
132. 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
133. 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