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:
Perzeptron
Logistische Regression
Inferenz
[⟨w,x⟩>0]∈{0,1}
σ(⟨w,x⟩)∈(0,1)
Aktivierungsfunktion
„sign“ (Vorzeichen)
σ (logistische Sigmoidfunktion)
Training
Update-Regel wneu=walt+ρ(ytrue−f(x))x
naiv: finde w, sodass der MSE der linearen Regression minimal wird
Beim Perzeptron kann jedes einzelne neue Paar (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) etwas dazu? Und wird beim Perzeptron eigentlich auch etwas maximiert oder minimiert?
Die Antwort auf beide Fragen: Jedes Training ist die Minimierung eines Fehlerterms, der Loss-FunktionL(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)=−N1i=1∑N(yilogpi+(1−yi)log(1−pi)),pi=P(xi in Klasse 1)=σ(⟨w,xi⟩)=1+e⟨w,xi⟩e⟨w,xi⟩.
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 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⟩). Für einen Datenpunkt (x,y) mit y∈{0,1} ist die Wahrscheinlichkeit des beobachteten Labels unter dieser Behauptung
wobei die kompakte Schreibweise rechts funktioniert, weil einer der beiden Exponenten 0 ist und a0=1. Für N unabhängig gezogene Datenpunkte multiplizieren sich die Wahrscheinlichkeiten. Die Likelihood der Gewichte w ist
Das Prinzip der Maximum-Likelihood-Schätzung (DS-Skript): Wähle die Parameter, unter denen die beobachteten Daten am wahrscheinlichsten sind. Ein Produkt aus N 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 ist streng monoton wachsend:
Maximieren der Log-Likelihood ist Minimieren der negativen Log-Likelihood, und die ist bis auf den Faktor N1 genau LBCE. 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⟩+ε, ε∼N(0,s2), liefert den MSE als Loss der linearen Regression (Übung: ln der Gauß-Dichte ist ein quadratischer Term plus Konstante).
Wenn L(x,y;w)∈R den Fehler eines Modells mit Gewichtsvektor w angibt, dann suchen wir w, sodass L(w):=L(x,y;w) minimal wird. Die Daten x,y sind dabei fest, variabel ist w.
Exakt, wie in der Schule: Extremstellen von L bestimmen.
L′ bestimmen,
L′(w)=0 nach w umstellen,
Formel für w ausrechnen (aus den Daten x,y),
Kandidaten für w 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)=0 keine geschlossene Lösung, und für tiefe Netze erst recht nicht.
Approximativ, ganz dumm:
Zufällig ein w auswählen,
L(w) ausrechnen, vergleichen mit dem bisher niedrigsten Wert,
Größer? Pech gehabt, weitermachen. Kleiner? Besseres w gefunden!
Jetzt ggf. aufhören, wenn w gut genug ist.
Approximativ, clever: Wie eben, aber im ersten Schritt w 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.
Training heißt: eine Loss-Funktion 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 L am schnellsten fällt.
ist die Kullback-Leibler-Divergenz (im DS-Skript als H(q∥p) geschrieben).
Sei q(0)=0 und q(1)=1 (das wahre Label ist 1), dazu p(0)=0,2 und
p(1)=0,8. Berechnen Sie BCE(q,p) und H(q).
Tipp: 0log0 wird als 0 gelesen. H(q) ist hier besonders einfach.
Zeigen Sie allgemein D(q∥p)=BCE(q,p)−H(q).
Tipp: Schreiben Sie den Logarithmus des Quotienten als Differenz von Logarithmen und
sortieren Sie nach p und q.
Warum darf man beim Training statt D(q∥p) einfach BCE(q,p) minimieren?
Antwortprobe: In Teil 1 muss D(q∥p)=BCE(q,p) herauskommen.