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?
machine-learning
cross-entropy
Theateist
quelle
quelle
Antworten:
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:
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:
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 undq(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 :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)
mitH(p, q)
. Beachten Sie jedoch, dass Sie zuerst die Ableitung vonH(p, q)
in Bezug auf die Parameter berechnen müssen .Um Ihre ursprünglichen Fragen direkt zu beantworten:
Die korrekte Kreuzentropie beschreibt den Verlust zwischen zwei Wahrscheinlichkeitsverteilungen. Es ist eine von vielen möglichen Verlustfunktionen.
Ja, die Kreuzentropieverlustfunktion kann als Teil des Gradientenabfalls verwendet werden.
Weiterführende Literatur: Eine meiner anderen Antworten bezog sich auf TensorFlow.
quelle
cosine (dis)similarity
den Fehler durch den Winkel beschreiben und dann versuchen können, den Winkel zu minimieren.p(x)
wäre dies die Liste der Grundwahrheitswahrscheinlichkeiten für jede der Klassen[0.0, 1.0, 0.0
. Ebensoq(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.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.
quelle
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:
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
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):
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:
quelle