Subajuste y sobreajuste en el aprendizaje automático

Aunque no lo creas, en el mundo real nunca tendremos un conjunto de datos limpio y perfecto. Cada conjunto de datos tendrá algunas partes extrañas o faltantes o datos desequilibrados. O nosotros, como desarrolladores de aprendizaje automático, introduciremos algunos errores o deficiencias en nuestro modelo. Una de las principales razones de esto es que queremos que nuestro modelo sea capaz de describir un patrón subyacente. Desafortunadamente, la naturaleza de los datos de la vida real es que vienen con cierto nivel de ruido y valores atípicos, y en su mayor parte queremos que el modelo capture la señal en los datos y no el ruido.

Ahora, para capturar el patrón subyacente en los datos con precisión, el modelo puede tener que incorporar el ruido. La implicación es que el modelo derivado se ajusta bien a los datos de modelización pero no generaliza lo suficientemente bien a otras muestras que no han sido incluidas en el proceso de modelización.

Existe una terminología para describir lo bien que un modelo de aprendizaje automático aprende y generaliza a nuevos datos, se trata de la sobreadaptación y la inadaptación. El objetivo de un buen modelo de aprendizaje automático es generalizar bien desde el conjunto de datos de entrenamiento a cualquier conjunto de datos del dominio del problema. Esto nos permite hacer predicciones basadas en un conjunto de datos que el modelo nunca ha visto.

En la estadística un ajuste se refiere a lo cerca que está su modelo de la clase / función / valor objetivo. El sobreajuste y el infraajuste son las dos causas principales del mal rendimiento de los algoritmos o modelos de aprendizaje automático.

Entendamos qué es el mejor ajuste, el sobreajuste y el infraajuste. Seguido de algunos códigos.

¿Qué es el Overfitting & Underfitting?

El Overfitting se refiere al escenario en el que un modelo de aprendizaje automático no puede generalizar o ajustarse bien en un conjunto de datos no visto. Una clara señal de sobreajuste del aprendizaje automático es si su error en el conjunto de datos de prueba o validación es mucho mayor que el error en el conjunto de datos de entrenamiento.

El sobreajuste es un término utilizado en estadística que se refiere a un error de modelado que se produce cuando una función se corresponde demasiado con un conjunto de datos. Como resultado, el sobreajuste puede no ajustarse a datos adicionales, y esto puede afectar a la precisión de la predicción de futuras observaciones.

El sobreajuste se produce cuando un modelo aprende los detalles y el ruido del conjunto de datos de entrenamiento hasta el punto de afectar negativamente al rendimiento del modelo en un nuevo conjunto de datos. Esto significa que el ruido o las fluctuaciones aleatorias del conjunto de datos de entrenamiento son recogidos y aprendidos como conceptos por el modelo. El problema es que estos conceptos no se aplican a los nuevos conjuntos de datos y afectan negativamente a la capacidad del modelo para generalizar.

Lo contrario de la sobreadaptación es la infraadaptación.

La infraadaptación se refiere a un modelo que no puede modelar el conjunto de datos de entrenamiento ni generalizar a un nuevo conjunto de datos. Un modelo de aprendizaje automático infraajustado no es un modelo adecuado y será obvio ya que tendrá un rendimiento pobre en el conjunto de datos de entrenamiento.

El infraajuste a menudo no se discute ya que es fácil de detectar dada una buena métrica de rendimiento.

Entenderlo con ejemplos

Ejemplo 1:

Digamos que tres estudiantes se han preparado para un examen de matemáticas.

El primer estudiante sólo ha estudiado las operaciones matemáticas de suma y se ha saltado otras operaciones matemáticas como la resta, la división, la multiplicación, etc.

El segundo estudiante tiene una memoria especialmente buena. Así, el segundo estudiante ha memorizado todos los problemas presentados en el libro de texto.

Y el tercer estudiante ha estudiado todas las operaciones matemáticas y está bien preparado para el examen.

En el examen el estudiante uno sólo será capaz de resolver las preguntas relacionadas con la Suma y fallará en los problemas o preguntas que se le planteen relacionados con otras operaciones matemáticas.

El alumno dos sólo será capaz de responder a las preguntas si por casualidad aparecen en el libro de texto (ya que lo ha memorizado) y no será capaz de responder a ninguna otra pregunta.

