¿Por qué es malo el sobreajuste?


27

He estudiado mucho esto, y dicen que sobreajustar las acciones en el aprendizaje automático es malo, sin embargo, nuestras neuronas se vuelven muy fuertes y encuentran las mejores acciones / sentidos por los que pasamos o evitamos, además se pueden reducir / incrementar de mal / bueno por malos o buenos desencadenantes, lo que significa que las acciones se nivelarán y terminará con las mejores (correctas), súper fuertes acciones de confianza. ¿Cómo falla esto? Utiliza disparadores de sentido positivo y negativo para reducir / volver a incrementar las acciones que se dicen desde 44pos. a 22neg.


44
Esta pregunta es mucho más amplia que solo para aprendizaje automático, redes neuronales, etc. Se aplica a ejemplos tan simples como ajustar un polinomio.
gerrit


77
@ FriendlyPerson44 Después de volver a leer su pregunta, creo que hay una gran desconexión entre su título y su pregunta real. Parece que está preguntando acerca de las fallas en su IA ( que solo se explica vagamente ), mientras que la gente responde " ¿Por qué está mal el
sobreajuste

3
@DoubleDouble Estoy de acuerdo. Además, la conexión entre el aprendizaje automático y las neuronas es dudosa. El aprendizaje automático no tiene nada que ver con 'actuar como un cerebro', simular neuronas o simular inteligencia. Parece que hay muchas respuestas diferentes que podrían ayudar a OP en este momento.
Shaz

2
Debes agudizar tu pregunta y el título. Tal vez para: "¿Por qué tenemos que proteger un cerebro virtual contra el sobreajuste, mientras que el cerebro humano funciona muy bien sin ninguna contramedida contra el sobreajuste?"
Falco

Respuestas:


44

La mejor explicación que he escuchado es esta:

Cuando estás haciendo aprendizaje automático, asumes que estás tratando de aprender de los datos que siguen alguna distribución probabilística.

Esto significa que en cualquier conjunto de datos, debido a la aleatoriedad, habrá algo de ruido : los datos variarán aleatoriamente.

Cuando se sobreajusta, termina aprendiendo de su ruido e incluyéndolo en su modelo.

Luego, cuando llega el momento de hacer predicciones a partir de otros datos, su precisión disminuye: el ruido llegó a su modelo, pero era específico de sus datos de entrenamiento, por lo que perjudica la precisión de su modelo. Su modelo no generaliza: es demasiado específico para el conjunto de datos que eligió para entrenar.


1
"Aprender del ruido" me suena vago. ¿Qué pasa exactamente? ¿Puede dar un ejemplo?
Raphael

incluso si sus datos están muy limpios y fuera de los valores atípicos (valores atípicos naturales y no naturales), aún así "sobreajustar" es una mala práctica y debe eliminarse de su modelo. cuando su modelo está "sobreajustado", eso significa que su modelo no generalizó el conocimiento oculto en los datos y no puede predecir ningún otro punto de datos. Simplemente cuando sobreajusta su modelo, lo ajusta solo en su conjunto de datos de tren / prueba.
Aboelnour

2
@Raphael El sistema comienza a ver el ruido en el conjunto de entrenamiento como características. Si luego ejecuta la red en datos reales donde falta ese ruido específico, terminará con una probabilidad menor porque faltan características (= el ruido que se incluyó).
drake7707

2
@Raphael ¿Qué pasa por ejemplo? Tengo una colección de imágenes de una cámara de tráfico. Vamos a entrenar una red que detecte si hay autos presentes o no. Después de algunos entrenamientos, tengo un set con autos y sin autos, ¡genial! Apliquemos la red en un nuevo conjunto para detectar si una calle está vacía sin gente y ¿por qué no detecta mi calle vacía con una alta probabilidad? Mirando hacia atrás en el conjunto de muestra y me doy cuenta de que en cada imagen había personas en el fondo de las imágenes cuando no había ningún automóvil. Debido al sobreajuste de la red, hizo hincapié en las personas presentes
drake7707

1
Considere un sistema que tiene ruido agregado por un lanzamiento de moneda. En las caras, agrega 1 al valor, y en las colas agrega 0. Para hacer obvios los resultados, elegiremos un conjunto de datos absurdamente pequeño de dos puntos: (2, 5) y (2.1, 8). La moneda lanza caras para el primer punto, colas para el segundo, introduciendo ruido, haciendo el conjunto de datos (3, 5), (2.1, 8). Ahora la red neuronal está aprendiendo de un conjunto de datos que parece que existe una correlación significativa entre los valores x e y, aunque casi todo era ruido. Si luego envía esta 'red a datos reales, generará muchos resultados incorrectos
Cort Ammon - Reinstale a Monica el

