webentwicklung-frage-antwort-db.com.de

Was ist Kreuzentropie?

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

Ist es nur eine Methode zur Beschreibung der Verlustfunktion? Können wir mit dem Gradienten-Abstiegs-Algorithmus das Minimum mithilfe der Verlustfunktion ermitteln?

78
theateist

Die Kreuzentropie wird üblicherweise verwendet, um die Differenz zwischen zwei Wahrscheinlichkeitsverteilungen zu quantifizieren. Normalerweise wird die "wahre" Verteilung (diejenige, mit der Ihr Algorithmus für maschinelles Lernen übereinstimmt) als One-Hot-Verteilung ausgedrückt.

Angenommen, für eine bestimmte Trainingsinstanz ist das Label B (von den möglichen Labels A, B und C). Die One-Hot-Distribution für diese Schulungsinstanz 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 wahren Verteilung? Das ist es, was der Kreuzentropieverlust bestimmt. Verwenden Sie diese Formel:

Cross entropy loss formula

Dabei ist p(x) 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 Funktion ist der SVM-Gelenkverlust). Diese Verlustfunktionen werden in der Regel als J(theta) geschrieben und können innerhalb des Gradientenabfalls verwendet werden, der ein iterativer Algorithmus ist, um die Parameter (oder Koeffizienten) in Richtung der optimalen Werte zu verschieben , würden Sie J(theta) durch H(p, q) ersetzen. Beachten Sie jedoch, dass Sie zuerst die Ableitung von H(p, q) in Bezug auf die Parameter berechnen müssen.

gradient descent

So beantworten Sie Ihre ursprünglichen Fragen direkt:

Ist es nur eine Methode zur Beschreibung der Verlustfunktion?

Richtig, 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 Cross-Entropy-Loss-Funktion kann als Teil des Gradientenabfalls verwendet werden.

Lesen Sie weiter: eine meiner andere Antworten im Zusammenhang mit TensorFlow.

189