22 votos

¿Es excesivo utilizar conjuntos de entrenamiento y de prueba para ajustar los hiperparámetros?

Tienes un conjunto de entrenamiento y un conjunto de prueba. Los combinas y haces algo como GridSearch para decidir los hiperparámetros del modelo. A continuación, se ajusta un modelo al conjunto de entrenamiento utilizando estos hiperparámetros y se utiliza el conjunto de prueba para evaluarlo.

¿Se trata de un sobreajuste? En última instancia, los datos no se ajustaron en el conjunto de prueba, pero éste se tuvo en cuenta a la hora de decidir los hiperparámetros.

26voto

throwaway Puntos 18

La idea que subyace tras la validación cruzada y la validación por espera es estimar el rendimiento de generalización de un algoritmo de aprendizaje, es decir, el rendimiento esperado en datos desconocidos/no vistos extraídos de la misma distribución que los datos de entrenamiento. Esto puede utilizarse para ajustar los hiperparámetros o informar del rendimiento final. La validez de esta estimación depende de independencia de los datos utilizados para el entrenamiento y la estimación del rendimiento. Si se viola esta independencia, la estimación del rendimiento tendrá un sesgo demasiado optimista. La forma más flagrante de que esto ocurra es estimar el rendimiento a partir de datos que ya se han utilizado para el entrenamiento o el ajuste de hiperparámetros, pero también hay muchas formas más sutiles e insidiosas.

El procedimiento por el que ha preguntado falla de múltiples maneras. En primer lugar, se utilizan los mismos datos tanto para el entrenamiento como para el ajuste de hiperparámetros. El objetivo del ajuste de hiperparámetros es seleccionar hiperparámetros que ofrezcan un buen rendimiento de generalización. Normalmente, esto se consigue estimando el rendimiento de la generalización para diferentes opciones de hiperparámetros (por ejemplo, utilizando un conjunto de validación) y, a continuación, eligiendo el mejor. Pero, como en el caso anterior, esta estimación será demasiado optimista si se han utilizado los mismos datos para el entrenamiento. La consecuencia es que se elegirán hiperparámetros subóptimos. En particular, habrá un sesgo hacia modelos de alta capacidad que se ajustarán en exceso.

En segundo lugar, los datos que ya se han utilizado para ajustar los hiperparámetros se reutilizan para estimar el rendimiento. Esto dará lugar a una estimación engañosa, como en el caso anterior. Esto no es sobreajuste en sí mismo, pero significa que, si el sobreajuste está ocurriendo (y probablemente lo está, como arriba), entonces usted no lo sabrá.

El remedio consiste en utilizar tres conjuntos de datos distintos: un conjunto de entrenamiento para la formación, un conjunto de validación para el ajuste de hiperparámetros y un conjunto de prueba para estimar el rendimiento final. O bien, utilizar la validación cruzada anidada, que dará mejores estimaciones, y es necesaria si no hay suficientes datos.

6voto

alpheus Puntos 45

Yo diría que no está necesariamente sobreajustado, porque sobreajustar es un término que se utiliza normalmente para indicar que su modelo no generaliza bien. Por ejemplo, si realizas una regresión lineal sobre algo como las imágenes MNIST, es probable que la adaptación sea insuficiente (no generaliza lo suficiente) cuando te entrenas tanto con los datos de entrenamiento como con los de prueba.

Sin embargo, lo que estás haciendo sigue sin ser bueno. El conjunto de prueba es normalmente una parte de los datos que se quieren utilizar para comprobar el rendimiento del modelo final entrenado en datos que nunca ha visto antes. Si se utilizan estos datos para elegir los hiperparámetros, se da al modelo la oportunidad de "ver" los datos de prueba y desarrollar un sesgo hacia estos datos de prueba. Por lo tanto, en realidad se pierde la posibilidad de averiguar lo bueno que sería realmente el modelo con datos no vistos (porque ya ha visto los datos de prueba).

Es posible que no le importe realmente el rendimiento de su modelo, pero entonces tampoco necesitaría un conjunto de pruebas. Dado que en la mayoría de los casos lo que se desea es tener una idea de la calidad del modelo, lo mejor es bloquear los datos de prueba antes de empezar a hacer nada con ellos. Algo tan insignificante como utilizar datos de prueba durante el preprocesamiento probablemente conducirá a un modelo sesgado.

Ahora te estarás preguntando: "¿Cómo debo encontrar los hiperparámetros entonces?". La forma más sencilla sería dividir los datos disponibles (suponiendo que ya haya guardado con seguridad algunos datos para las pruebas) en un conjunto de entrenamiento y un denominado conjunto de validación. Si tiene pocos datos con los que trabajar, probablemente tenga más sentido echar un vistazo a validación cruzada

5voto

roberto Puntos 1

Sí, está sobreajustando. El conjunto de prueba sólo debe utilizarse para probar, no para ajustar parámetros. La búsqueda de parámetros en el conjunto de prueba aprenderá las reglas que están presentes en el conjunto de prueba, y eventualmente lo sobreajustará.

4voto

cbeleites Puntos 12461

No es necesariamente sobreajuste, pero también corre un riesgo innecesario de sobreajuste y te privas de la posibilidad de detectar el sobreajuste.

  • El sobreajuste se produce cuando el modelo es demasiado complejo o tiene demasiados grados de libertad para los datos de entrenamiento disponibles. Esto incluye los grados de libertad del espacio de hiperparámetros que se busca. Por lo tanto, si el conjunto de datos es lo suficientemente grande, no se sobreajusta (por ejemplo, si tiene miles de casos, sólo dos variables para la regresión y un único hiperparámetro continuo para ajustar). Por otro lado, si tiene un puñado de casos, cientos o miles de variantes y un gran espacio de búsqueda de hiperparámetros, corre un gran riesgo de sobreajuste).

  • Pero ya que todos sus datos entraron en la fase de formación (durante la optimización de los hiperparámetros), ha perdido la posibilidad de medir el error de generalización y, por tanto, no puede comprobar/demostrar que no sobreajusta. Lo cual es tan malo como el sobreajuste, a menos que puedas aportar otras pruebas de que no te encuentras en una situación en la que pueda producirse un sobreajuste.

  • Además, ha cambiado su capacidad de medir el error de generalización por una mejora mínima en la formación: Podrías (y deberías) haber hecho todo el entrenamiento en el conjunto de entrenamiento, que para eso está. Y El entrenamiento incluye la fijación de los hiperparámetros.

  • Desde ese punto de vista, la decisión es realmente si es necesario tener una estimación de error basada en datos desconocidos o no (de nuevo basado en el riesgo general de sobreajuste - y en el aprendizaje automático la decisión sería casi siempre que el rendimiento de datos desconocidos es necesario), y luego hacer todo el entrenamiento en sus datos, o hacer todo el entrenamiento en el conjunto de entrenamiento y probar con el conjunto de prueba. (O posiblemente en múltiples divisiones de entrenamiento/prueba como en la validación cruzada).

2voto

Ray Yang Puntos 84

Se trata de una previsión "dentro de la muestra", ya que en última instancia realiza la previsión sobre observaciones que ya forman parte de su conjunto de entrenamiento. ¿Por qué no utilizar la validación cruzada n-fold? De este modo, en cada momento se realiza una previsión "fuera" de la muestra, en la que el conjunto de prueba y el conjunto de entrenamiento están separados.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X