Conoce Atico34 - Solicita presupuesto
Inteligencia artificial

¿Qué es el underfitting y cómo prevenirlo?

Uno de los indicadores más alarmantes de un modelo de aprendizaje automático de bajo rendimiento es una prueba de precisión de los datos de entrenamiento y prueba. Una prueba de tus datos indicará si tu modelo está sobreajustado, desajustado o equilibrado. La razón por la que tenemos la división de prueba de tren es para que podamos determinar y ajustar el rendimiento de nuestros modelos. De lo contrario, estaríamos entrenando ciegamente nuestros modelos para predecir sin tener conocimiento del rendimiento del modelo. Vamos a analizar aquí en qué consiste el underfitting o sobreajuste, sus causas y consecuencias, cómo detectarlo y evitarlo y las diferencias con el overfitting.

¿Qué es el underfitting en machine learning?

En cada conjunto de datos, el ruido está presente, además de los patrones que realmente describen la relación. Si entrenamos nuestro modelo de tal manera que capture estos patrones con gran detalle, estamos entrenando un modelo subajustado. En otras palabras, funcionará muy bien para los datos sobre los que está entrenado, pero ¿también funciona con datos que provienen del mundo real? Después de todo, ¿es posible que el ruido no esté presente allí?

Underfitting se refiere al escenario en el que un modelo de aprendizaje automático no puede generalizarse o encajar bien en un conjunto de datos invisible. Una clara señal de sobreajuste del aprendizaje automático es si tu 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 subajuste es un término utilizado en las estadísticas 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 la precisión de la predicción de observaciones futuras. Es lo contrario al overfitting.

El underfitting ocurre cuando un modelo aprende los detalles y el ruido en el conjunto de datos de entrenamiento en la medida en que impacta negativamente el rendimiento del modelo en un nuevo conjunto de datos. Esto significa que el modelo capta y aprende el ruido o las fluctuaciones aleatorias en el conjunto de datos de entrenamiento como conceptos. El problema es que estos conceptos no se aplican a nuevos conjuntos de datos y tienen un impacto negativo en la capacidad del modelo para generalizar.

¿Cuáles son sus causas?

Las principales causas del underfitting o sobreajuste son:

  • No hay suficientes parámetros o complejidad para modelar adecuadamente los datos
  • Los priores bayesianos son demasiado restrictivos o ciertos (baja entropía)
  • No se le dio suficiente tiempo al algoritmo de aprendizaje automático para entrenar.

Un modelo de subajuste ha memorizado demasiado el conjunto de datos que ha visto y no puede generalizar el aprendizaje a un conjunto de datos no visto. Por eso, un modelo de subajuste da como resultado una precisión de prueba muy baja. La precisión de prueba deficiente puede ocurrir cuando el modelo es muy complejo, es decir, las combinaciones de características de entrada están en un gran número y afectan la flexibilidad del modelo.

¿Y sus consecuencias?

Underfitting es lo que ocurre cuando nuestro modelo es muy simplista, insuficiente para capturar los matices, particularidades y complejidades en los datos.

Cuando estudiamos la noche anterior a un examen, sólo ojeando breve y superficialmente los conceptos, estamos incurriendo en “underfitting”, ya que no hicimos el trabajo necesario para aprender, sino que nuestro exceso de confianza nos llevó a pensar que entendíamos algo que, en esencia, es más complejo. El resultado natural de esta subestimación de los datos es que no sólo nos desempeñaremos mal en el examen, sino muy posiblemente en los ejercicios que se encuentran en el libro.

Los modelos víctimas del underfitting tienen alta parcialidad (en inglés, bias), lo que se traduce en una robustez casi obstinada a las variaciones en los datos, hasta el punto tal de no ser capaces de detectar los matices característicos de la data sobre la que trabajan.

¿Cómo detectar el underfitting o subajuste?

Un modelo no se ajusta cuando es demasiado simple con respecto a los datos que está tratando de modelar. Una forma de detectar tal situación es utilizar el enfoque de variación de sesgo.

Si nuestro modelo funciona mucho mejor en el conjunto de datos de prueba que en el conjunto de datos de entrenamiento, es probable que estemos desajustados.

Otra forma sencilla de detectar esto es mediante la validación cruzada. Esto intenta examinar el modelo entrenado con un nuevo conjunto de datos para verificar su precisión predictiva. Dado un conjunto de datos, una parte de esto se retiene (digamos, 30%) mientras que el resto se usa para entrenar el modelo. Una vez que se ha 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 derivados de la formación.