39

Versión ELI5

Esto es básicamente como se lo expliqué a mi hijo de 6 años.

Una vez había una chica llamada Mel ( "¿Lo entiendes? ML?" "Papá, eres cojo" ). Y todos los días Mel jugaba con un amigo diferente, y cada día que jugaba era un día soleado y maravilloso.

Mel jugó con Jordan el lunes, Lily el martes, Mimi el miércoles, Olive el jueves ... y luego el viernes Mel jugó con Brianna y llovió. ¡Fue una tormenta terrible!

¡Más días, más amigos! Mel jugó con Kwan el sábado, Grayson el domingo, Asa el lunes ... y luego el martes Mel jugó con Brooke y llovió de nuevo, ¡incluso peor que antes!

Ahora, la madre de Mel hizo todas las fechas de juego, así que esa noche durante la cena, ella comienza a contarle a Mel todo sobre las nuevas fechas de juego que ha alineado. "Luis el miércoles, Ryan el jueves, Jemini el viernes, Bianca el sábado -"

Mel frunció el ceño.

La madre de Mel preguntó: "¿Qué pasa, Mel, no te gusta Bianca?"

Mel respondió: "Oh, claro, ella es genial, pero cada vez que juego con un amigo cuyo nombre comienza con B, llueve".


¿Qué tiene de malo la respuesta de Mel?

Bueno, puede que no llueva el sábado.

Bueno, no sé, quiero decir, vino Brianna y llovió, vino Brooke y llovió ...

Sí, lo sé, pero la lluvia no depende de tus amigos.


10
Y a esa otra pregunta, esto es lo que significa "aprender del ruido".
Kyle Hale

Al comentario de la lluvia: Pero hacemos eso, luego seguimos trabajando de esa manera y aprendemos más más adelante.
Persona amable 44

13
@ FriendlyPerson44 Tienes razón, la gente comete errores y hace cosas malas como sobreajustar. Su pregunta es por qué el sobreajuste es malo, no si las personas lo hacen o no.
Kyle Hale

1
Este problema no solo se aplica a los robots que aprenden mal, sino también a las personas que aprenden mal.
Tomáš Zato - Restablece a Mónica el

No entiendo del todo: la lluvia no debería ser una variable predictora en primer lugar, ¿qué tiene que ver con el sobreajuste?
mucaho

14

El sobreajuste implica que su alumno no generalizará bien. Por ejemplo, considere un escenario de aprendizaje supervisado estándar en el que intente dividir los puntos en dos clases. Suponga que recibe puntos de entrenamiento. Puede ajustar un polinomio de grado N que genera 1 en los puntos de entrenamiento de la primera clase y -1 en los puntos de entrenamiento de la segunda clase. Pero este polinomio probablemente sería inútil para clasificar nuevos puntos. Este es un ejemplo de sobreajuste y por qué es malo.nortenorte


Pero sus acciones súper equipadas están vinculadas a sentidos específicos, y solo cuando vuelve a ver los mismos sentidos coincide con la memoria y los enlaces a estas acciones, no las hará cuando vea otras cosas. Generalizar es dos cosas: todas estas imágenes de árbol son árboles, y usan el conocimiento del pasado para descubrir esta cosa nueva. Para que mi IA resuelva esto, ve un árbol y escucha "árbol", y eso coincide con la memoria y lo pone al frente, luego ve nuevos árboles y sus nombres y todos se vinculan a los sentidos en la última memoria: la primera imagen del árbol y sonar. Descubrir algo nuevo relacionado por knwldge es nuevo actio
Friendly Person 44

2
@ FriendlyPerson44 En el aprendizaje automático supervisado, el resultado de la capacitación no debería necesitar cambiar más. Aquí es donde entra en juego el "sobreajuste". Sería como si la máquina hubiera aprendido a reconocer un árbol: primero por los colores, luego la forma general, luego una forma específica ( donde debería detenerse ), pero luego comienza a distinguir árboles por patrones aleatorios adicionales que solo encontró en su conjunto de entrenamiento. Cuando le permite ver nuevas imágenes aleatorias de árboles, decide que no son árboles. En ese punto, ¡el peor de los casos es que está en uso y nadie lo está supervisando!
DoubleDouble

Pero el mío reconoce un árbol guardando la imagen del árbol y el sonido "árbol" y uniendo los dos sentidos, y cuando se dice árbol coincide con lo que está en la memoria y trae la coincidencia y todo lo que está vinculado al frente de la memoria y luego cuando se muestra otro árboles y llamaron nuevos nombres a estas imágenes y sonidos como los primeros aprendidos. Sin embargo, los árboles no son sus desencadenantes, los alimentos son, no va a guardar acciones cuando ve un color o patrón. El mío realmente aprende las acciones.
Persona amable 44

