Kreuzentropie wird üblicherweise verwendet, um die Differenz zwischen zwei Wahrscheinlichkeitsverteilungen zu quantifizieren. Normalerweise wird die "wahre" Verteilung (die, mit der Ihr Algorithmus für maschinelles Lernen übereinstimmt) in Form einer One-Hot-Verteilung ausgedrückt.
Angenommen, für eine bestimmte Trainingsinstanz lautet die Bezeichnung B (von den möglichen Bezeichnungen A, B und C). Die One-Hot-Verteilung für diese Trainingsinstanz lautet daher:
Pr(Class A) Pr(Class B) Pr(Class C)
0.0 1.0 0.0
Sie können die obige "wahre" Verteilung so interpretieren, dass die Trainingsinstanz eine Wahrscheinlichkeit von 0% für Klasse A, eine Wahrscheinlichkeit von 100% für Klasse B und eine Wahrscheinlichkeit von 0% für Klasse C aufweist.
Angenommen, Ihr Algorithmus für maschinelles Lernen sagt die folgende Wahrscheinlichkeitsverteilung voraus:
Pr(Class A) Pr(Class B) Pr(Class C)
0.228 0.619 0.153
Wie nahe ist die vorhergesagte Verteilung an der tatsächlichen Verteilung? Das bestimmt der Kreuzentropieverlust. Verwenden Sie diese Formel:
Wo p(x)
ist die gewünschte Wahrscheinlichkeit und q(x)
die tatsächliche Wahrscheinlichkeit. Die Summe liegt über den drei Klassen A, B und C. In diesem Fall beträgt der Verlust 0,479 :
H = - (0.0*ln(0.228) + 1.0*ln(0.619) + 0.0*ln(0.153)) = 0.479
So "falsch" oder "weit weg" ist Ihre Vorhersage von der wahren Verteilung.
Die Kreuzentropie ist eine von vielen möglichen Verlustfunktionen (eine andere beliebte ist der SVM-Gelenkverlust). Diese Verlustfunktionen werden typischerweise als J (Theta) geschrieben und können innerhalb des Gradientenabfalls verwendet werden. Dies ist ein iterativer Algorithmus, um die Parameter (oder Koeffizienten) in Richtung der optimalen Werte zu bewegen. In der folgenden Gleichung, würden Sie ersetzen J(theta)
mit H(p, q)
. Beachten Sie jedoch, dass Sie zuerst die Ableitung von H(p, q)
in Bezug auf die Parameter berechnen müssen .
Um Ihre ursprünglichen Fragen direkt zu beantworten:
Ist es nur eine Methode, um die Verlustfunktion zu beschreiben?
Die korrekte Kreuzentropie beschreibt den Verlust zwischen zwei Wahrscheinlichkeitsverteilungen. Es ist eine von vielen möglichen Verlustfunktionen.
Dann können wir zum Beispiel den Gradientenabstiegsalgorithmus verwenden, um das Minimum zu finden.
Ja, die Kreuzentropieverlustfunktion kann als Teil des Gradientenabfalls verwendet werden.
Weiterführende Literatur: Eine meiner anderen Antworten bezog sich auf TensorFlow.