36 votos

¿Se puede sobreajustar entrenando algoritmos de aprendizaje automático con CV/Bootstrap?

Es posible que esta pregunta sea demasiado abierta para obtener una respuesta definitiva, pero esperemos que no.

Los algoritmos de aprendizaje automático, como SVM, GBM, Random Forest, etc., suelen tener algunos parámetros libres que, más allá de algunas orientaciones generales, deben ajustarse a cada conjunto de datos. Esto se hace generalmente con algún tipo de técnica de remuestreo (bootstrap, CV, etc.) para ajustar el conjunto de parámetros que dan el mejor error de generalización.

Mi pregunta es: ¿se puede ir demasiado lejos en este sentido? La gente habla de hacer búsquedas en la red, etc., pero ¿por qué no tratar esto simplemente como un problema de optimización y profundizar en el mejor conjunto posible de parámetros? Pregunté sobre algunos mecanismos de esto en este pregunta, pero no ha recibido mucha atención. Tal vez la pregunta estaba mal planteada, pero quizás la pregunta en sí misma representa un mal enfoque que la gente generalmente no hace?

Lo que me molesta es la falta de regularización. Puede que al volver a muestrear encuentre que el mejor número de árboles para crecer en un GBM para este conjunto de datos es 647 con una profundidad de interacción de 4, pero ¿cómo puedo estar seguro de que esto será cierto con los nuevos datos (asumiendo que la nueva población es idéntica al conjunto de entrenamiento)? Sin un valor razonable al que "encoger" (o, si se quiere, sin información previa), un nuevo muestreo parece lo mejor que podemos hacer. No oigo hablar de esto, así que me hace preguntarme si hay algo que me estoy perdiendo.

Obviamente, hay un gran coste computacional asociado a la realización de muchas iteraciones para exprimir hasta la última pizca de poder predictivo de un modelo, por lo que está claro que esto es algo que se haría si se tiene el tiempo/grupo para hacer la optimización y cada pizca de mejora del rendimiento es valiosa.

33voto

John Richardson Puntos 1197

Hay una respuesta definitiva a esta pregunta que es "Sí, ciertamente es posible sobreajustar un criterio de selección de modelos basado en la validación cruzada y acabar con un modelo que generaliza mal". ". En mi opinión, esto parece no ser muy apreciado, pero es un escollo sustancial en la aplicación de los métodos de aprendizaje automático, y es el principal foco de mi investigación actual; he escrito dos artículos sobre el tema hasta ahora

G. C. Cawley y N. L. C. Talbot, Over-fitting in model selection and subsequent selection bias in performance evaluation, Journal of Machine Learning Research, 2010. Research, vol. 11, pp. 2079-2107, julio de 2010. ( www )

que demuestra que el sobreajuste en la selección de modelos es un problema sustancial en el aprendizaje automático (y que se pueden obtener estimaciones de rendimiento muy sesgadas si se toman atajos en la selección de modelos durante la evaluación del rendimiento) y

G. C. Cawley y N. L. C. Talbot, Preventing over-fitting in model selection via Bayesian regularisation of the hyper-parameters, Journal of Machine Learning Research, volumen 8, páginas 841-861, abril de 2007. ( www )

donde el criterio de selección del modelo basado en la validación cruzada se regulariza para intentar mejorar el sobreajuste en la selección del modelo (que es un problema clave si se utiliza un núcleo con muchos hiperparámetros).

En este momento estoy escribiendo un artículo sobre la selección de modelos basada en la búsqueda de cuadrículas, que muestra que es posible utilizar una cuadrícula demasiado fina y acabar con un modelo que es estadísticamente inferior a un modelo seleccionado por una cuadrícula mucho más gruesa (fue una pregunta en StackExchange la que me inspiró a investigar la búsqueda de cuadrículas).

Espero que esto ayude.

P.D. La evaluación insesgada del rendimiento y la selección fiable del modelo pueden ser, en efecto, costosas desde el punto de vista informático, pero, según mi experiencia, merecen la pena. La validación cruzada anidada, en la que la validación cruzada externa se utiliza para la estimación del rendimiento y la validación cruzada interna para la selección del modelo, es un buen enfoque básico.

7voto

mat_geek Puntos 1367

