val_loss
è il valore della funzione di costo per i dati di convalida incrociata e la perdita è il valore della funzione di costo per i dati di formazione. Sui dati di validazione, i neuroni che usano drop out non rilasciano neuroni casuali. Il motivo è che durante l'allenamento usiamo l'abbandono per aggiungere un po 'di rumore per evitare un eccesso di adattamento. Durante il calcolo della convalida incrociata, ci troviamo nella fase di richiamo e non nella fase di addestramento. Utilizziamo tutte le funzionalità della rete.
Grazie a uno dei nostri cari amici, cito e spiego i contenuti di qui utili.
validation_split
: Float tra 0 e 1. La frazione dei dati di allenamento da utilizzare come dati di validazione. Il modello separerà questa frazione dei dati di addestramento, non si allenerà su di esso e valuterà la perdita e le eventuali metriche del modello su questi dati alla fine di ogni epoca. I dati di validazione è scelto tra gli ultimi campioni nei x ed
y dati forniti, prima di rimescolamento.
validation_data
: tupla (x_val, y_val) o tuple (x_val, y_val, val_sample_weights) su cui valutare la perdita e le eventuali metriche del modello alla fine di ogni epoca. Il modello non verrà addestrato su questi dati. Questo sostituirà validation_split.
Come potete vedere
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
Il metodo utilizzato Keras
ha un parametro chiamato validation_split, che specifica la percentuale di dati utilizzati per valutare il modello che viene creato dopo ogni epoca. Dopo aver valutato il modello utilizzando questa quantità di dati, questo verrà segnalato val_loss
se hai impostato verbose su 1
; inoltre, come chiaramente specificato nella documentazione, è possibile utilizzare validation_data
o validation_split
. I dati di convalida incrociata vengono utilizzati per verificare se il modello si adatta in modo eccessivo ai dati o meno. Questo è ciò che possiamo capire se il nostro modello ha o meno capacità di generalizzazione.
dropout
non lo èNone
), l'allontanamento viene applicato solo durante l'allenamento (cioè nessun abbandono applicato durante la convalida). Pertanto, una delle differenze tra la perdita di convalida (val_loss
) e la perdita di allenamento (loss
) è che, quando si utilizza il dropout, la perdita di validazione può essere inferiore alla perdita di training (di solito non prevista nei casi in cui il dropout non viene utilizzato).