El alumno tres será capaz de resolver todos los problemas del examen razonablemente bien.

Los algoritmos de aprendizaje automático tienen un comportamiento similar al de nuestros tres alumnos, a veces el modelo generado por el algoritmo es similar al del primer alumno. Aprenden sólo de una pequeña parte del conjunto de datos de entrenamiento, en estos casos el modelo es Underfitting.

A veces el modelo memoriza todo el conjunto de datos de entrenamiento, como el segundo estudiante. Su rendimiento es muy bueno en instancias conocidas, pero falla mucho en datos no vistos o en instancias desconocidas. En estos casos se dice que el modelo está sobreajustado.

Y cuando el modelo rinde bien tanto en el conjunto de datos de entrenamiento como en los datos no vistos o en las instancias desconocidas, como el estudiante tres, es un buen ajuste.

Ejemplo 2:

Tengamos otro ejemplo y consideremos que usted ha visitado una ciudad «X» y ha dado un paseo en taxi. Al hablar con sus amigos, se da cuenta de que el taxista le cobró el doble o el triple de la tarifa estándar. Esto ocurrió porque eras nuevo en la ciudad y el conductor te tomó literalmente el pelo.

También compraste algunos artículos a un vendedor ambulante, y de nuevo acabaste pagando más de lo que valían. Finalmente decides que la gente de la ciudad «X» es deshonesta. Lo cual es un rasgo humano, la gente suele generalizar. Los modelos de aprendizaje automático también tienen esta debilidad si no tenemos cuidado de evitar el sesgo durante las etapas de desarrollo: modelado, selección de algoritmos, características, conjunto de datos de entrenamiento, etc.

Supongamos que en la misma ciudad «X» otro taxista te ha cobrado razonablemente y según el taxímetro, pero basándote en la experiencia, consideras que este conductor también ha cobrado más. Esto se llama sobreajuste.

De los dos ejemplos anteriores podemos decir que, si el modelo funciona bien en la prueba o en el conjunto de datos no vistos, entonces es un mejor ajuste o un buen modelo. Y si no funciona bien en el conjunto de datos de prueba o no visto, pero lo hizo bien en el conjunto de datos de entrenamiento, entonces es un modelo Overfit. Y cualquier modelo que no lo hizo bien en el conjunto de datos de entrenamiento ni en el conjunto de datos de prueba entonces es un modelo Underfit.

A continuación veremos un ejemplo con código python.

Ejemplo 3:

Este ejemplo demuestra los problemas de underfitting y overfitting y cómo podemos usar la regresión lineal con características polinómicas para aproximar funciones no lineales.

Generemos dos variables digamos X e y. X tendrá algún número aleatorio / muestra, donde como y es una parte de la función coseno.

Basado en los datos el gráfico se verá como… simple trazado de X e y.

Entrenemos nuestro modelo usando Regresión Lineal, predecir y visualizarlo.

Visualicemos el modelo predicho.

Podemos ver que la línea recta es incapaz de capturar los patrones de los datos. Este es un ejemplo de infraajuste. El error será enorme en este modelo.

Consideremos la función polinómica con algunos grados y entrenemos nuestro modelo.

Podemos ver que una función lineal (polinómica con grado 1) no es suficiente para ajustarse a las muestras de entrenamiento. Esto se llama underfitting.

Un polinomio de grado 4 se aproxima a la función verdadera casi perfectamente. Esto se llama mejor ajuste o buen modelo.

Sin embargo, para grados más altos (con grado 15) el modelo se sobreajusta al conjunto de datos de entrenamiento, es decir, aprende el ruido de los datos de entrenamiento.

Evaluamos cuantitativamente el sobreajuste / infraajuste utilizando la validación cruzada.

También calculamos el error cuadrático medio (MSE) en el conjunto de datos de validación, cuanto más alto sea menos probable que el modelo generalice correctamente a partir del conjunto de datos de entrenamiento.

El código completo se puede consultar en
https://colab.research.google.com/drive/1XzngJPT8WUyHFW-JxhrawVhPurJlv1cA?usp=sharing

Detectar el sobreajuste o el infraajuste