Se ha demostrado que la validación cruzada y el bootstrap dan estimaciones de la tasa de error que son casi insesgadas y, en algunos casos, más precisas por el bootstrap que por la validación cruzada. El problema con otros métodos, como la re-sustitución, es que al estimar el error en el mismo conjunto de datos con el que se ajusta el clasificador se puede subestimar enormemente la tasa de error y se puede llegar a algoritmos que incluyan demasiados parámetros y que no predigan valores futuros con tanta precisión como un algoritmo ajustado a un pequeño conjunto de parámetros. La clave del uso de los métodos estadísticos es que los datos que se tienen para entrenar al clasificador sean típicos de los datos que se verán en el futuro, donde las clases faltan y deben ser predichas por el clasificador. Si crees que los datos futuros pueden ser muy diferentes, los métodos estadísticos no pueden ayudar y no sé qué podría hacerlo.

4voto

Jasmine D Puntos 1

Sospecho que una respuesta aquí es que, en el contexto de la optimización, lo que se intenta encontrar es un mínimo global en un noisy función de coste. Así que tienes todos los retos de una optimización global multidimensional más un componente estocástico añadido a la función de costes.

Muchos de los enfoques para hacer frente a los desafíos de los mínimos locales y de un espacio de búsqueda costoso tienen parámetros que pueden necesitar ser ajustados, como el recocido simulado o los métodos monte carlo.

En un universo ideal, computacionalmente ilimitado, sospecho que podrías intentar encontrar un mínimo global de tu espacio de parámetros con límites adecuadamente ajustados en el sesgo y la varianza de tu estimación de la función de error. En este escenario, la regularización no sería un problema, ya que se podría volver a muestrear ad infinitum.

En el mundo real, sospecho que puedes encontrarte fácilmente en un mínimo local.

Como mencionas, se trata de una cuestión distinta, pero esto te deja expuesto al sobreajuste debido a los problemas de muestreo asociados a los datos de los que dispones y su relación con la distribución real subyacente del espacio muestral.

4voto

Depende en gran medida del algoritmo, pero ciertamente se puede, aunque en la mayoría de los casos será sólo una pérdida de esfuerzo benigna.

El núcleo de este problema es que no se trata de una optimización estricta: no se tiene ninguna $f(\mathbf{x})$ definida en algún dominio que simplemente tiene un extremo para al menos un valor de $\mathbf{x}$ , digamos que $\mathbf{x}_{\text{opt}}$ y todo lo que tienes que hacer es encontrarlo. En cambio, tienes $f(\mathbf{x})+\epsilon$ , donde $\epsilon$ tiene alguna distribución loca, suele ser estocástica y depende no sólo de $\mathbf{x}$ sino también sus datos de entrenamiento y los detalles de su CV/bootstrap. De esta manera, lo único razonable que se puede buscar es algún subespacio de $f$ s dominio, digamos $X_\text{opt}\ni \textbf{x}_\text{opt}$ en el que todos los valores de $f+\epsilon$ son insignificantemente diferentes (estadísticamente hablando, si se quiere).

Ahora, aunque no se puede encontrar $\textbf{x}_\text{opt}$ En la práctica, cualquier valor de $X_\text{opt}$ y por lo general es sólo un punto de la cuadrícula de búsqueda de $X_\text{opt}$ seleccionados al azar, para minimizar la carga computacional, para maximizar algunos sub $f$ medida de rendimiento, lo que sea.

El sobreajuste grave puede ocurrir si el $f$ tiene un extremo agudo -- sin embargo, esto "no debería ocurrir", es decir, es una característica de un par algoritmo/datos muy mal seleccionado y un mal pronóstico para el poder de generalización.

Así, pues, (basándose en una práctica presente en buenas revistas) la validación completa y externa de la selección de parámetros no es algo que haya que hacer rigurosamente (a diferencia de la validación de la selección de características), sino sólo si la optimización es somera y el clasificador es bastante insensible a los parámetros.

4voto

Mace Puntos 85

Sí, los parámetros pueden ser "sobreajustados" en el conjunto de entrenamiento y prueba durante la validación cruzada o el bootstrapping. Sin embargo, existen algunos métodos para evitarlo. El primer método sencillo es dividir el conjunto de datos en 3 particiones, una para las pruebas (~20%), otra para probar los parámetros optimizados (~20%) y otra para ajustar el clasificador con los parámetros establecidos. Esto sólo es posible si el conjunto de datos es bastante grande. En otros casos, se sugiere una doble validación cruzada.

Romain François y Florent Langrognet, "Double Cross Validation for Model Based Classification", 2006

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