Cuando entrenas un modelo de aprendizaje profundo, especificas una función de pérdida. Esta función, que produce un valor que te dice algo sobre el rendimiento de tu modelo, se puede construir basándose en datos de entrenamiento o datos de validación.

Durante el entrenamiento, siempre debemos confiar en los datos de validación al estimar el rendimiento de nuestro modelo (confiar en los datos de entrenamiento para estimar el rendimiento del modelo es como verificar su propia tarea).

Utilizando la pérdida de validación, podemos encontrar si nuestro modelo no se ajusta correctamente. Recuerda que cuando lo haces, el modelo aún puede ganar poder predictivo sin estar demasiado entrenado en el propio conjunto de datos de entrenamiento.

Métodos para evitar la sobregeneralización

La detección de sobreajuste o desajuste es útil, pero no resuelve el problema. Afortunadamente, tienes varias opciones para probar. A continuación, se muestran algunas de las soluciones más populares.

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

Para evitar el sobreentrenamiento en machine learning, hay varias formas y algunas de ellas se muestran a continuación.

Validación cruzada

La validación cruzada es una poderosa medida preventiva contra el sobreajuste.

Utiliza tus datos de entrenamiento inicial para generar múltiples divisiones de prueba de mini tren. Utiliza estas divisiones para ajustar tu modelo.

En la validación cruzada estándar de k veces, 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 reservado”).

La validación cruzada te permite ajustar los hiperparámetros solo con tu conjunto de datos de entrenamiento original. Esto permite mantener su conjunto de datos de prueba como un conjunto de datos realmente invisible para seleccionar tu modelo final.

Entrena 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 introduzca más datos de entrenamiento en el modelo, no podrá sobreajustar todas las muestras y se verá obligado a generalizar para obtener resultados.

Los usuarios deben recopilar continuamente más datos como una forma de aumentar la precisión del modelo.

Sin embargo, este método se considera caro y, por lo tanto, los usuarios deben asegurarse de que los datos que se utilizan sean relevantes y limpios.

Por supuesto, ese no es siempre el caso. Si solo agregamos más datos ruidosos, esta técnica no ayudará. Es por eso que siempre debes asegurarte de que tus datos estén limpios y sean 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 puedes recopilar continuamente más datos, puedes hacer que los conjuntos de datos disponibles parezcan diversos.

El aumento de datos hace que una muestra de datos tenga un aspecto ligeramente diferente cada vez que el modelo la procesa. El proceso hace que cada conjunto de datos parezca único para el modelo y evita que el modelo aprenda las características de los conjuntos de datos.

Reducir la complejidad o la simplificación de datos

El sobreajuste puede ocurrir debido a la complejidad de un modelo, de modo que, incluso con grandes volúmenes de datos, el modelo aún logra sobreajustar el conjunto de datos de entrenamiento.

El método de simplificación de datos se utiliza para reducir el sobreajuste al disminuir 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 la deserción en una red neuronal.

Simplificar el 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 tu modelo a ser más simple.

El método dependerá del tipo de alumno que estés utilizando. Por ejemplo, podrías podar un árbol de decisiones, usar la deserción en una red neuronal o agregar un parámetro de penalización a la función de costo en la regresión.

A menudo, el método de regularización también es un hiperparámetro, lo que significa que se puede ajustar mediante validación cruzada.

Ensamble

Los conjuntos son métodos de aprendizaje automático para combinar predicciones de varios modelos separados. Hay algunos métodos diferentes para ensamblar, pero los dos más comunes son: Boosting y Bagging.

El Boosting funciona mediante el uso de modelos base simples para aumentar su complejidad agregada. Entrena a un gran número de estudiantes débiles organizados en una secuencia, de modo que cada estudiante en la secuencia aprenda de los errores del estudiante anterior.
Impulsar los intentos de mejorar la flexibilidad predictiva de modelos simples.

Boosting combina a todos los alumnos débiles de la secuencia para sacar a un alumno fuerte.

El Bagging funciona capacitando a muchos aprendices sólidos organizados en un patrón paralelo y luego combinándolos para optimizar sus predicciones. Intenta reducir la posibilidad de sobreajuste de modelos complejos.

El Bagging luego combina a todos los aprendices fuertes para “suavizar” sus predicciones.

Parada anticipada

Cuando entrenas un algoritmo de aprendizaje de forma iterativa, puedes medir qué tan bien se desempeña cada iteración del modelo.

