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?
y-t
. willamette.edu/~gorr/classes/cs449/classify.htmlAntworten:
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[ ∑mi = 1y( i )Loghθ( x( i )) + ( 1 - y( i )) log( 1 - hθ( x( i )) ) ] .
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.( θ ) = - [ ∑mi = 1∑K.k = 11 { y( i )= k } logP.( y( i )= k | x( i );; θ ) ]
quelle
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.
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)=k∣x(i);θ)
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.
Mit Ausnahme der Links empfehlen wir Ihnen dieses Beispiel: https://github.com/rasbt/python-machine-learning-book/blob/master/faq/softmax_regression.md
quelle