Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Loss-Funktionen und Maximum Likelihood

Heinrich-Heine-Universität Düsseldorf

Dieses Kapitel klärt, was beim Training minimiert wird und warum. Das nächste Kapitel klärt, wie.

Training eines einzelnen Neurons: Was bisher geschah

Wir haben zwei Modelle für ein einzelnes Neuron gesehen, mit gleicher Struktur, aber sehr unterschiedlich beschriebenem Training:

PerzeptronLogistische Regression
Inferenz[⟨w,x⟩>0]∈{0,1}[\langle w, x \rangle > 0] \in \{0, 1\}σ(⟨w,x⟩)∈(0,1)\sigma(\langle w, x \rangle) \in (0, 1)
Aktivierungsfunktion„sign“ (Vorzeichen)σ\sigma (logistische Sigmoidfunktion)
TrainingUpdate-Regel wneu=walt+ρ (ytrue−f(x)) xw_{\text{neu}} = w_{\text{alt}} + \rho\,(y_{\text{true}} - f(x))\,xnaiv: finde ww, sodass der MSE der linearen Regression minimal wird

Beim Perzeptron kann jedes einzelne neue Paar (x,y)(x, y) zum Weiterlernen benutzt werden; bei der logistischen Regression wird ein Fehler minimiert. Zwei Fragen drängen sich auf: Wie lernt man bei der logistischen Regression aus einem einzelnen neuen Paar (x,y)(x, y) etwas dazu? Und wird beim Perzeptron eigentlich auch etwas maximiert oder minimiert?

Neue, einheitliche Perspektive

Die Antwort auf beide Fragen: Jedes Training ist die Minimierung eines Fehlerterms, der Loss-Funktion L(x,y;w)L(x, y; w), und die Update-Regel folgt aus der Loss-Funktion. Für die logistische Regression ist der passende Fehlerterm die binäre Kreuzentropie (binary cross entropy, BCE):

LBCE(x,y;w)=−1N∑i=1N(yilog⁡pi+(1−yi)log⁡(1−pi)),pi=P(xi in Klasse 1)=σ(⟨w,xi⟩)=e⟨w,xi⟩1+e⟨w,xi⟩.L_{\text{BCE}}(x, y; w) = -\frac1N \sum_{i=1}^N \Bigl( y_i \log p_i + (1 - y_i) \log(1 - p_i) \Bigr), \qquad p_i = P(x_i \text{ in Klasse } 1) = \sigma(\langle w, x_i \rangle) = \frac{e^{\langle w, x_i \rangle}}{1 + e^{\langle w, x_i \rangle}} .

Für das Perzeptron (mit Labels yi∈{−1,+1}y_i \in \{-1, +1\} statt {0,1}\{0, 1\}, das macht die Formeln kürzer) ist ein erster Kandidat der „harte“ Perceptron Loss

LPerchart(x,y;w)=∑i=1Nmax⁡(0, −yisign⁡⟨w,xi⟩),L_{\text{Perc}}^{\text{hart}}(x, y; w) = \sum_{i=1}^N \max\bigl(0,\, -y_i \operatorname{sign}\langle w, x_i \rangle\bigr),

der einfach die falsch klassifizierten Samples zählt. Warum dieser Kandidat für den Gradientenabstieg untauglich ist – er ist stückweise konstant – und wie die weiche Fassung ohne sign⁡\operatorname{sign} daraus die Perzeptronregel macht, steht im nächsten Kapitel; dort leiten wir auch die Update-Regel zur BCE her.

Woher kommt die Kreuzentropie? Maximum Likelihood

Die logistische Regression behauptet: P(Y=1∣X=x)=p(x):=σ(⟨w,x⟩)P(Y = 1 \mid X = x) = p(x) := \sigma(\langle w, x \rangle). Für einen Datenpunkt (x,y)(x, y) mit y∈{0,1}y \in \{0, 1\} ist die Wahrscheinlichkeit des beobachteten Labels unter dieser Behauptung

