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.
validation_split
: Float zwischen 0 und 1. Der Bruchteil der Trainingsdaten, die als Validierungsdaten verwendet werden sollen. Das Modell unterscheidet diesen Teil der Trainingsdaten, trainiert ihn nicht und bewertet den Verlust und alle Modellmetriken für diese Daten am Ende jeder Epoche. Die Validierungsdaten werden aus den letzten Abtastwerten in den bereitgestellten x- und
y- Daten vor dem Mischen ausgewählt.
validation_data
: Tupel (x_val, y_val) oder Tupel (x_val, y_val, val_sample_weights), anhand dessen der Verlust und alle Modellmetriken am Ende jeder Epoche bewertet werden. Das Modell wird nicht auf diese Daten trainiert. Dadurch wird validation_split überschrieben.
Wie du sehen kannst
fit(self, x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None, validation_split=0.0, validation_data=None, shuffle=True, class_weight=None, sample_weight=None, initial_epoch=0, steps_per_epoch=None, validation_steps=None)
fit
Die in verwendete Methode Keras
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 haben 1
. Darüber hinaus können Sie, wie in der Dokumentation eindeutig angegeben, entweder validation_data
oder verwenden validation_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.
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).