kapitel 10. maschinelles lernen 10.1 lineare regressiontjahn/teaching/... · kapitel 10....
TRANSCRIPT
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Kapitel 10. Maschinelles Lernen
Th. Jahn
Sommersemester 2017
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
10.1 Lineare Regression
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Problemstellung
Gegeben sind folgende Messungen:Masse (kg) 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Kraft (N) 1.6 2.2 3.2 3.0 4.9 5.7 7.1 7.3 8.1
Annahme: Es gibt eine Funktion f : R → R, die diese Datenerklart.
Aber wir haben Messfehler.
Finde eine Funktion �f : R → R, die moglichst ahnlich zu f ist.
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Welche Gerade?
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Welche Gerade?
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Welche Gerade?
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Fehlerfunktion
ϕ(m, b) =1
n
n�
i=1
�yi − �fm,b(xi )
�2=
1
n
n�
i=1
(yi −mxi − b)2
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Lokale Extrema der Fehlerfunktion
ϕ(m, b) =1
n
n�
i=1
�yi − �fm,b(xi )
�2=
1
n
n�
i=1
(yi −mxi − b)2
∂ϕ
∂m(m, b) =
1
n
n�
i=1
∂
∂m(yi −mxi − b)2
=1
n
n�
i=1
2 (yi −mxi − b) · (−xi )
= −2
n
n�
i=1
�xiyi −mx2i − bxi
�
∂ϕ
∂b(m, b) = −2
n
n�
i=1
(xiyi −mxi ) + 2b
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Lokale Extrema der Fehlerfunktion
∇ϕ(m, b) =
�−2
n
n�
i=1
�xiyi −mx2i − bxi
�,−2
n
n�
i=1
(xiyi −mxi ) + 2b
�
Lose ∂ϕ∂b (m, b) = 0 nach b auf:
b =1
n
n�
i=1
(yi −mxi )
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Setze b in ∂ϕ∂m (m, b) = 0 ein und lose nach m auf:
0 = −2
n
n�
i=1
yixi −mx2i −
1
n
n�
j=1
(yj −mxj)
xi
⇔ 0 =n�
i=1
yixi −n�
i=1
mx2i − 1
n
n�
i=1
n�
j=1
xiyj +1
n
n�
i=1
n�
j=1
mxixj
⇔n�
i=1
mx2i − 1
n
n�
i=1
n�
j=1
mxixj =n�
i=1
xiyi −1
n
n�
i=1
n�
j=1
xiyj
⇔m
n�
i=1
x2i − 1
n
n�
i=1
n�
j=1
xixj
=
n�
i=1
xiyi −1
n
n�
i=1
n�
j=1
xiyj
⇔m =
�ni=1 xiyi − 1
n
�ni=1
�nj=1 xiyj�n
i=1 x2i − 1
n
�ni=1
�nj=1 xixj
=Cov(X ,Y )
Var(X )
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Zusammenfassung
Gegeben sind Datenpunkte (x1, y1), . . . , (xn, yn) in R.Wir suchen Parameter (m, b) ∈ R2, sodass die Funktion
�fm,b : R → R, x �→ mx + b
die Datenpunkte optimal erklart.
Es gibt genau ein bestes Paar (m, b) und wir konnen eineFormel angeben.
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
10.2 Overfitting
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Maschinelles Lernen
Gegeben sind Datenpunkte (xi , yi ) von einer hypothetischen,randomisierten Funktion f (d.h. f (xi ) = yi ).
Wir wollen anhand der Datenpunkte automatisiert eineFunktion �f lernen, die f moglichst nahe kommt.
Wie gut eine Funktion �f ist, kann gemessen werden:
ϕ�f =1
n
n�
i=1
�yi − �f (xi )
�2.
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Welche Funktion ist besser?
ϕgrun = 0.00ϕrot = 0.17
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Die Gerade ist besser!
Die Struktur der Datenpunkte wird besser erfasst.
Die grune Kurve legt zu viel Gewicht auf einzelneDatenpunkte.
Einzelne Datenpunkte unterliegen Messungenauigkeiten.
Bei weiteren Messpunkten wird die rote Kurve (vermutlich)viel besser sein, als die grune.
Overfitting
Algorithmen neigen dazu, Datenpunkte auswendig zu lernen!
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Gegenmaßnahmen
Nimm einen Teil der Messdaten beiseite und nenne die Mengeder weggelegten Daten Testmenge.
Lerne die Funktionen mithilfe der verbleibenden Datenpunkte.
Prufe die Genauigkeit der gelernten Funktionen mit Hilfe derTestmenge.
Validierung
Die Prufung erfolgt also an neuen Daten, die vorher nichtauswendig gelernt werden konnten!
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Bewertung von gelernten Funktionen
Wenn die gelernte Funktion auf den Trainingsdaten gut ist,aber auf den Testdaten schlecht liegt Overfitting vor. Mansollte ein anderes Verfahren zum Lernen benutzen!
Wenn die gelernte Funktion auf Trainingsdaten und aufTestdaten gut ist, spiegelt die gelernte Funktion vermutlichdie grundlegende Struktur gut wieder.
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
10.3 kNN
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Nearest Neighbours
Gegeben:
Punkte x1, . . . , xk in Rm mit Werten yi ∈ R.Eine Metrik d : Rm × Rm → R.
Gesucht: Prognose des Wertes fur einen Punkt y ∈ Rm.
Algorithmus kNN
1 Sortiere die Punkte x1, . . . , xk nach d(xi , y).
2 Wahle die n nachsten Punkte aus.
3 Bilde den Mittelwert aus den zugeordneten Werten.
Was tun, wenn zwei Punkte gleich weit entfernt sind?
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
10.4 Neuronale Netze
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Lineare Regression ohne Formel?
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Schritt 1m = 0.20b = 2.05∂ϕ∂m (m, b) = −202.40∂ϕ∂b (m, b) = −50.20ϕ(m, b) = 8.56
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Schritt 2m = 0.36b = 2.09∂ϕ∂m (m, b) = −160.83∂ϕ∂b (m, b) = −38.37ϕ(m, b) = 5.84
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Schritt 3m = 0.49b = 2.12∂ϕ∂m (m, b) = −127.88∂ϕ∂b (m, b) = −28.99ϕ(m, b) = 4.13
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Schritt 9m = 0.89b = 2.18∂ϕ∂m (m, b) = −26.68∂ϕ∂b (m, b) = −0.27ϕ(m, b) = 1.31
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Schritt 100m = 1.14b = 1.66∂ϕ∂m (m, b) = −1.52∂ϕ∂b (m, b) = 5.35ϕ(m, b) = 0.80
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Schritt 1000m = 1.67b = −0.19∂ϕ∂m (m, b) = −0.15∂ϕ∂b (m, b) = 0.51ϕ(m, b) = 0.15
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Gegeben: Punkte in (xi1, xi2) in R2 zusammen mit Werten yi .
Gesucht: Eine (affine) Funktion �f : R2 → R welche diesePunkte erklart:
�fa1,a2,b�
x1x2
�= a1x1 + a2x2 + b
Fehlerfunktion:
ϕ(a1, a2, b) =1
n
n�
i=1
�yi − �fa1,a2,b
�xi1xi2
��2
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Komplexere Daten
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Komplexere Daten – lineare Regression
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
ein neuronales Netz
Quelle: Von Dake, Mysid - Vectorized by Mysid in CorelDraw onan image by Dake., CC BY 1.0,https://commons.wikimedia.org/w/index.php?curid=1412126
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
ein neuronales Netz
σ : R → R, x �→ 11−e−x
Wir lernen eine Funktion
�fm1,b1,m2,b2,α1,α2,γ :R → R,x �→ α1σ(m1x + b1) + α2σ(m2x + b2) + γ
Finde dazu ein lokales Minimum von
ϕ(m1, b1,m2, b2,α1,α2, γ) =1
n
n�
i=1
�yi − �fm1,b1,m2,b2,α1,α2,γ(xi )
�2
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Es kann mehrere lokale Minima geben.
Wir finden vermutlich nicht das globale Minimum!
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Zum berechnen des Gradienten von
ϕ(m1, b1,m2, b2,α1,α2, γ) =1
n
n�
i=1
�yi − �fm1,b1,m2,b2,α1,α2,γ(xi )
�2
erinnern wir uns, dass
ϕ(. . . ) =1
n
n�
i=1
(yi − α1σ(m1x + t1)− α2σ(m2x + t2))2
und an die Kettenregel.
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Schritt 0
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Schritt 100
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Schritt 200
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Schritt 300
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Schritt 1000
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
x1
x2
x3
�
�
b11
b21
σ
σ
�
�
b21
b22
·a111
·a112
·a113
·a121
·a122
·a123
·a211
·a212
·a221
·a222
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
x1
x2
x3
�
�
0.0
0.0
σ
σ
�
�
1.0
0.4
0.1
0.2
0.0
−0.2
0.2
0.3
1.0
0.2
1.0
0.0
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
1
1
0
�0.3
�0.0
0.0
0.0
σ0.6
σ0.5
�0.8
�1.0
0.1
0.4
0.1
0.2
0.0
−0.2
0.2
0.3
1.0
0.2
1.0
0.0
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
1
1
0
0.3
0.0
0.0
0.0
0.6
0.5
0.8
1.0
0.1
0.4
−−0.8
−0.0
0.0
1.0
•20.6
•20.0
�0.6
0.1
0.2
0.0
−0.2
0.2
0.3
1.0
0.2
1.0
0.0
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
s1(x1, x2, x3) = a111x1 + a112x2 + a113x3 + b11
s2(x1, x2, x3) = a121x1 + a122x2 + a123x3 + b12
h1(x1, x2, x3) = σ(s1(x1, x2, x3))
h2(x1, x2, x3) = σ(s2(x1, x2, x3))
y1(x1, x2, x3) = a211h1(x1, x2, x3) + a212h2(x1, x2, x3) + b21
y2(x1, x2, x3) = a221h1(x1, x2, x3) + a222h2(x1, x2, x3) + b22
ϕ(x1, x2, x3, z1, z2) = (z1−y1(x1, x2, x3))2+(z2−y2(x1, x2, x3))
2
Wie bekommen wir ∇ϕ?
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Eigenschaften von σ
σ : R → [0, 1], x �→ 11+e−x
limx→∞ σ(x) = 1, limx→−∞ σ(x) = 0
σ�(x) = σ(x)(1− σ(x))
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Erinnerung Kettenregel
Was ist die Ableitung von g ◦ f ?
(g ◦ f )�(x) = g �(f (x)) · f �(x) .
Andere Schreibweise:
∂(g ◦ f )∂x
(x) =∂(g ◦ f )
∂f· ∂f∂x
(x)
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Kettenregel und ein Neuron
x1
...
xn
b
�·a1
·an
σ
f (x1, . . . , xn) =�n
i=1 aixi + b
g(x1, . . . , xn) = σ(f (x1, . . . , xn))
∂g
∂ai(x1, . . . , xn) =
∂g
∂f· ∂f∂ai
(x1, . . . , xn)
= σ�(f (x1, . . . , xn)) · xi= σ(f (x1, . . . , xn))(1− σ(f (x1, . . . , xn)))xi
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
1
1
0
0.3
0.0
0.0
0.0
0.6
0.5
0.8
1.0
0.1
0.4
−0.8
0.0
0.0
1.0
0.6
0.0
0.6
0.1
0.2
0.0
−0.2
0.2
0.3
1.0
0.2
1.0
0.0
−1.61.6
1.6
0.00.0
0.0
1.0
0.0
0.8
0.0
0.4
0.1
0.4
0.4
0.4
0.0
0.1
0.1
0.1
0.0
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Backpropagation
1 Berechne vorwarts den aktuellen Wert des Netzes und denFehler.
2 Berechne ruckwarts die Gradienten der Fehlerfunktion.
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Gradient Descent
Algorithmus
1 Berechne fur jedes Trainingsdatum den Fehler und denGradienten.
2 Berechne den durchschnittlichen Gradienten.
3 Passe die Gewichte in Richtung des durchschnittlichenGradienten an.
4 Gehe zu (1).
Problem
Meist haben wir sehr viele Trainingsdaten und die Berechnung desdurchschnittlichen Gradienten ist nicht mehr moglich (bzw.gewunscht).
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Full batch learning
Der Gradient wird anhand aller Trainingsdaten berechnet.
Mini batch learning / Stochastic gradient descent
Fur jeden Anpassungsschritt werden einige Trainingsbeispielezufallig ausgewahlt und uber diese der durchschnittliche Gradientgebildet.
Online learning
Der Gradient wird jeweils nur fur ein einziges Trainingsbeispielberechnet.
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Initialisierung
Zu Beginn mussen die Gewicht zufallig gewahlt werden!
Ansonsten entwickeln die einzelnen Neuronen keine
”Individualitat“.
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
10.5 Naıve Bayes
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Ein guter Tag fur Tennis?
Tag Aussicht Luftfeuchte Wind Tennis?
1 sonnig hoch schwach nein2 sonnig hoch stark nein3 bewolkt hoch schwach ja4 regnerisch hoch schwach ja5 regenrisch normal schwach ja6 regenrisch normal stark nein7 regnerisch normal stark ja8 sonnig hoch schwach nein9 sonnig normal schwach ja
10 regnerisch normal schwach ja11 sonnig normal stark ja12 bewolkt hoch stark ja13 bewolkt normal stark ja14 regnerisch hoch stark nein
15 regnerisch hoch schwach ???
Th. Jahn Kapitel 10. Maschinelles Lernen
Lineare RegressionOverfitting
kNNNeuronale Netze
Naıve Bayes
Problem
Konnen wir
P(Tennis = ja|Auss. = regn.,Luftf. = hoch,Wind = schwach)
berechnen?
Naive Annahme
Die Zufallsvariablen Aussicht, Luftfeuchte und Wind sindstochastisch unabhangig.
Th. Jahn Kapitel 10. Maschinelles Lernen