Multinomial Logistic Loss vs (Kreuzentropie vs quadratischer Fehler)


9

Ich beobachtete, dass Caffe (ein Deep-Learning-Framework) die Softmax-Verlustschicht SoftmaxWithLoss als Ausgabeschicht für die meisten Modellbeispiele verwendete .

Soweit ich weiß, ist die Softmax-Verlustschicht die Kombination aus multinomialer logistischer Verlustschicht und Softmax-Schicht .

Von Caffe sagten sie das

Die Berechnung des Gradienten der Softmax-Verlustschicht ist numerisch stabiler

Diese Erklärung ist jedoch nicht die Antwort, die ich möchte. Die Erklärung besteht lediglich darin, die Kombination aus multinomialer logistischer Verlustschicht und Softmax-Verlustschicht anstelle von Schicht für Schicht zu vergleichen. Aber nicht mit anderen Arten von Verlustfunktionen vergleichen.

Ich würde jedoch gerne mehr über die Unterschiede / Vor- und Nachteile dieser 3 Fehlerfunktionen erfahren, nämlich Multinomial Logistic Loss , Cross Entropy (CE) und Square Error (SE) in der Perspektive des überwachten Lernens. Irgendwelche unterstützenden Artikel?


1
Nur ein Hinweis: Ich denke, Sie erhalten eine schnellere Antwort, wenn Sie Ihren Fragen den Tag "caffe" hinzufügen. Wenn Sie es auch auf stackoverflow anstatt auf stackexchange veröffentlichen, wird es möglicherweise mehr Aufmerksamkeit erhalten.
McExchange

1
Die Kombination macht den Gradienten einfach zu berechnen y-t. willamette.edu/~gorr/classes/cs449/classify.html
Jingpeng Wu

Antworten:


11

Meiner Meinung nach ist die Verlustfunktion die Zielfunktion, mit der unsere neuronalen Netze ihre Gewichte entsprechend optimieren sollen. Daher ist es aufgabenspezifisch und auch irgendwie empirisch. Um ganz klar zu sein, Multinomial Logistic Loss und Cross Entropy Loss sind gleich (siehe http://ufldl.stanford.edu/wiki/index.php/Softmax_Regression ). Die Kostenfunktion des multinomialen logistischen Verlusts ist wie folgt: J(θ)=1m[i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))].

12Ni=1Nxi1xi222.

Daher wird es normalerweise zur Minimierung unter Verwendung einiger Konstruktionsfehler verwendet.

EDIT: @MartinThoma Die obige Formel für den Verlust multinomialer Logistik gilt nur für den Binärfall. Für den allgemeinen Fall sollte sie , wobei K die Anzahl der Kategorien ist.J(θ)=[i=1mk=1K1{y(i)=k}logP(y(i)=k|x(i);θ)]


2
In Caffe, MultinomialLogisticLoss ist , also wer hier falsch ist? 1Nn=1Nlog(pn,ln)
Moi

Nicht falsch, sind binäre Variablen, am Ende kann es in Ihre Formulierung reduziert werden. yi
Buhacker

Ich dachte, der logistische Verlust bei Multinomails wäre ohne den zweiten Summanden, alsoJ(θ)=1m[i=1my(i)loghθ(x(i))]
Martin Thoma

1
@MartinThoma Meine Formel ist nur für den Binärfall, für den allgemeinen Fall sollte sieJ(θ)=[i=1mk=1K1{y(i)=k}logP(y(i)=k|x(i);θ)]
beahacker

@beahacker Könnten Sie mir bitte sagen, warum der zweite Summand nicht im multinominalen Fall enthalten ist, wie von Martin Thoma hervorgehoben? Ich versuche zu verstehen, warum es so gemacht wird. Zumindest könnten Sie mich auf eine Ressource verweisen, die Sie untersuchen sollten.
Nandeesh

2

Ich würde gerne mehr über die Unterschiede / Vor- und Nachteile dieser 3 Fehlerfunktionen erfahren, nämlich Multinomial Logistic Loss, Cross Entropy (CE) und Square Error (SE) in der Perspektive des überwachten Lernens.

Der multinomiale logistische Verlust ist tatsächlich der gleiche wie die Kreuzentropie. Schauen Sie sich diese Funktion an (die Kostenfunktion in Softmax ): wobei m die Probennummer ist, K die Klassennummer ist.

J(θ)=i=1mk=1K1{y(i)=k}logp(y(i)=kx(i);θ)

Die Indikatorfunktion ( ) bestimmt, ob der -Balg in der Kreuzentropiedefinition , die in den Trainingsdaten als ein heiß bezeichnet ist, 0 oder 1 ist, und ist die bedingte Wahrscheinlichkeit des Softmax (q (x) wie unten gezeigt). p ( x ) p ( y ( i ) = k x ( i ) ; θ ) - x p ( x ) log q ( x )1{y(i)=k}p(x)p(y(i)=kx(i);θ)

xp(x)logq(x)

Und MSE ist hauptsächlich für die Situation gedacht, in der die Verbindungsfunktion die Einheitsfunktion ist (die Antwortverteilung folgt einer Normalverteilung), die lineare Standardregression, während die Kreuzentropie normalerweise für die Situation gilt, in der die Verbindungsfunktion die Logit-Funktion ist. Hier ist ein großartiger Vergleich, auf den Sie sich beziehen können.

Irgendwelche unterstützenden Artikel?

Mit Ausnahme der Links empfehlen wir Ihnen dieses Beispiel: https://github.com/rasbt/python-machine-learning-book/blob/master/faq/softmax_regression.md

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.