MSE-Verlust wird für Regressionsaufgaben verwendet. Wie der Name schon sagt, wird dieser Verlust berechnet, indem der Mittelwert der quadratischen Differenzen zwischen tatsächlichen (Ziel-) und vorhergesagten Werten verwendet wird.
Beispiel
Zum Beispiel haben wir ein neuronales Netzwerk, das Hausdaten nimmt und den Hauspreis vorhersagt. In diesem Fall können Sie den Verlust MSE
verwenden. Grundsätzlich sollten Sie diese Verlustfunktion verwenden, wenn die Ausgabe eine reelle Zahl ist.
Binäre Crossentropie
BCE-Verlust wird für die binären Klassifizierungsaufgaben verwendet. Wenn Sie die Verlustfunktion BCE
verwenden, benötigen Sie nur einen Ausgabeknoten, um die Daten in zwei Klassen zu klassifizieren. Der Ausgangswert sollte durch eine Sigmoid-Aktivierungsfunktion geleitet werden und der Ausgabebereich beträgt (0 – 1).
Beispiel
Zum Beispiel haben wir ein neuronales Netzwerk, das Atmosphärendaten aufnimmt und vorhersagt, ob es regnen wird oder nicht. Wenn die Ausgabe größer als 0,5 ist, klassifiziert das Netzwerk sie als rain
und wenn die Ausgabe kleiner als 0,5 ist, klassifiziert das Netzwerk sie als not rain
. (es könnte umgekehrt sein, je nachdem, wie Sie das Netzwerk trainieren). Je höher der Wahrscheinlichkeitswert, desto größer ist die Wahrscheinlichkeit, dass es regnet.
Während des Trainings des Netzwerks sollte der dem Netzwerk zugeführte Zielwert 1 sein, wenn es regnet, andernfalls 0.
Anmerkung 1
Eine wichtige Sache, wenn Sie die Verlustfunktion BCE
verwenden, sollte die Ausgabe des Knotens zwischen (0-1) liegen. Dies bedeutet, dass Sie für Ihre endgültige Ausgabe eine Sigmoidaktivierungsfunktion verwenden müssen. Da Sigmoid jeden reellen Wert im Bereich zwischen (0-1) konvertiert.
Anmerkung 2
Was ist, wenn Sie die Sigmoidaktivierung auf der letzten Ebene nicht verwenden? Dann können Sie ein Argument mit dem Namen from logits
als true
an die Verlustfunktion übergeben, die das Sigmoid intern auf den Ausgabewert anwendet.
Kategoriale Crossentropie
Wenn wir eine Klassifizierungsaufgabe mit mehreren Klassen haben, ist eine der Verlustfunktionen, die Sie ausführen können, diese. Wenn Sie die Verlustfunktion CCE
verwenden, muss die gleiche Anzahl von Ausgabeknoten wie die Klassen vorhanden sein. Und die endgültige Ebenenausgabe sollte durch eine Softmax-Aktivierung geleitet werden, so dass jeder Knoten einen Wahrscheinlichkeitswert zwischen (0-1) ausgibt.
Beispiel
Zum Beispiel haben wir ein neuronales Netzwerk, das ein Bild aufnimmt und es in eine Katze oder einen Hund klassifiziert. Wenn der Katzenknoten eine hohe Wahrscheinlichkeitsbewertung aufweist, wird das Bild in eine Katze oder einen Hund klassifiziert. Grundsätzlich wird das Bild unabhängig davon, welcher Klassenknoten die höchste Wahrscheinlichkeitsbewertung aufweist, in diese Klasse klassifiziert.
Um den Zielwert zum Zeitpunkt des Trainings zu füttern, müssen wir sie One-Hot codieren. Wenn das Bild von Katze ist, dann wäre der Zielvektor (1, 0) und wenn das Bild von Hund ist, wäre der Zielvektor (0, 1). Grundsätzlich hätte der Zielvektor die gleiche Größe wie die Anzahl der Klassen und die Indexposition, die der tatsächlichen Klasse entspricht, wäre 1 und alle anderen wären Null.
Hinweis
Was ist, wenn wir die Softmax-Aktivierung auf der letzten Ebene nicht verwenden? Dann können Sie ein Argument mit dem Namen from logits
als true
an die Verlustfunktion übergeben, die den softmax intern auf den Ausgabewert anwendet. Wie im obigen Fall.
Spärliche kategoriale Crossentropie
Diese Verlustfunktion ist bis auf eine Änderung fast ähnlich wie CCE
.
Wenn wir die Verlustfunktion SCCE
verwenden, müssen Sie den Zielvektor nicht heiß codieren. Wenn das Zielbild von einer Katze ist, übergeben Sie einfach 0, sonst 1. Grundsätzlich übergeben Sie unabhängig von der Klasse nur den Index dieser Klasse.