Diferencia de Keras entre val_loss y pérdida durante el entrenamiento


18

¿Cuál es la diferencia entre val_lossy lossdurante el entrenamiento en Keras?

P.ej

Epoch 1/20
1000/1000 [==============================] - 1s - loss: 0.1760, val_loss: 0.2032  

En algunos sitios leí que en la validación, la deserción no funcionaba.


Lo que lee sobre el abandono es probablemente que, cuando se utiliza el abandono ( dropoutes decir, no se usa None), el abandono solo se aplica durante el entrenamiento (es decir, no se aplica abandono durante la validación). Como tal, una de las diferencias entre la pérdida de validación ( val_loss) y la pérdida de entrenamiento ( loss) es que, cuando se usa el abandono, la pérdida de validación puede ser menor que la pérdida de entrenamiento (generalmente no se espera en los casos en que no se usa el abandono).
Psi

Respuestas:


15

val_losses el valor de la función de costo para sus datos de validación cruzada y la pérdida es el valor de la función de costo para sus datos de capacitación. En los datos de validación, las neuronas que usan abandono no eliminan neuronas aleatorias. La razón es que durante el entrenamiento usamos el abandono para agregar algo de ruido para evitar un ajuste excesivo. Durante el cálculo de la validación cruzada, estamos en la fase de recuperación y no en la fase de entrenamiento. Usamos todas las capacidades de la red.

Gracias a uno de nuestros queridos amigos, cito y explico los contenidos de aquí que son útiles.

validation_split: Flotador entre 0 y 1. La fracción de los datos de entrenamiento que se utilizará como datos de validación. El modelo separará esta fracción de los datos de entrenamiento, no se entrenará en ellos y evaluará la pérdida y cualquier métrica del modelo en estos datos al final de cada época. Los datos de validación se seleccionan de las últimas muestras en los datos x e y proporcionados, antes de barajar.

validation_data: tupla (x_val, y_val) o tupla (x_val, y_val, val_sample_weights) para evaluar la pérdida y cualquier métrica del modelo al final de cada época. El modelo no recibirá capacitación sobre estos datos. Esto anulará validation_split.

Como puedes ver

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)

fitEl método utilizado Kerastiene un parámetro denominado validation_split, que especifica el porcentaje de datos utilizados para evaluar el modelo que se crea después de cada época. Después de evaluar el modelo utilizando esta cantidad de datos, se informará val_losssi ha configurado detallado a 1; además, como la documentación especifica claramente, puede usar cualquiera validation_datao validation_split. Los datos de validación cruzada se utilizan para investigar si su modelo se ajusta demasiado a los datos o no. Esto es lo que podemos entender si nuestro modelo tiene capacidad de generalización o no.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.