1
@ FriendlyPerson44 ¿Qué tiene eso que ver con por qué el sobreajuste es malo?
DoubleDouble

9

En términos generales, el sobreajuste generalmente ocurre cuando la relación

ingrese la descripción de la imagen aquí

es muy alto.

Piense en el ajuste excesivo como una situación en la que su modelo aprende los datos de entrenamiento de memoria en lugar de aprender las imágenes generales que evitan que pueda generalizarse a los datos de prueba: esto sucede cuando el modelo es demasiado complejo con respecto al tamaño de los datos de entrenamiento, es decir cuando el tamaño de los datos de entrenamiento es demasiado pequeño en comparación con la complejidad del modelo.

Ejemplos:

  • Si los datos están en dos dimensiones, tiene 10000 puntos en el conjunto de entrenamiento y el modelo es una línea, es probable que bajo -FIT.
  • Si los datos están en dos dimensiones, que tiene 10 puntos en el conjunto de entrenamiento y el modelo es polinomio de 100 grados, es probable que más de -FIT.

ingrese la descripción de la imagen aquí

Desde un punto de vista teórico, la cantidad de datos que necesita para entrenar adecuadamente su modelo es una pregunta crucial pero que aún queda por responder en el aprendizaje automático. Uno de esos enfoques para responder esta pregunta es la dimensión VC . Otro es el equilibrio de sesgo-varianza .

Desde un punto de vista empírico, las personas típicamente grafican el error de entrenamiento y el error de prueba en el mismo diagrama y se aseguran de no reducir el error de entrenamiento a expensas del error de prueba:

ingrese la descripción de la imagen aquí

Aconsejaría ver el curso Coursera 'Machine Learning , sección "10: Consejos para aplicar Machine Learning".


1
Me gusta la línea de "aprender de memoria" porque los humanos son capaces (y lo hacen) hasta cierto punto. Imagínese realizar un cuestionario extremadamente difícil en el que las preguntas y las respuestas nunca cambian, pero se le informan las respuestas cuando las obtiene incorrectamente. Imagina que la ecuación (2 + 2) es difícil, reconoces la ecuación y dices '4', pero luego aparece (2 + 3), pero no has aprendido a sumar, solo has aprendido a decir '4' cuando tienes '2 + 2'
DoubleDouble

buena explicación
Nikos M.

4

Creo que deberíamos considerar dos situaciones:

Entrenamiento finito

Hay una cantidad finita de datos que usamos para entrenar nuestro modelo. Después de eso queremos usar el modelo.

En este caso, si se sobreajusta, no hará un modelo del fenómeno que produjo los datos, pero sí hará un modelo de su conjunto de datos. Si su conjunto de datos no es perfecto, tengo problemas para imaginar un conjunto de datos perfecto, su modelo no funcionará bien en muchas o algunas situaciones, dependiendo de la calidad de los datos que utilizó para entrenar. Por lo tanto, el sobreajuste conducirá a la especialización en su conjunto de datos, cuando desee que la generalización modele el fenómeno subyacente.

Aprendizaje continuo

Nuestro modelo recibirá nuevos datos todo el tiempo y seguirá aprendiendo. Posiblemente haya un período inicial de mayor elasticidad para obtener un punto de partida aceptable.

Este segundo caso es más similar a cómo se entrena el cerebro humano. Cuando un humano es muy joven, los nuevos ejemplos de lo que quieres aprender tienen una influencia más pronunciada que cuando eres mayor.

En este caso, el sobreajuste proporciona un problema ligeramente diferente pero similar: los sistemas que se incluyen en este caso a menudo son sistemas que se espera que realicen una función mientras aprenden. Considere cómo un humano no solo está sentado en algún lugar mientras se le presentan nuevos datos para aprender. Un humano está interactuando y sobreviviendo en el mundo todo el tiempo.

Se podría argumentar que debido a que los datos siguen llegando, el resultado final funcionará bien, pero en este lapso de tiempo, ¡lo que se ha aprendido debe usarse! El sobreajuste proporcionará los mismos efectos de corto tiempo que en el caso 1, dando a su modelo un rendimiento peor. ¡Pero usted depende del rendimiento de su modelo para funcionar!

Mire de esta manera, si se sobreajusta, es posible que reconozca a ese depredador que está tratando de comerse en algún momento en el futuro después de muchos más ejemplos, pero cuando el depredador se lo come, eso es discutible.