P(Y=y∣X=x)={p(x)y=11−p(x)y=0  =  p(x)y (1−p(x))1−y,P(Y = y \mid X = x) = \begin{cases} p(x) & y = 1 \\ 1 - p(x) & y = 0 \end{cases} \;=\; p(x)^{y}\,\bigl(1 - p(x)\bigr)^{1 - y},

wobei die kompakte Schreibweise rechts funktioniert, weil einer der beiden Exponenten 0 ist und a0=1a^0 = 1. Für NN unabhängig gezogene Datenpunkte multiplizieren sich die Wahrscheinlichkeiten. Die Likelihood der Gewichte ww ist

L(w)=∏i=1Np(xi)yi (1−p(xi))1−yi.\mathcal{L}(w) = \prod_{i=1}^N p(x_i)^{y_i}\,\bigl(1 - p(x_i)\bigr)^{1 - y_i}.

Das Prinzip der Maximum-Likelihood-Schätzung (DS-Skript): Wähle die Parameter, unter denen die beobachteten Daten am wahrscheinlichsten sind. Ein Produkt aus NN Faktoren zwischen 0 und 1 ist unhandlich und numerisch schnell 0; der Logarithmus macht daraus eine Summe, ohne die Lage des Maximums zu ändern, denn ln⁡\ln ist streng monoton wachsend:

ln⁡L(w)=∑i=1N(yiln⁡p(xi)+(1−yi)ln⁡(1−p(xi))).\ln \mathcal{L}(w) = \sum_{i=1}^N \Bigl( y_i \ln p(x_i) + (1 - y_i) \ln\bigl(1 - p(x_i)\bigr) \Bigr).

Maximieren der Log-Likelihood ist Minimieren der negativen Log-Likelihood, und die ist bis auf den Faktor 1N\frac1N genau LBCEL_{\text{BCE}}. Die binäre Kreuzentropie ist also keine willkürliche Wahl: Sie ist die Loss-Funktion, die aus „das Modell sagt Wahrscheinlichkeiten voraus, und wir glauben den Daten“ folgt. Dasselbe Argument mit Gauß-Rauschen Y=⟨w,X⟩+εY = \langle w, X \rangle + \varepsilon, ε∼N(0,s2)\varepsilon \sim \mathcal{N}(0, s^2), liefert den MSE als Loss der linearen Regression (Übung: ln⁡\ln der Gauß-Dichte ist ein quadratischer Term plus Konstante).

Optimieren mit Fehlerterm

Wenn L(x,y;w)∈RL(x, y; w) \in \mathbb{R} den Fehler eines Modells mit Gewichtsvektor ww angibt, dann suchen wir ww, sodass L(w):=L(x,y;w)L(w) := L(x, y; w) minimal wird. Die Daten x,yx, y sind dabei fest, variabel ist ww.

Exakt, wie in der Schule: Extremstellen von LL bestimmen.

  1. L′L' bestimmen,

  2. L′(w)=0L'(w) = 0 nach ww umstellen,

  3. Formel für ww ausrechnen (aus den Daten x,yx, y),

  4. Kandidaten für ww ausprobieren – liegt ein Minimum vor?

Für die lineare Regression mit MSE klappt das (die Normalgleichungen aus Data Science). Schaffen wir das immer? Nein: Für die logistische Regression hat L′(w)=0L'(w) = 0 keine geschlossene Lösung, und für tiefe Netze erst recht nicht.

Approximativ, ganz dumm:

  1. Zufällig ein ww auswählen,

  2. L(w)L(w) ausrechnen, vergleichen mit dem bisher niedrigsten Wert,

  3. Größer? Pech gehabt, weitermachen. Kleiner? Besseres ww gefunden!

  4. Jetzt ggf. aufhören, wenn ww gut genug ist.

Approximativ, clever: Wie eben, aber im ersten Schritt ww nicht zufällig, sondern in der Nähe der bisher besten Schätzung auswählen. Das ist eine lokale Suche, und die Frage ist nur noch, in welche Richtung man von der besten Schätzung aus gehen soll. Das ist der Gradientenabstieg, Thema des nächsten Kapitels.

Take-Home Message

Training heißt: eine Loss-Funktion L(w)L(w) in den Gewichten minimieren, die Daten sind dabei Konstanten. Die binäre Kreuzentropie ist die negative Log-Likelihood der logistischen Regression, der MSE die der linearen Regression mit Gauß-Rauschen. Exakt lösen kann man das nur in Ausnahmefällen; sonst sucht man lokal, und dafür braucht man die Richtung, in der LL am schnellsten fällt.

Übung

Seien qq (die wahren Labels) und pp (die Vorhersage) zwei Verteilungen auf {0,1}\{0, 1\}. Dann sind

BCE(q,p)=−q(0)log⁡p(0)−q(1)log⁡p(1),H(q)=−q(0)log⁡q(0)−q(1)log⁡q(1)BCE(q,p) = -q(0)\log p(0) - q(1)\log p(1), \qquad H(q) = -q(0)\log q(0) - q(1)\log q(1)

die binäre Kreuzentropie und die Entropie von qq, und

D(q∥p)=q(0)log⁡q(0)p(0)+q(1)log⁡q(1)p(1)D(q \Vert p) = q(0)\log\frac{q(0)}{p(0)} + q(1)\log\frac{q(1)}{p(1)}

ist die Kullback-Leibler-Divergenz (im DS-Skript als H(q∥p)H(q \Vert p) geschrieben).

  1. Sei q(0)=0q(0) = 0 und q(1)=1q(1) = 1 (das wahre Label ist 1), dazu p(0)=0,2p(0) = 0{,}2 und p(1)=0,8p(1) = 0{,}8. Berechnen Sie BCE(q,p)BCE(q,p) und H(q)H(q). Tipp: 0log⁡00 \log 0 wird als 0 gelesen. H(q)H(q) ist hier besonders einfach.

  2. Zeigen Sie allgemein D(q∥p)=BCE(q,p)−H(q)D(q \Vert p) = BCE(q,p) - H(q). Tipp: Schreiben Sie den Logarithmus des Quotienten als Differenz von Logarithmen und sortieren Sie nach pp und qq.

  3. Warum darf man beim Training statt D(q∥p)D(q \Vert p) einfach BCE(q,p)BCE(q,p) minimieren?

Antwortprobe: In Teil 1 muss D(q∥p)=BCE(q,p)D(q\Vert p) = BCE(q,p) herauskommen.