2016-04-11 14 views
5

Ich verwende die Sigmoid Cross Entropie Verlustfunktion für eine multilabel Klassifizierung Problem wie von this tutorial ausgelegt. In beiden Ergebnissen des Tutorials und meiner Ergebnisse liegen die Ausgabevorhersagen jedoch im Bereich (-Inf, Inf), während der Bereich eines Sigmoids [0, 1] ist. Wird das Sigmoid nur im Backprop verarbeitet? Das heißt, sollte ein Vorwärtsdurchlauf die Ausgabe nicht quetschen?Caffe Sigmoid Kreuz Entropie Verlust

Antwort

5

In diesem Beispiel ist der Eingang der Schicht "SigmoidCrossEntropyLoss" der Ausgang einer vollständig verbundenen Schicht. Tatsächlich gibt es keine Beschränkungen für die Werte der Ausgänge einer "InnerProduct" Schicht, und sie können im Bereich [-inf, inf] liegen.
Allerdings, wenn Sie sorgfältig die "SigmoidCrossEntropyLoss" untersuchen, werden Sie feststellen, dass es eine "Sigmoid" layer inside enthält - um stabile Gradientenschätzung zu gewährleisten.
Daher sollten Sie zur Testzeit die "SigmoidCrossEntropyLoss" durch eine einfache "Sigmoid" Schicht ersetzen, um pro Klasse Vorhersagen auszugeben.

+0

Danke @Shai. Sie sind mit diesen Caffe-Antworten beschäftigt – marcman