Buena respuesta a la pregunta que implica la operación: "¿Por qué tenemos que evitar el sobreajuste en cerebros virtuales, cuando nuestros cerebros parecen funcionar bien, sin ninguna compensación de sobreajuste", porque una máquina está entrenada, mientras que los humanos aprenden por sí mismos.
Falco

3

Digamos que quiere enseñarle a la computadora a determinar entre productos buenos y malos y darle el siguiente conjunto de datos para aprender: diagrama con conjunto de datos.  0 a 50 son 0. 52 y 74 son 0. Los valores restantes de 51 a 100 son 1

0 significa que el producto está defectuoso, 1 significa que está bien. Como puede ver, existe una fuerte correlación entre los ejes X e Y. Si el valor medido es inferior o igual a 50, es muy probable (~ 98%) que el producto esté defectuoso y por encima es muy probable (~ 98%) está bien. 52 y 74 son valores atípicos (los factores medidos incorrectamente o no medidos desempeñan un papel; también conocido como ruido). El valor medido puede ser espesor, temperatura, dureza u otra cosa y su unidad no es importante en este ejemplo. Por lo tanto, el algoritmo genérico sería

if(I<=50)
    return faulty;
else
    return OK;

Tendría una probabilidad de 2% de clasificación errónea.

Un algoritmo de sobreajuste sería:

if(I<50)
    return faulty;
else if(I==52)
    return faulty;
else if(I==74)
    return faulty;
else
    return OK;

Por lo tanto, el algoritmo de sobreajuste clasificaría erróneamente todos los productos que miden 52 o 74 como defectuosos, aunque existe una alta probabilidad de que estén bien cuando se les dan nuevos conjuntos de datos / utilizados en la producción. Tendría una posibilidad de 3,92% de clasificación errónea. Para un observador externo, esta clasificación errónea sería extraña pero explicable conocer el conjunto de datos original que estaba sobreajustado.

Para el conjunto de datos original, el algoritmo sobreajustado es el mejor; para los nuevos conjuntos de datos, el algoritmo genérico (no sobreajustado) es probablemente el mejor. La última oración describe en términos básicos el significado de sobreajuste.


2

En mi curso de IA de la universidad, nuestro instructor dio un ejemplo similar al de Kyle Hale:

Una niña y su madre están caminando juntas en la jungla, cuando de repente un tigre salta de la maleza y devora a su madre. Al día siguiente, ella camina por la jungla con su padre, y nuevamente el tigre salta de la maleza. Su padre le grita que corra, pero ella responde "Oh, está bien papá, los tigres solo comen madres".

Pero en la otra mano:

Una niña y su madre están caminando juntas en la jungla, cuando de repente un tigre salta de la maleza y devora a su madre. Al día siguiente, su padre la encuentra encogida en su habitación y le pregunta por qué no está jugando con sus amigos. Ella responde "¡No! ¡Si salgo, un tigre seguramente me comerá!"

Tanto el sobreajuste como el desajuste pueden ser malos, pero diría que depende del contexto del problema que está tratando de resolver cuál le preocupa más.



2

Uno que realmente he encontrado es algo como esto. Primero, mido algo donde espero que la relación de entrada a salida sea aproximadamente lineal. Aquí están mis datos en bruto:

Input   Expected Result
1.045   0.268333453
2.095   0.435332226
3.14    0.671001483
4.19    0.870664399
5.235   1.073669373
6.285   1.305996464
7.33    1.476337174
8.38    1.741328368
9.425   1.879004941
10.47   2.040661489

Y aquí hay un gráfico:

ingrese la descripción de la imagen aquí

Definitivamente parece ajustarse a mis expectativas de datos lineales. Debería ser bastante sencillo deducir la ecuación, ¿verdad? Así que dejas que tu programa analice estos datos por un momento, y finalmente informa que encontró la ecuación que alcanza todos estos puntos de datos, ¡con una precisión del 99,99%! ¡Increíble! Y esa ecuación es ... 9sin (x) + x / 5. Que se ve así: ingrese la descripción de la imagen aquí

Bueno, la ecuación definitivamente predice los datos de entrada con una precisión casi perfecta, pero dado que está tan sobreajustada a los datos de entrada, es prácticamente inútil para hacer cualquier otra cosa.


Creo que el sobreajuste es más una cuestión de lo que haces incorrectamente una vez que tienes los datos de entrada. Aquí no hay nada que puedas hacer; las entradas son inadecuadas porque hay submuestreo.
Emre

