¿Por qué usar tanto el conjunto de validación como el conjunto de prueba?


17

Considere una red neuronal:

Para un conjunto de datos dado, lo dividimos en entrenamiento, validación y conjunto de pruebas. Supongamos que lo hacemos en la clásica relación 60:20:20, luego evitamos el sobreajuste al validar la red verificándola en el conjunto de validación. Entonces, ¿cuál es la necesidad de probarlo en el conjunto de prueba para verificar su rendimiento?

¿El error en el conjunto de prueba no será el mismo que el conjunto de validación, ya que para la red son datos invisibles al igual que el conjunto de validación y también ambos son iguales en número?

En cambio, ¿no podemos aumentar el conjunto de entrenamiento fusionando el conjunto de prueba para que tengamos más datos de entrenamiento y la red entrene mejor y luego usar el conjunto de validación para evitar el sobreajuste? ¿Por qué no hacemos esto?


44
Le gustaría que fuera igual, pero no puede estar seguro porque lo ha tocado para la optimización de hiperparámetros y la detención temprana, por lo que necesita un conjunto de prueba virgen.
Emre

@Emre Pero los pesos se ajustarán según el conjunto de entrenamiento y no según el conjunto de validación, por lo que el resultado en el conjunto de prueba y validación no debería ser muy diferente.
user1825567

No, no lo hacen (se ajustan de acuerdo con el conjunto de entrenamiento). Eso es para parámetros regulares.
Emre

Respuestas:


23

Supongamos que está entrenando un modelo cuyo rendimiento depende de un conjunto de hiperparámetros. En el caso de una red neuronal, estos parámetros pueden ser, por ejemplo, la velocidad de aprendizaje o el número de iteraciones de entrenamiento.

Dada la opción de valores de hiperparámetro, utiliza el conjunto de entrenamiento para entrenar el modelo. Pero, ¿cómo establece los valores para los hiperparámetros? Para eso está el conjunto de validación . Puede usarlo para evaluar el rendimiento de su modelo para diferentes combinaciones de valores de hiperparámetros (por ejemplo, mediante un proceso de búsqueda de cuadrícula) y mantener el modelo mejor entrenado.

Pero, ¿cómo se compara su modelo seleccionado con otros modelos diferentes? ¿Su red neuronal funciona mejor que, digamos, un bosque aleatorio entrenado con la misma combinación de datos de entrenamiento / prueba? No puede comparar en función del conjunto de validación, porque ese conjunto de validación era parte del ajuste de su modelo. ¡Lo usó para seleccionar los valores de hiperparámetro!

El conjunto de pruebas le permite comparar diferentes modelos de manera imparcial, basando sus comparaciones en datos que no se utilizaron en ninguna parte de su proceso de selección de entrenamiento / hiperparámetro.


11

El conjunto de prueba y el conjunto de validación cruzada tienen diferentes propósitos. Si deja caer cualquiera de ellos, pierde sus beneficios:

  • El conjunto de validación cruzada se utiliza para ayudar a detectar el sobreajuste y para ayudar en la búsqueda de hiperparámetros.

  • El conjunto de prueba se utiliza para medir el rendimiento del modelo.

No se puede utilizar el conjunto de validación cruzada para medir el rendimiento de su modelo con precisión, ya que se deliberadamente ajustar sus resultados para obtener el mejor posible métrica, tal vez más de cientos de variaciones de sus parámetros. Por lo tanto, es probable que el resultado de la validación cruzada sea demasiado optimista.

Por la misma razón, no puede descartar el conjunto de validación cruzada y utilizar el conjunto de prueba para seleccionar hiperparámetros, porque entonces está prácticamente garantizado que estará sobreestimando lo bueno que es su modelo. En el mundo ideal, usa el equipo de prueba solo una vez, o lo usa de manera "neutral" para comparar diferentes experimentos.

Si realiza la validación cruzada, encuentre el mejor modelo, luego agregue los datos de prueba para entrenar, es posible (y en algunas situaciones tal vez bastante probable) que su modelo mejore. Sin embargo, no tiene forma de estar seguro de si eso realmente sucedió, e incluso si es así, no tiene una estimación imparcial de cuál es el nuevo rendimiento.

Al presenciar muchas competiciones de Kaggle, mi experiencia es que sintonizar el conjunto de pruebas al usarlo en exceso es algo real e impacta esas competencias en gran medida. A menudo hay un grupo de competidores que han escalado la tabla de clasificación pública y han seleccionado su mejor modelo en la prueba (la tabla de clasificación pública es efectivamente un conjunto de prueba), sin ser tan exhaustivos en su validación cruzada. . . estos competidores abandonan la tabla de clasificación cuando se introduce un nuevo conjunto de prueba al final.

Un enfoque que es razonable es reutilizar (entrenar + cv) los datos para volver a entrenar utilizando los hiperparámetros que haya encontrado, antes de realizar las pruebas. De esa manera, puede entrenar en más datos y aún así obtener una medida de rendimiento independiente al final.

Si desea obtener más de la validación cruzada, el enfoque habitual es la validación cruzada k-fold . Un truco común en las competiciones de Kaggle es utilizar la validación cruzada k-fold y, en lugar de volver a combinar los datos en un conjunto de entrenamiento más grande (entrenamiento + cv), para agrupar o apilar los resultados del cv en un metamodelo.

Finalmente, siempre verifique que sus divisiones para validación y prueba sean robustas frente a la posible correlación dentro de su conjunto de datos.


1
¿Qué quiere decir con "robusto frente a la posible correlación dentro de su conjunto de datos"?
user6903745
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.