Was ist Kreuzentropie?

92

Ich weiß, dass es viele Erklärungen dafür gibt, was Kreuzentropie ist, aber ich bin immer noch verwirrt.

Ist es nur eine Methode, um die Verlustfunktion zu beschreiben? Können wir den Gradientenabstiegsalgorithmus verwenden, um das Minimum mithilfe der Verlustfunktion zu finden?

Theateist
quelle
10
Nicht gut für SO. Hier ist eine ähnliche Frage auf der Schwesterseite von datascience
Metropolis

Antworten:

229

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:

Formel für Kreuzentropieverlust

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 .

Gradientenabstieg

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.

stackoverflowuser2010
quelle
Kreuzentropie beschreibt also den Verlust durch die Summe der Wahrscheinlichkeiten für jedes Beispiel X.
Theateist
Können wir also, anstatt den Fehler als Kreuzentropie zu beschreiben, den Fehler als Winkel zwischen zwei Vektoren (Kosinusähnlichkeit / Winkelabstand) beschreiben und versuchen, den Winkel zu minimieren?
Theaterist
1
Anscheinend ist es nicht die beste Lösung, aber ich wollte theoretisch nur wissen, ob wir cosine (dis)similarityden Fehler durch den Winkel beschreiben und dann versuchen können, den Winkel zu minimieren.
Theateist
2
@ Stephen: Wenn Sie sich das Beispiel ansehen, das ich gegeben habe, p(x)wäre dies die Liste der Grundwahrheitswahrscheinlichkeiten für jede der Klassen [0.0, 1.0, 0.0. Ebenso q(x)ist die Liste der vorhergesagten Wahrscheinlichkeit für jede der Klassen , [0.228, 0.619, 0.153]. H(p, q)ist dann - (0 * log(2.28) + 1.0 * log(0.619) + 0 * log(0.153)), was herauskommt, um 0,479 zu sein. Beachten Sie, dass es üblich ist, die Python- np.log()Funktion zu verwenden, bei der es sich eigentlich um das natürliche Protokoll handelt. es spielt keine Rolle.
stackoverflowuser2010
1
@HAr: Für die One-Hot-Codierung des wahren Labels gibt es nur eine Klasse ungleich Null, die uns wichtig ist. Kreuzentropie kann jedoch zwei beliebige Wahrscheinlichkeitsverteilungen vergleichen; Es ist nicht erforderlich, dass einer von ihnen One-Hot-Wahrscheinlichkeiten hat.
stackoverflowuser2010
2

Kurz gesagt, die Kreuzentropie (CE) ist das Maß dafür, wie weit Ihr vorhergesagter Wert vom tatsächlichen Etikett entfernt ist.

Das Kreuz bezieht sich hier auf die Berechnung der Entropie zwischen zwei oder mehr Merkmalen / wahren Bezeichnungen (wie 0, 1).

Und der Begriff Entropie selbst bezieht sich auf Zufälligkeit. Ein so großer Wert bedeutet, dass Ihre Vorhersage weit von echten Bezeichnungen entfernt ist.

Daher werden die Gewichte geändert, um die CE zu verringern, und dies führt schließlich zu einem verringerten Unterschied zwischen der Vorhersage und den tatsächlichen Bezeichnungen und damit zu einer besseren Genauigkeit.

Harte Malra
quelle
1

Zusätzlich zu den obigen Beiträgen ist die einfachste Form des Kreuzentropieverlusts als binäre Kreuzentropie bekannt (wird als Verlustfunktion für die binäre Klassifizierung verwendet, z. B. mit logistischer Regression), während die verallgemeinerte Version kategoriale Kreuzentropie (verwendet) ist als Verlustfunktion für Klassifizierungsprobleme mehrerer Klassen, z. B. bei neuronalen Netzen).

Die Idee bleibt gleich:

  1. Wenn die modellberechnete (Softmax) Klassenwahrscheinlichkeit für das Ziellabel für eine Trainingsinstanz (z. B. mit One-Hot-Codierung dargestellt) nahe 1 wird, sinkt der entsprechende CCE-Verlust auf Null

  2. Andernfalls steigt sie an, wenn die der Zielklasse entsprechende vorhergesagte Wahrscheinlichkeit kleiner wird.

Die folgende Abbildung zeigt das Konzept (aus der Abbildung geht hervor, dass BCE niedrig wird, wenn sowohl y als auch p hoch sind oder beide gleichzeitig niedrig sind, dh es besteht eine Übereinstimmung):

Geben Sie hier die Bildbeschreibung ein

Die Kreuzentropie hängt eng mit der relativen Entropie oder KL-Divergenz zusammen , die den Abstand zwischen zwei Wahrscheinlichkeitsverteilungen berechnet. Beispielsweise wird zwischen zwei diskreten pmfs die Beziehung zwischen ihnen in der folgenden Abbildung gezeigt:

Geben Sie hier die Bildbeschreibung ein

Sandipan Dey
quelle