1
@Emre: No pretendo submuestrear, pretendía que la entrada / salida fuera lineal, pero el ajuste excesivo produjo una ecuación que era claramente no lineal. Lo editaré para aclarar.
Mooing Duck

1

Eche un vistazo a este artículo, explica el sobreajuste y la falta de ajuste bastante bien.

http://scikit-learn.org/stable/auto_examples/model_selection/plot_underfitting_overfitting.html

El artículo examina un ejemplo de datos de señal de una función coseno. El modelo de sobreajuste predice que la señal será una función un poco más complicada (que también se basa en una función coseno). Sin embargo, el modelo sobreajustado concluye esto basándose no en la generalización sino en la memorización del ruido en los datos de la señal.


44
Si ese enlace se rompe, su respuesta será casi inútil. Proporcione al menos un resumen (con atribución, por supuesto) para que la respuesta tenga un valor independiente de ese enlace.
Raphael

1

Sin experiencia en aprendizaje automático y a juzgar por la respuesta de @ jmite aquí hay una visualización de lo que creo que quiere decir:

Gráfico aleatorio de forma aproximada derecha para demostración

Suponga que las barras individuales en el gráfico anterior son sus datos, para los cuales está tratando de descubrir las tendencias generales que se aplicarán a conjuntos de datos más grandes. Tu objetivo es encontrar la línea curva. Si sobreajusta, en lugar de la línea curva que se muestra, conecta la parte superior de cada barra individual y luego la aplica a su conjunto de datos, y obtiene una respuesta puntiaguda extraña y precisa a medida que el ruido (variaciones de lo esperado) se exagera en sus conjuntos de datos de práctica real.

Espero haber ayudado un poco ...


0

Sobreajuste en la vida real:

La persona blanca ve una noticia de una persona negra cometiendo un crimen. La persona blanca ve otra noticia de la persona negra cometiendo un crimen. La persona blanca ve una tercera noticia de una persona negra cometiendo un crimen. La persona blanca ve una noticia sobre una persona blanca con camisa roja, padres ricos y antecedentes de enfermedades mentales que cometen un delito. La persona blanca concluye que todas las personas negras cometen delitos, y solo las personas blancas con camisas rojas, padres ricos y antecedentes de enfermedades mentales cometen delitos.

Si desea comprender por qué este tipo de sobreajuste es "malo", simplemente reemplace "negro" arriba con algún atributo que lo defina de manera más o menos exclusiva.


Los estereotipos son lo que los laicos llaman sobreajuste.
Emre

3
Eso no es sobreajustar. El sobreajuste sería el sistema que decidiría que las únicas personas que son delincuentes son aquellas que tienen el mismo color de piel, color de camisa, ingresos de los padres e historial de enfermedad mental que uno de los delincuentes en las noticias.
David Richerby

8
@Emre No, los estereotipos son exactamente lo opuesto al sobreajuste. Los estereotipos están llegando a conclusiones que ignoran la mayoría de las propiedades de los datos de entrenamiento. El sobreajuste llega a la conclusión de que solo los datos que cada punto en los datos de entrenamiento describen perfectamente parte de lo que está tratando de reconocer.
David Richerby

Nota del moderador: comentarios fuera de tema / fuera de contexto eliminados. Para una discusión general, visite Computer Science Chat . Si tiene una pregunta sobre un programa en particular que puede o no estar usando el sobreajuste de manera útil, haga una nueva pregunta.
Gilles 'SO- deja de ser malvado'

2
@ArnabDatta Overfitting está haciendo coincidir un modelo excesivamente complicado con demasiada precisión con los datos de entrenamiento; estereotipos es el uso de un modelo excesivamente simplificado.
David Richerby

0

Cualquier dato que pruebe tendrá propiedades que desea que aprenda, y algunas propiedades que son irrelevantes que NO desea que aprenda.

John tiene 11 años
Jack tiene 19 años
Kate tiene 31 años
Lana tiene 39 años

Ajuste adecuado: las edades son aproximadamente lineales, pasando por ~ 20 años.
Sobreajuste: dos humanos no pueden estar separados por 10 años (propiedad del ruido en los datos).
Ajuste insuficiente: 1/4 de todos los humanos son 19 (estereotipos)


¡Bienvenido! Ya tenemos muchos ejemplos informales, así que no estoy seguro de que esto agregue mucho. Y parece difícil hacer este ejemplo más formal. Por ejemplo, ¿cuál es la función lineal que mencionas? La entrada a la función parece ser el nombre de la persona, que no es un número. Mientras tanto, "dos humanos no pueden estar separados por diez años" y "1/4 de los humanos son 19" no son ejemplos de funciones aprendidas de los datos.
David Richerby
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.