Conoce Atico34 - Solicita presupuesto
Inteligencia artificial

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

El underfitting es un problema que puede presentarse en el machine learning o modelos de IA de aprendizaje automático, que afecta tanto a los datos de entrenamiento como a los datos de salida, generando un alto índice de errores. Evitar el underfitting o subajuste es fundamental para que el modelo de IA pueda generalizar sus respuestas sobre datos o conjuntos de datos desconocidos.

¿Qué es el underfitting?

El underfitting es un concepto utilizado en el campo del machine learning que describe una situación en la que un modelo de aprendizaje automático sea incapaz de capturar de forma precisa la relación entre los datos de entrada y los de salida, de modo que se genera un alto índice de errores en el conjunto de entrenamiento, así como en los datos no vistos por el modelo.

Para entenderlo mejor, lo explicaremos con un ejemplo: Si quiero que un modelo reconozca y diga que está viendo un pingüino, con independencia de la especie de la que se trate, deberé entrenarlo con imágenes de pingüinos. Si para la imagen de entrenamiento utilizó solo la imagen de un pingüino emperador, cuando le muestra la imagen de un pingüino de cualquier otra especie (datos de prueba), el modelo no lo reconocerá como pingüino, porque no se parece a la imagen de entrenamiento. La falta de muestras provoca un fallo en la predicción del resultado, porque el modelo es incapaz de generalizar.

Por lo tanto, el underfitting en machine learning es un problema porque el modelo no puede hacer predicciones precisas ni aprender patrones importantes en los datos.

¿Cuándo ocurre el underfitting?

El underfitting o subajuste ocurre cuando un modelo es demasiado simple, lo que habitualmente se debe a alguna o varias de estas causas:

  • Es necesario más tiempo de entrenamiento.
  • Necesita más funciones de entrada.
  • Los datos de entrada tienen un sesgo alto y pocas variaciones.
  • Necesita menos regularización.

El resultado o la consecuencia del underfitting es, como decíamos, la incapacidad del modelo para generalizar a nuevos datos, haciendo que sea inútil para emplearlo en tareas de clasificación o predicción.

¿Cómo saber si hay subajuste?

Una forma de detectar si hay subajuste 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.

¿Cómo evitar el underfitting en machine learning?

Para evitar el underfitting en el entrenamiento de modelos de IA o de algoritmos supervisados de machine learning, existen diferentes técnicas para lograr mantener una complejidad de modelo adecuada y así conseguir que este realice predicciones más precisas. A continuación describimos algunas de las técnicas que se pueden emplear para evitar el underfitting.

Disminuir la regularización

La regularización se emplea para reducir las variaciones en el modelo aplicando, por ejemplo, una penalización a los parámetros de entrada con los coeficientes más grandes, se usa para evitar el overfitting o sobreajuste del modelo, existiendo varias técnicas que ayudan a reducir el ruido y los valores atípicos dentro del modelo, para que este sea capaz de generalizar y producir datos no vistos.

Sin embargo, en modelos muy regularizados se puede perder la complejidad y la variación, volviéndolos más simples e impidiendo que identifiquen la tendencia dominante y provocando el underfitting. Por ello, una forma de evitarlo es reducir la regularización.

Aumentar la duración del entrenamiento

Un tiempo de entrenamiento del modelo demasiado corto también puede causar subajuste, por lo que una forma de compensarlo es aumentar la duración del entrenamiento y seguir introduciendo más datos de entrenamiento en el modelo, de manera que aumente la precisión del mismo.

Ahora bien, también se debe tener cuidado de no sobreentrenar al modelo y acabar produciendo el efecto contrario, es el sobreajuste. Esto implica que hay que encontrar un equilibrio entre ambos.

Selección de funciones

Los modelos de aprendizaje automático emplean funciones específicas para predecir un resultado determinado. Para evitar el underfitting, se debe introducir más funciones o funciones con mayor relevancia para tener más complejidad en el modelo y obtener mejores resultados de entrenamiento.

Por ejemplo, en el caso de una red neuronal se tendrían que añadir más neuronas ocultas.

underfitting

¿Cómo solucionar underfitting?

Para solucionar el underfitting, se debe ajustar el modelo para que este pueda capturar mejor la estructura subyacente de los datos. Para ello se pueden poner en práctica algunas de las siguientes estrategias:

  • Utilizar un modelo más complejo si el que se está usando es demasiado simple y no es capaz de capturar las relaciones en los datos. Por ejemplo, si estamos usando un modelo lineal y los datos muestran relaciones no lineales, deberíamos cambiar a un modelo no lineal, como puede ser un modelo basado en árboles de decisión.
  • En vez de cambiar de modelo, lo que puede hacerse es aumentar la complejidad del modelo existente, agregando, por ejemplo, más capas en una red neuronal.
  • Si el underfitting es consecuencia de la falta de datos para que el modelo aprenda patrones significativos, la solución está en recopilar más datos para ayudar al modelo a capturar mejor la variabilidad en los datos y mejorar su rendimiento (recordemos el ejemplo del pingüino, en vez de entrenar el modelo solo con la imagen de un pingüino emperador, lo entrenaremos con imágenes de diferentes especies de pingüinos, para que sea capaz de reconocer a este animal incluso si no «vio» antes a esa especie en concreto, pero sabrá reconocer el aspecto y rasgos generales de los pingüinos).
  • La ingeniería de características (feature engineering) permite proporcionar al modelo información más relevante y útil; se pueden probar diferentes transformaciones de características, combinar características existentes o agregar nuevas características derivadas de los datos originales.
  • Como ya dijimos más arriba, reducir la regularización del modelo también puede ayudar a solucionar el underfitting.

Subajuste vs sobreajuste

Underfitting y overfitting son dos problemas opuestos que pueden experimentar los modelos de aprendizaje automático y que pueden surgir uno como consecuencia de la compensación del otro.

Ya hemos visto que el subajuste surge cuando un modelo es demasiado simple para capturar la estructura subyacente de los datos, lo que provoca un rendimiento deficiente en los datos de entrenamiento y en los de prueba. Por su parte, el overfitting ocurre cuando el modelo se ajusta demasiado bien a los datos de entrenamiento, capturando el ruido y los valores atípicos de los datos, en vez de aprender los patrones generales que se aplican a nuevos datos. En ambos casos, el modelo no es capaz de generalizar a nuevos datos y su rendimiento predictivo es deficiente.