Was ist der Unterschied zwischen val_loss
und loss
während des Trainings in Keras?
Z.B
Epoch 1/20
1000/1000 [==============================] - 1s - loss: 0.1760, val_loss: 0.2032
Auf einigen Websites habe ich gelesen, dass Dropout bei der Validierung nicht funktioniert hat.
machine-learning
deep-learning
keras
Vladimircape
quelle
quelle
dropout
nichtNone
). Daher besteht einer der Unterschiede zwischen Validierungsverlust (val_loss
) und Trainingsverlust (loss
) darin, dass der Validierungsverlust bei Verwendung von Dropout geringer sein kann als der Trainingsverlust (normalerweise nicht zu erwarten, wenn kein Dropout verwendet wird).Antworten:
val_loss
ist der Wert der Kostenfunktion für Ihre Kreuzvalidierungsdaten und der Verlust ist der Wert der Kostenfunktion für Ihre Trainingsdaten. Bei Validierungsdaten lassen Neuronen, die Dropout verwenden, keine zufälligen Neuronen fallen. Der Grund dafür ist, dass wir während des Trainings Drop-Outs verwenden, um ein gewisses Maß an Lärm zu erzeugen und eine Überanpassung zu vermeiden. Bei der Berechnung der Kreuzvalidierung befinden wir uns in der Rückrufphase und nicht in der Schulungsphase. Wir nutzen alle Funktionen des Netzwerks.Dank eines unserer lieben Freunde zitiere und erkläre ich den Inhalt von hier, der nützlich ist.
Wie du sehen kannst
fit
Die in verwendete MethodeKeras
verfügt über einen Parameter namens validation_split, der den Prozentsatz der Daten angibt, die für die Bewertung des Modells verwendet werden, das nach jeder Epoche erstellt wird. Nachdem Sie das Modell anhand dieser Datenmenge ausgewertet haben, wird dies gemeldet,val_loss
wenn Sie "Ausführlich" eingestellt haben1
. Darüber hinaus können Sie, wie in der Dokumentation eindeutig angegeben, entwedervalidation_data
oder verwendenvalidation_split
. Kreuzvalidierungsdaten werden verwendet, um zu untersuchen, ob Ihr Modell über die Daten passt oder nicht. Dies ist es, was wir verstehen können, ob unser Modell generalisierbar ist oder nicht.quelle