Un reto clave para detectar cualquier tipo de ajuste (ya sea infraajuste o mejor ajuste o sobreajuste), es casi imposible antes de probar los datos. Puede ayudar a abordar las características inherentes al sobreajuste, que es la incapacidad de generalizar un conjunto de datos. Por lo tanto, los datos pueden separarse en diferentes subconjuntos para facilitar el entrenamiento y las pruebas. Los datos se dividen en dos partes principales, es decir, un conjunto de datos de prueba y un conjunto de datos de entrenamiento.

La técnica de división puede variar en función del tipo de conjunto de datos y se puede utilizar cualquier técnica de división.

Si nuestro modelo funciona mucho mejor en el conjunto de datos de entrenamiento que en el conjunto de datos de prueba, entonces es probable que estemos sobreajustando Por ejemplo, nuestro modelo funcionó con una precisión del 99% en el conjunto de datos de entrenamiento, pero sólo con una precisión del 50-55% en el conjunto de datos de prueba. Está sobreajustando el modelo y no tuvo un buen rendimiento en el conjunto de datos no visto.

Si nuestro modelo lo hace mucho mejor en el conjunto de datos de prueba que en el de entrenamiento, entonces es probable que estemos subajustando.

Y si nuestro modelo lo hace bien tanto en el conjunto de datos de entrenamiento como en el de prueba, entonces tenemos el mejor ajuste. Por ejemplo, nuestro modelo obtuvo un 90% de precisión en el conjunto de datos de entrenamiento y realiza un 88% – 92% de precisión en el conjunto de datos de prueba. Es el modelo que mejor se ajusta.

Otra forma sencilla de detectar esto es utilizando la validación cruzada. Se trata de examinar el modelo entrenado con un nuevo conjunto de datos para comprobar su precisión predictiva. Dado un conjunto de datos, se reserva una parte de ellos (por ejemplo, el 30%) mientras que el resto se utiliza en el entrenamiento del modelo. Una vez entrenado el modelo, los datos reservados se utilizan para comprobar la precisión del modelo en comparación con la precisión de los datos utilizados en el entrenamiento. Una variación significativa en estos dos banderas de sobreajuste.

Cómo evitar el sobreajuste o el infraajuste

Detectar el sobreajuste o el infraajuste es útil, pero no resuelve el problema. Afortunadamente, tiene varias opciones para probar. Aquí están algunas de las soluciones más populares.

El remedio para el Underfitting, es seguir adelante y probar algoritmos alternativos de aprendizaje automático. Sin embargo, proporciona un buen contraste con el problema del sobreajuste.

