Welche Verlustfunktion sollte ich für die binäre Erkennung bei Gesichtserkennung / Nicht-Gesichtserkennung in CNN verwenden?


Antworten:


9

Scharnierverlust und Kreuzentropie weisen im Allgemeinen ähnliche Ergebnisse auf. Hier ist ein weiterer Beitrag, in dem verschiedene Verlustfunktionen verglichen werden. Welche Auswirkungen hat die Auswahl verschiedener Verlustfunktionen bei der Klassifizierung, um einen Verlust von ungefähr 0 bis 1 zu erzielen .

Stimmt das, aber ich frage mich auch, ob ich Softmax verwenden soll, aber nur mit zwei Klassen?

Softmax ist kein Verlust, sondern eine Normalisierungsfunktion, die häufig zusammen mit dem Kreuzentropieverlust verwendet wird, der im Wesentlichen äquivalent zu ist SigmoidCrossEntropyLoss. Siehe auch Entropie- oder Log-Wahrscheinlichkeit in der Ausgabeebene


7

0

In Ihrem Fall haben Sie eine binäre Klassifizierungsaufgabe, daher kann Ihre Ausgabeebene das Standardsigmoid sein (wobei die Ausgabe die Wahrscheinlichkeit darstellt, dass eine Testprobe ein Gesicht ist). Der Verlust, den Sie verwenden würden, wäre binäre Kreuzentropie. Mit diesem Setup können Sie sich eine logistische Regression auf der letzten Ebene Ihres tiefen neuronalen Netzes vorstellen.

Hier sind ein paar Links für Sie. Ich hoffe, sie helfen.
https://en.wikipedia.org/wiki/Cross_entropy#Cross-entropy_error_function_and_logistic_regression
http://neuralnetworksanddeeplearning.com/chap3.html
https://www.quora.com/How-do-you-decide-which-loss- Funktion für maschinelles Lernen


Könnten Sie bitte etwas Licht in die logistische Regression auf der letzten Ebene eines DNN bringen? Ich habe die Beiträge gelesen, kann aber den Nutzen nicht wirklich erkennen sigmoid(als letzte Ebenenaktivierung). Danke
bit_scientist

2

Sie könnten auf jeden Fall Softmax mit nur 2 Klassen "Face" und "Not Face" verwenden und die Softmax-Ausgabe als Vertrauenspunktzahl interpretieren. Dies ist eine nette Funktion, um sich ein Bild von Ihrem Deep Net zu machen.

Probieren Sie sowohl 2-Klassen-Softmax als auch binären Scharnierverlust aus. Es gibt ein aktuelles Papier Deep Learning mit Linear Support Vector Machines einen SVM anstelle eines softmax Klassifikator auf der tiefen konv Netze und es gibt einige viel versprechende Ergebnisse gibt.


2

Normalerweise ist der logarithmische Verlust die bevorzugte Wahl, wenn nur eine Ausgabeeinheit verwendet wird. Logarithmischer Verlust wird auch als binäre Kreuzentropie bezeichnet, da es sich um einen Sonderfall der Kreuzentropie handelt, der nur für zwei Klassen gilt.


Sie sollten Ihren ersten Link aktualisieren.
nbro

0

Theoretisch kann ein Softmax mit 2 Klassen als Sigmoid umgeschrieben werden, daher sollte es keinen Unterschied in den Ergebnissen zwischen den beiden geben. Wie @dontloo bereits erwähnt hat, ist die Anzahl der Parameter in der Ausgabeebene doppelt so hoch (ich bin mir nicht sicher, ob dies zu Problemen bei der Überanpassung führen kann), und natürlich hätten Sie für die beiden Klassen (Face und Non_Face) zwei Punkte.

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.