Zum Hauptinhalt springen

4.1 Lineare Regression in 1D

Regression vs. Klassifikation​

Überwachte Lernprobleme (supervised learning) teilt man nach der Art der Zielgröße YY ein 📄 04_linear_methods_ws26.pdf, Folie 3:

RegressionKlassifikation (classification)
Zielgröße YYstetig / numerischkategorial
BeispieleStand des Dow Jones in 6 Monaten, Wert eines HausesSteigt oder fällt der Dow? Ist die Mail Spam?
Lineare Verfahren in diesem Kapitellineare Regression, Ridge-RegressionPerceptron, logistische Regression

Manche Verfahrensfamilien decken beides ab: lineare Methoden, Boosting und neuronale Netze (im DL-Teil).

Fallstrick: Der Name „logistische Regression“

Die logistische Regression ist trotz ihres Namens ein Klassifikationsverfahren. „Regression“ kommt daher, dass sie eine stetige Größe vorhersagt, nämlich die Wahrscheinlichkeit einer Klasse. Die Klassenentscheidung entsteht erst durch eine Schwelle (z. B. p>0,5p > 0{,}5).

Parametrische Modelle​

Fast alles überwachte Lernen arbeitet mit parametrischen Modellen 📄 04_linear_methods_ws26.pdf, Folie 4:

  • Das Modell hat Parameter (auch Gewichte, weights), z. B. w1,w2w_1, w_2. Auf den Folien als Drehknöpfe dargestellt.
  • Gegeben sind Trainingsdaten als Paare (x(i),y(i))(x^{(i)}, y^{(i)}), i=1,…,Ntrainingi = 1,\dots,N_\text{training}.
  • Das Modell berechnet aus x(i)x^{(i)} eine Vorhersage y^(i)\hat y^{(i)}. Je nach Stellung der Knöpfe kommt ein anderes y^(i)\hat y^{(i)} heraus:
x(i)  ⟶  Modell mit Gewichten w  ⟶  y^(i)x^{(i)} \;\longrightarrow\; \text{Modell mit Gewichten } \boldsymbol w \;\longrightarrow\; \hat y^{(i)}
  • Training heißt: die Knöpfe so drehen, dass y^(i)\hat y^{(i)} möglichst gut zum beobachteten („wahren“) Wert y(i)y^{(i)} passt. Wie gut das gelingt, misst eine Verlustfunktion (loss function), die man minimiert.
  • Nach dem Training kann man die Trainingsdaten wegwerfen: Alles Gelernte steckt in den Parametern.

Ergänzung, nicht auf den Folien: Das Gegenstück sind nichtparametrische Verfahren wie kk-Nächste-Nachbarn, die die Trainingsdaten zur Vorhersage behalten müssen.

Beispiel: Blutdruck in Abhängigkeit vom Alter​

Das Einstiegsbeispiel 📄 04_linear_methods_ws26.pdf, Folie 6: xx ist das Alter, yy der systolische Blutdruck (sbp) von 33 Personen. Man legt eine Gerade durch die Punktwolke:

y^=a⋅x+b\hat y = a\cdot x + b
  • aa (Steigung): um wie viel steigt der vorhergesagte Blutdruck pro Lebensjahr.
  • bb (Achsenabschnitt, intercept): vorhergesagter Blutdruck im Alter 0.

Die Folie zeichnet das als neuronales Netz mit einem Neuron ohne Aktivierungsfunktion: Eingänge xx und die Konstante 11, Gewichte aa und bb, Summe Σ\Sigma, Ausgabe y^\hat y. Diese Sicht zieht sich durch das ganze Kapitel. Der Eingang „1“ ist der Trick, mit dem man den Achsenabschnitt als ganz normales Gewicht behandeln kann.

Die Verlustfunktion: mittlerer quadratischer Fehler​

Wie misst man, ob eine Gerade „gut“ ist? Für jeden Punkt betrachtet man das Residuum yi−y^iy_i - \hat y_i, also den senkrechten Abstand zwischen Punkt und Gerade (die grünen Striche auf 📄 04_linear_methods_ws26.pdf, Folie 7). Diese werden quadriert und gemittelt:

Loss=MSE=1n∑i=1n(yi−y^i)2=1n∑i=1n(yi−(a⋅xi+b))2\text{Loss} = \text{MSE} = \frac1n\sum_{i=1}^n (y_i - \hat y_i)^2 = \frac1n\sum_{i=1}^n \big(y_i - (a\cdot x_i + b)\big)^2

MSE steht für mean squared error, mittlerer quadratischer Fehler.

Zahlen aus der Demo: Mit a=1a = 1, b=100b = 100 liegt der Punkt (81,217)(81, 217) bei y^=181\hat y = 181, sein Beitrag ist (217−181)2=1296(217-181)^2 = 1296. Über alle 33 Punkte gemittelt ergibt sich MSE=408,2\text{MSE} = 408{,}2. Die beste Gerade (Kleinste-Quadrate-Lösung) hat a=1,11a = 1{,}11, b=87,7b = 87{,}7 und MSE=349,2\text{MSE} = 349{,}2.