Para evitar el sobreajuste, hay varias maneras y algunas de ellas se muestran a continuación.

  • Validación cruzada:
    • La validación cruzada es una poderosa medida preventiva contra el sobreajuste.
    • Utilice sus datos de entrenamiento inicial para generar múltiples mini divisiones de entrenamiento-prueba. Utilice estas divisiones para ajustar su modelo.
    • En la validación cruzada k-fold estándar, dividimos los datos en k subconjuntos, llamados pliegues. Luego, entrenamos iterativamente el algoritmo en k-1 pliegues mientras usamos el pliegue restante como conjunto de prueba (llamado «pliegue de retención»).
    • La validación cruzada le permite ajustar los hiperparámetros sólo con su conjunto de datos de entrenamiento original. Esto le permite mantener su conjunto de datos de prueba como un verdadero conjunto de datos no visto para seleccionar su modelo final.
  • Entrenar con más datos
    • No funcionará siempre, pero entrenar con más datos puede ayudar a los algoritmos a detectar mejor la señal.
    • A medida que el usuario introduce más datos de entrenamiento en el modelo, éste no podrá sobreajustar todas las muestras y se verá obligado a generalizar para obtener resultados.
    • Los usuarios deberían recoger continuamente más datos como forma de aumentar la precisión del modelo.
    • Sin embargo, este método se considera caro y, por lo tanto, los usuarios deberían asegurarse de que los datos que se utilizan son relevantes y están limpios.
    • Por supuesto, ése no es siempre el caso. Si simplemente añadimos más datos ruidosos, esta técnica no servirá de nada. Por eso siempre hay que asegurarse de que los datos están limpios y son relevantes.
  • Aumento de datos
    • Una alternativa al entrenamiento con más datos es el aumento de datos, que es menos costoso en comparación con el primero.
    • Si no se puede recoger continuamente más datos, se puede hacer que los conjuntos de datos disponibles parezcan diversos.
    • El aumento de datos hace que una muestra de datos parezca ligeramente diferente cada vez que es procesada por el modelo. El proceso hace que cada conjunto de datos parezca único para el modelo y evita que éste aprenda las características de los conjuntos de datos.
  • Reducción de la complejidad o simplificación de los datos
    • El sobreajuste puede producirse debido a la complejidad de un modelo, de manera que, incluso con grandes volúmenes de datos, el modelo sigue consiguiendo sobreajustar el conjunto de datos de entrenamiento.
    • El método de simplificación de datos se utiliza para reducir el sobreajuste disminuyendo la complejidad del modelo para hacerlo lo suficientemente simple como para que no se sobreajuste.
    • Algunas de las acciones que se pueden implementar incluyen la poda de un árbol de decisión, la reducción del número de parámetros en una red neuronal y el uso de dropout en una red neuronal.
    • La simplificación del modelo también puede hacer que el modelo sea más ligero y se ejecute más rápido.
  • Regularización
    • La regularización se refiere a una amplia gama de técnicas para forzar artificialmente su modelo a ser más simple.
    • El método dependerá del tipo de aprendiz que esté utilizando. Por ejemplo, puede podar un árbol de decisión, utilizar el abandono en una red neuronal o añadir un parámetro de penalización a la función de coste en la regresión.
    • A menudo, el método de regularización es también un hiperparámetro, lo que significa que puede ser ajustado a través de la validación cruzada.
    • Para aprender sobre la regularización consulte el artículo https://datascience.foundation/datatalk/regularization-machine-learning-teacher escrito y muy bien explicado por Abhishek Mishra.
  • Ensamblaje
    • Los ensamblajes son métodos de aprendizaje automático para combinar predicciones de múltiples modelos separados. Hay algunos métodos diferentes para ensamblar, pero los dos más comunes son: Boosting y Bagging.
    • Boosting funciona utilizando modelos base simples para aumentar su complejidad agregada. Entrena un gran número de aprendices débiles dispuestos en una secuencia, de manera que cada aprendiz de la secuencia aprende de los errores del aprendiz anterior.
    • Boosting intenta mejorar la flexibilidad predictiva de los modelos simples.
    • Boosting combina todos los aprendices débiles de la secuencia para sacar un aprendiz fuerte.
    • Bagging funciona entrenando muchos aprendices fuertes dispuestos en un patrón paralelo y luego combinándolos para optimizar sus predicciones.
    • El empaquetamiento intenta reducir la posibilidad de sobreajustar modelos complejos.
    • El empaquetamiento entonces combina todos los aprendices fuertes juntos para «suavizar» sus predicciones.
  • Parada temprana
    • Cuando se entrena un algoritmo de aprendizaje de forma iterativa, se puede medir el rendimiento de cada iteración del modelo.
    • Hasta un cierto número de iteraciones, las nuevas iteraciones mejoran el modelo. Sin embargo, después de ese punto, la capacidad de generalización del modelo puede debilitarse a medida que comienza a sobreajustar los datos de entrenamiento.
    • La detención temprana se refiere a detener el proceso de entrenamiento antes de que el aprendiz pase ese punto.
    • Hoy en día, esta técnica se utiliza principalmente en el aprendizaje profundo, mientras que otras técnicas (p. ej. regularización) se prefieren para el aprendizaje automático clásico.
  • Es necesario añadir regularización en el caso de los modelos lineales y SVM.
  • En los modelos de árboles de decisión se puede reducir la profundidad máxima.
  • Mientras que en las redes neuronales se puede introducir la capa de abandono para reducir el sobreajuste.

Resumen rápido

El sobreajuste es un error de modelado que introduce un sesgo en el modelo porque está demasiado relacionado con el conjunto de datos.

El sobreajuste hace que el modelo sea relevante sólo para su conjunto de datos, e irrelevante para cualquier otro conjunto de datos.

Algunos de los métodos utilizados para evitar el sobreajuste incluyen el ensamblaje, el aumento de datos, la simplificación de datos y la validación cruzada.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.