Hasta cierto número de iteraciones, las nuevas iteraciones mejoran el modelo. Sin embargo, después de ese punto, la capacidad del modelo para generalizar puede debilitarse a medida que comienza a sobreajustarse a los datos de entrenamiento.

La detención anticipada se refiere a detener el proceso de capacitación antes de que el alumno pase ese punto.

Hoy en día, esta técnica se utiliza principalmente en el aprendizaje profundo, mientras que otras técnicas (por ejemplo, regularización) se prefieren para el aprendizaje automático clásico.

Diferencias entre underfitting vs overfitting

Siempre que trabajamos en un conjunto de datos para predecir o clasificar un problema, tendemos a encontrar precisión implementando un modelo de diseño en el primer conjunto de trenes y luego en el conjunto de prueba. Si la precisión es satisfactoria, tendemos a aumentar la precisión de la predicción de conjuntos de datos aumentando o disminuyendo la función de datos o la selección de características o aplicando ingeniería de características en nuestro modelo de aprendizaje automático. Pero en algún momento nuestro modelo puede dar malos resultados.

El bajo rendimiento de nuestro modelo puede deberse a que el modelo es demasiado simple para describir el objetivo, o puede ser que el modelo sea demasiado complejo para expresar el objetivo. ¿Por qué pasó esto? ¿Y cómo afrontarlo?

Aquí surge el concepto de underfitting y overfitting.

En el aprendizaje automático, predecimos y clasificamos nuestros datos de una manera más generalizada. Entonces, para resolver el problema de nuestro modelo que está sobreajustado o desajustado, tenemos que generalizar nuestro modelo. Hablando estadísticamente, qué tan bien nuestro modelo se ajusta al conjunto de datos de manera que brinde los resultados precisos adecuados como se esperaba.

Resolver el problema del sesgo y la varianza se trata realmente de lidiar con el sobreajuste y el desajuste. El sesgo se reduce y la varianza aumenta en relación con la complejidad del modelo. A medida que se agregan más y más parámetros a un modelo, la complejidad del modelo aumenta y la varianza se convierte en nuestra principal preocupación, mientras que el sesgo disminuye constantemente.

Primero aprendamos qué es el sesgo, la varianza y su importancia en la predicción del modelo.

Sesgo

Nos da qué tan cerca está nuestro modelo predictivo de los datos de entrenamiento después de promediar el valor de predicción. Generalmente, el algoritmo tiene un alto sesgo que les ayuda a aprender rápido y fácil de entender, pero son menos flexibles. Eso pierde su capacidad para predecir problemas complejos, por lo que no explica el sesgo del algoritmo. Esto da como resultado un ajuste inadecuado de nuestro modelo.

Varianza

Se define como desviación de las predicciones, en simple es la cantidad que nos dice cuándo cambia el valor de sus datos puntuales o se usa un dato diferente en qué medida se verá afectado el valor predicho para el mismo modelo o para diferentes modelos respectivamente. Idealmente, el valor predicho que predecimos a partir del modelo debería permanecer igual incluso cambiando de un conjunto de datos de entrenamiento a otro, pero si el modelo tiene una alta varianza, el valor de predicción del modelo se ve afectado por el valor de los conjuntos de datos.

En el overfitting, un modelo estadístico describe un error o ruido aleatorio en lugar de la relación subyacente. El sobreajuste en machine learning ocurre cuando un modelo es excesivamente complejo, como tener demasiados parámetros en relación con el número de observaciones. Un modelo que se ha sobreajustado tiene un rendimiento predictivo deficiente, ya que reacciona de forma exagerada a fluctuaciones menores en los datos de entrenamiento.

El underfitting ocurre cuando un modelo estadístico o un algoritmo de aprendizaje automático no puede capturar la tendencia subyacente de los datos. Se produciría un desajuste, por ejemplo, al ajustar un modelo lineal a datos no lineales. Un modelo así también tendría un rendimiento predictivo deficiente.

El sobreajuste es un error de modelado que se produce cuando una función se ajusta demasiado a un conjunto limitado de puntos de datos. El desajuste se refiere a un modelo que no puede modelar los datos de entrenamiento ni generalizarse a nuevos datos.

El desajuste ocurre cuando un modelo estadístico o un algoritmo de aprendizaje automático no puede capturar la tendencia subyacente de los datos. Intuitivamente, el desajuste se produce cuando el modelo o el algoritmo no se ajustan lo suficientemente bien a los datos. Específicamente, se produce un desajuste si el modelo o algoritmo muestra una varianza baja pero un sesgo alto.