Rechts auf der Folie sieht man den MSE als Funktion von (a,b)(a,b), eine Verlustlandschaft. Helle Bereiche bedeuten kleinen Verlust. Die Höhenlinien sind lang gezogene Ellipsen: Steigung und Achsenabschnitt lassen sich teilweise gegeneinander austauschen (größeres aa und kleineres bb ergibt eine ähnlich gute Gerade).

Warum quadrieren?​

  • Positive und negative Abweichungen sollen sich nicht gegenseitig aufheben.
  • Das Quadrat ist differenzierbar, die Optimierung wird einfach (es gibt sogar eine geschlossene Lösung, siehe 4.3).
  • Große Abweichungen werden überproportional bestraft.

Ganz überzeugend ist das noch nicht: Warum nicht ∣yi−y^i∣\lvert y_i - \hat y_i\rvert? Die eigentliche Begründung liefert erst das Maximum-Likelihood-Prinzip in 4.6: Der MSE ist genau dann die „richtige“ Verlustfunktion, wenn man normalverteilte Fehler annimmt.

Fallstrick: Ausreißer

Weil die Fehler quadriert werden, kann ein einzelner Ausreißer die Gerade stark verziehen. Ein Punkt mit Residuum 30 zählt so viel wie 100 Punkte mit Residuum 3.

Den Verlust optimieren​

Allgemein ist der Verlust eine Funktion der Parameter θ\theta (hier θ=(a,b)\theta = (a,b)) und der Daten DD 📄 04_linear_methods_ws26.pdf, Folie 8. Man wählt die Parameter, die ihn minimieren:

θ^=argmin⁡θ  loss⁡(θ,D)\hat\theta = \underset{\theta}{\operatorname{argmin}}\; \operatorname{loss}(\theta, D)

Zwei Wege:

  1. Analytisch: ∂loss⁡(θ,D)∂θ=0\dfrac{\partial\operatorname{loss}(\theta,D)}{\partial\theta} = 0 setzen und nach θ\theta auflösen. Das ist der übliche Weg bei der linearen Regression.
  2. Numerisch, z. B. mit Gradientenabstieg. Sehr vielseitig, funktioniert für viele Verfahren und wird im Deep Learning ständig verwendet. → 4.2

Durchgerechnetes Beispiel (analytisch)​

Ergänzung, nicht auf den Folien: Für den 1D-Fall kann man die Ableitungen direkt ausrechnen. Mit L(a,b)=∑i(yi−axi−b)2L(a,b) = \sum_i (y_i - a x_i - b)^2:

∂L∂b=−2∑i(yi−axi−b)=0  ⇒  b=yˉ−axˉ\frac{\partial L}{\partial b} = -2\sum_i (y_i - a x_i - b) = 0 \;\Rightarrow\; b = \bar y - a\bar x ∂L∂a=−2∑ixi(yi−axi−b)=0  ⇒  a=∑i(xi−xˉ)(yi−yˉ)∑i(xi−xˉ)2\frac{\partial L}{\partial a} = -2\sum_i x_i(y_i - a x_i - b) = 0 \;\Rightarrow\; a = \frac{\sum_i (x_i-\bar x)(y_i-\bar y)}{\sum_i (x_i-\bar x)^2}

(xˉ\bar x, yˉ\bar y sind die Mittelwerte. Die zweite Formel erhält man, indem man b=yˉ−axˉb = \bar y - a\bar x einsetzt.) Die Steigung ist also Kovarianz durch Varianz von xx, und die Gerade geht immer durch den Schwerpunkt (xˉ,yˉ)(\bar x, \bar y).

Zahlen: Drei Punkte (1,2)(1,2), (2,3)(2,3), (3,5)(3,5).

xix_iyiy_ixi−xˉx_i - \bar xyi−yˉy_i - \bar yProdukt(xi−xˉ)2(x_i-\bar x)^2
112−1-1−4/3-4/34/34/31
2230−1/3-1/300
33515/35/35/35/31
Σ\Sigma32

Mit xˉ=2\bar x = 2, yˉ=10/3\bar y = 10/3: a=3/2=1,5a = 3/2 = 1{,}5 und b=10/3−1,5⋅2=1/3b = 10/3 - 1{,}5\cdot 2 = 1/3.

Vorhersagen y^=(1,83; 3,33; 4,83)\hat y = (1{,}83;\ 3{,}33;\ 4{,}83), Residuen (0,17; −0,33; 0,17)(0{,}17;\ -0{,}33;\ 0{,}17). Die Residuen summieren sich zu 0 (das folgt aus ∂L/∂b=0\partial L/\partial b = 0). MSE=13(136+19+136)=118≈0,056\text{MSE} = \frac13(\frac1{36} + \frac19 + \frac1{36}) = \frac1{18} \approx 0{,}056.

Dasselbe Beispiel wird in 4.2 mit Gradientenabstieg und in 4.3 mit der Normalengleichung gelöst.