Underfitting vs Overfitting
west

Underfitting vs Overfitting

Qué es, causas, cómo detectarlo y solucionarlo


Nodd3r
6 de Septiembre de 2022 . 10 min
 ...


Si has llegado hasta aquí, asumimos que ya tienes ciertas nociones sobre lo que conocemos como machine learning y deep learning.

De lo contrario, te recomendamos que leas nuestros posts relacionados Deep learning y redes neuronales y ¿Qué es el machine learning y qué aplicaciones tiene?

En resumidas cuentas, machine learning es una rama dentro de la inteligencia artificial la cual pretende, mediante una serie de algoritmos, brindar a nuestra computadora de la capacidad de identificar patrones en un conjunto masivo de datos y realizar predicciones.

Y dentro del machine learning tenemos a su vez, como si de una matrioshka rusa se tratase, el deep learning.ç

Entendamos el deep learning como un tipo de machine learning basado en redes neuronales que entrena a nuestro modelo para que realice tareas como lo haría un ser humano. Pero nosotros no queremos que nuestro modelo se limite a responder a través de una serie de ecuaciones predefinidas, ¿verdad? Nosotros queremos que nuestro modelo ¡PIENSE!, queremos que sea capaz de aprender por su cuenta y esto se logra mediante el uso de capas de procesamiento. 

Pero, ¿qué ocurre cuando sobreentrenamos nuestro modelo? ¿Y si generalizamos demasiado el conocimiento que pretendemos que el modelo adquiera? 


¿QUÉ ES UNDERFITTING?

La traducción al castellano sería sub-ajuste y el problema no vendría a ser otro que el anteriormente mencionado: Generalizar en exceso los inputs que introducimos en el modelo siendo poco precisos con los conocimientos que pretendemos que adquiera. 

Para entenderlo fácil, supongamos que nosotros jamás hemos visto ninguna fruta. Un día, de repente, llega un amable señor y nos ofrece una naranja. Curiosos e ignorantes de nosotros, preguntamos: ¿Esto qué es? a lo que el amable señor responde: Esto es una fruta. Al día siguiente nos encontramos al mismo amable señor y nos ofrece esta vez un plátano: ¿Te apetece fruta? A lo que nosotros le respondemos confundidos: Perdona, eso no es una fruta, la fruta es naranja y redonda. 

Tanto el plátano como la naranja son frutas, pero el plátano no se parece en nada a las características con que el amable señor nos describió la fruta el día anterior.

Sin embargo, supongamos ahora que ese hombre era el dueño de una frutería y al ofrecernos una pieza de fruta nos da a elegir entre: naranjas, melocotones, plátanos, kiwis, pomelos... Probablemente, la próxima vez que viéramos un tipo de fruta que desconocíamos hasta la fecha, seríamos capaces de reconocer esa nueva fruta como "fruta" al identificar características en común con el resto de frutas que ya conocíamos.

Esto es así porque como seres humanos somos capaces de conceptualizar y es lo que pretendemos que sea capaz de hacer un modelo cuando lo entrenamos. No obstante, si somos bastante genéricos o escuetos a la hora de introducir un conjunto de datos en nuestro modelo, el algoritmo no será capaz de ofrecernos un resultado bueno debido a la falta de recursos por parte del sistema para consolidar su conocimiento, abstraerse o generalizar.

A este problema se le conoce como sub-ajuste o underfitting. 



Causas del underfitting:

El problema de sub-ajuste o underfitting durante el entrenamiento del modelo puede venir determinado por una o más de las siguientes causas:

  • No hay suficientes parámetros para modelar adecuadamente los datos.
  • El algoritmo de aprendizaje automático no ha tenido suficiente tiempo para entrenar.
  • Baja entropía en el conjunto de datos de entrenamiento del modelo.


¿Cómo detectar underfitting?

Hemos mencionado anteriormente que cuando un modelo es demasiado simple con respecto a los datos que pretende modelar nos referimos a un problema de underfitting. Si nuestro modelo funciona mejor con el conjunto de datos de prueba que con el conjunto de datos de entrenamiento probablemente estemos incurriendo en underfitting.


¿Cómo solucionar el subajuste o underfitting?

Una vez sabemos que nuestro modelo sufre un sub-ajuste una de las soluciones más obvias sería ampliar el conjunto de datos de entrenamiento. De esta manera se estaría forzando al modelo a trabajar con patrones más complejos y ayudar así a reducir el underfitting. Sin embargo no siempre podemos ampliar el conjunto de datos. A veces el conjunto de datos es limitado y acceder a más de ellos no es posible. ¿Qué haríamos en estos casos? 

Podríamos generar datos sintéticos, técnica conocida como Data Augmentation. Una aplicación recurrente mediante este enfoque es la manipulación de imágenes, a partir de las imágenes ya existentes en nuestro dataset podemos girarlas, recortarlas, hacerles zoom... para la obtención de nuevas imágenes.


¿QUÉ ES OVERFITTING?

Supongamos ahora el caso contrario. Imaginemos que entrenamos al modelo con frutas como puedan ser: naranjas, mandarinas, caquis, melocotones, albaricoques... y tras el entrenamiento le mostramos una sandía. 

Nuestro modelo no reconocerá la sandía como fruta porque una característica inherente a los ejemplos de fruta con los que entrenó es el color "naranja". La sandía no cumple con las características que el modelo aprendió durante el entrenamiento (la condición de ser estrictamente naranja).

Así es que, cuando nos refiramos al sobre-ajuste u overfitting, de lo que estamos hablando realmente es de una deficiencia que dificulta la precisión y rendimiento del modelo.

Como concepto, esta es la esencia del overfitting. No obstante, hay una serie de conceptos estadísticos con los que te recomiendo familiarizarte si estas pensando entrenar un modelo. Para entender el sesgo existente entre los valores que introducimos y los que nos devuelve el modelo es necesario entender los siguientes términos:

  • Sweet spot: el punto de equilibrio que debemos encontrar en el aprendizaje del modelo en el que nos aseguremos de no incurrir en underfitting u overfitting.
  • BIAS:  El BIAS o sesgo puede interpretarse como un modelo que no ha tenido en cuenta toda la información disponible en el dataset, de manera que niveles altos de BIAS indicaría un sub-ajuste o underfitting dentro del modelo. Esto ocurre cuando el modelo es demasiado simple para el problema que se quiere solucionar.
  • Varianza: Indica la sensibilidad del modelo a conjuntos específicos en los datos de entrenamiento. Un algoritmo de alta varianza también aprenderá del ruido en el conjunto de entrenamiento que produce el sobreajuste.


Causas del overfitting:

A continuación dejamos algunos factores frecuentes que pueden provocar el sobre-ajuste del modelo

  • Modelo demasiado potente: Cuantas más entradas se le añaden  al algoritmo (por entradas nos referimos a hipótesis), el modelo se vuelve más preciso pero por contra menos consistente. Dicho de otra manera tenemos que encontrar el equilibrio entre varianza y sesgo para que exista un equilibrio también entre la precisión y la coherencia de lo que se esta midiendo. De lo contrario, podemos encontrarnos con la situación de que los modelos pueden ser radicalmente distintos si cambiamos el conjunto de datos. Ejemplo: Un modelo que permita polinomios de hasta grado 100 será más potente que uno que permita solo polinomios de hasta grado 10, no obstante, el segundo será mucho menos propenso al sobre-ajuste.
  • Aprendizaje del ruido en el conjunto de entrenamiento: ocurre cuando el conjunto de entrenamiento es demasiado pequeño, el conjunto de datos tiene poca representatividad o hay demasiados ruidos (entiéndase como ruido estadístico esa variabilidad inexplicable dentro de una muestra de datos). Un algoritmo de aprendizaje automático debería ser capaz de discernir los ruidos de las variables representativas pero cuando se da alguna de las situaciones mencionadas los ruidos pueden ser tomados como valores representativos dentro de la curva de aprendizaje del algoritmo y actuar como base de predicciones.


¿Cómo detectar el overfitting?

Dentro del deep learning o aprendizaje profundo la incapacidad del modelo para generalizar conjuntos de datos es uno de los problemas más frecuentes con los que nos encontraremos. Dicha incapacidad de generalizar conjuntos de datos es una característica intrínseca de lo que denominamos sobr-ajuste del modelo y resulta prácticamente imposible detectarlo sin antes probar los datos. 

Sin embargo, si hay algo que podamos hacer para concluir la presencia de overfitting.

Dividimos el conjunto principal de datos en dos subconjuntos: Conjunto de datos de entrenamiento (80% aprox. del conjunto principal) y conjunto de datos de prueba (20% aprox del conjunto principal). 

El conjunto de entrenamiento contiene la mayoría de datos disponible y es con el que entrenamos el modelo mientras que el conjunto de prueba tiene una representación mucho menor y se utiliza para probar la precisión del modelo con datos con los que no actuó anteriormente. 

Mediante la segmentación de los datos en subconjuntos podemos medir la precisión del modelo en cada conjunto para determinar la existencia de sobre-ajuste. Si el modelo funciona claramente mejor con el conjunto de entrenamiento que en el conjunto de prueba, probablemente nos encontremos ante un caso de overfitting.


¿Cómo solucionar el overfitting o sobreajuste del modelo?

Veamos algunas de las técnicas más frecuentes para lidiar con el sobre-ajuste de un modelo.

  • Simplificación del modelo: La manera de lograrlo dependera del método de machine learning utilizado. En caso de trabajar con redes neuronales habríamos de disminuir el numero de capas o neuronas. Podemos lograr este objetivo mediante el uso de técnicas como el Dropout que consistiría en la eliminación de neuronas de la red neuronal basándonos en la probabilidad dada por la distribución de Bernoulli; o bien mediante Early Stopping. La técnica Early Stopping o Parada Temprana consiste en evaluar el modelo durante el entrenamiento tanto en el conjunto de entrenamiento como en el conjunto de prueba. Al principio lo lógico y más probable es que el modelo mejore rendimientos en ambos conjuntos sin embargo, llegará un punto en el que el modelo mejore en el conjunto de entrenamiento pero comience a empeorar en el conjunto de prueba. Utilizando este método de regularización de modelos lineales, este es el punto que denominamos de Parada Temprana para evitar el sobre-ajuste. 
  • Data Augmentation: Generación de nuevos datos a partir de los ya existentes. Aplicable normalmente a imágenes como vimos anteriormente.
  • Eliminación del ruido del conjunto de entrenamiento: Cuando recibimos los datos antes de entrenar al modelo debemos realizar lo que se conoce como Data Cleaning y no es otra cosa que depurar el modelo limpiándolo de impurezas eliminando outliers, estandarizando los datos y eliminando toda información irrelevante que pueda añadir ruido a nuestro modelo. Una mala limpieza de datos del modelo antes de ponernos a trabajar con él puede generar overfitting.
  •  Conseguir más datos: No siempre es fácil o posible, pero siempre que se pueda aumentar el numero de observaciones puede ayudar a solucionar el problema y si no es el caso, habrá que recurrir a alguna de las otras metodologías mencionadas.
  • Transfer Learning: Puede darse el caso en el que no sea posible conseguir más datos ni generarlos y que el sobre-ajuste venga determinado por la escasez de datos a nuestra disposición. En estos casos se puede coger un modelo ya entrenado y funcional, que tenga una función similar al que estamos intentando entrenar y reentrenarlo con el conjunto de datos de entrenamiento actual.


Y hasta aquí todos los conceptos y diferencias clave entre el overfitting y underfitting.

X

¿Quieres recibir el eBook de Conceptos básicos de Data Science?



¡Descargar aquí el eBook en PDF GRATIS!


También te puede interesar





...
Descubre el poder de Apache Spark

Practicar con Apache Spark y realizar proyectos por tu cuenta es fundamental si quieres convertirte en científico de datos.

...
Aprendizaje por refuerzo: La revolución de la Inteligencia Artificial.

Esta rama de la inteligencia artificial (IA) se ha convertido en una herramienta fundamental para abordar problemas complejos y tomar decisiones óptimas en una variedad de campos, desde la robótica hasta la toma de decisiones empresariales.

...
Tendencias emergentes en la ciencia de datos y la inteligencia artificial.

En este artículo exploraremos las tendencias emergentes en la ciencia de datos y cómo están dando forma al futuro de la inteligencia artificial.

...
¿Por qué es importante aprender estadística si quieres ser científico de datos?

Si aspiras a convertirte en un data scientist, no puedes dejar a un lado la importancia de la estadística en tu camino. En este artículo exploraremos por qué la estadística es una habilidad crítica que todo data scientist debe dominar.

...
¿Cómo formarte como científico de datos desde cero?

Si no sabes qué necesitas para formarte como profesional en la ciencia de datos, aquí te dejamos una infografía para que comprendas mejor visualmente todo el proceso de formación y las etapas por las que pasarás hasta consolidarte como profesional cualificado.

...
Impresionantes proyectos de ciencia de datos para destacar en tu portfolio

Si acabas de formarte como científico de datos (data scientistis) y estás buscando destacar dentro de este mundo laboral y construir un portafolio impresionante, este es tu sitio.

...
Los algoritmos más usados en machine learning

Dentro del aprendizaje automático o machine learning, destacan algunos algoritmos sobre otros a la hora de resolver problemas. Estos algoritmos se repiten muy a menudo.

...
10 habilidades necesarias para científicos de datos en 2023

Mantenerse actualizado constantemente resulta de vital importancia a la hora de destacar en cualquier carrera profesional y, como era de esperar, en ciencia de datos también se aplica.

...
La importancia de supervisar los modelos de machine learning

Teniendo en cuenta que el aprendizaje automático o machine learning, se ha convertido en una poderosa herramienta para muchas empresas y organizaciones, ¿sabes por qué no debes descuidar la supervisión de tus modelos?

...
Cómo limpiar datos para sacar su máximo partido

Aprender a limpiar los datos y sacarle su máximo partido cada vez cobra más peso, si no sabes qué pasos seguir para realizarlo correctamente, sigue leyendo este artículo.

...
Google reacciona a ChatGPT de OpenAI y saca Bard, su IA conversacional.

El propio CEO de Google y Alphabet, Sundar Pichai lanzó un comunicado en el Blog Oficial de Google sobre esto mismo. Para saber más sobre Bard, quédate leyendo este artículo.

...
Chat GPT y por qué está revolucionando el panorama actual

Seguramente hayas escuchado hablar sobre ChatGPT y cómo actualmente está revolucionando el panorama tal cual como lo conocemos, pero ¿a qué se debe esto?

...
Aprende a hacer un buen portfolio de proyectos y consigue empleo con estos tips.

¿Aún no has comenzado a crear tu propio portafolio de proyectos de data science e IA? Aquí encontrarás los pasos que necesitas seguir para tener un buen portafolio de proyectos y el por qué deberías de comenzar en cuanto antes.

...
¿Análisis de datos en tiempo real? Descubre su importancia y ventajas.

¿Has oído hablar del análisis de datos en tiempo real? En este post descubrirás qué es y por qué tiene tanta importancia en la actualidad.

...
¿Merece la pena estudiar Data Science?

Teniendo en cuenta que la ciencia de datos está considerada como una de las ciencias más destacadas de la actualidad, ¿merece la pena estudiar un máster en ciencia de datos? Quédate leyendo este post si quieres saber por qué.

...
TOP 12 IDEAS PROYECTOS DE PYTHON PARA PRINCIPIANTES

¿Quieres empezar a realizar proyectos de Python pero no tienes ideas o simplemente te parecen muy difíciles los proyectos que encuentras?

...
FORMAS FÁCILES DE OBTENER DATOS PARA ENTRENAR MODELOS DE IA Y MACHINE LEARNING

La calidad y cantidad de los datos influye notablemente en los resultados que se obtienen, ¿quieres saber de dónde puedes obtener datos para tus modelos?

...
¿Cuánto gana un Data Scientist?

El salario: Uno de los motivos por los que deberías de aprender Data Science, proyectos de Machine Learning y Deep Learning para convertirte en Data Scientist.

...
Qué son y diferencias entre bases de datos SQL y bases de datos NoSQL

Aquí encontrarás unas breves pinceladas sobre qué son verdaderamente las bases de datos y qué tipos hay, además de las diferencias entre las bases de datos SQL y NoSQL.

...
Keras vs TensorFlow vs PyTorch: Diferencias clave entre frameworks de Deep Learning

En las últimas décadas, el Deep Learning está ganando popularidad.

...
Ventajas de aprender a programar en Python

A día de hoy, Python es el lenguaje de programación más usado. Si aún estás dudando de sus múltiples ventajas, en este post encontrarás algunas de las razones por las que deberías aprender a programar en Python

...
¿Cómo elegir el mejor modelo de machine learning?

Si estás pensando en crear un proyecto de machine learning, tienes que tener en cuenta que no siempre tener un modelo con mejor rendimiento será tu mejor solución.

...
Test de Turing

Qué es, cómo funciona y limitaciones del Test de Turing

...
Tipos de redes neuronales

El futuro de la Inteligencia Artificial ha llegado.

...
Underfitting vs Overfitting

Qué es, causas, cómo detectarlo y solucionarlo

...
Data Science: qué es, qué se hace, qué se necesita y aplicaciones

Descubre qué es la ciencia de datos, para qué sirve y qué salidas tiene

...
Chatbot: ¿Qué es, para qué sirve y qué tipos existen?

Un chatbot es mucho más que un servicio de mensajería automática, pero... ¿sabes todo lo necesario sobre ellos?

...
¿Cómo funciona el algoritmo y el sistema de recomendación de Spotify?

En este artículo podrás encontrar desglosado el funcionamiento del sistema de recomendación de Spotify basado en el uso del deep learning.

...
Los errores más comunes en Python que debes evitar si eres principiante

Sabiendo sobre el gran auge que ha tenido Python en estos últimos años... Es interesante que conozcas los siguientes errores más comunes para que puedas evitarlos.

...
Guía de cómo hacer un proyecto de ciencia de datos para que destaque de forma eficiente.

Así es como debes de hacer un proyecto de ciencia de datos o inteligencia artificial de forma eficiente.

...
¿Qué es Git?

¿Conoces Git? ¿Sabes lo que es un sistema de control de versiones? Si te gusta la programación, desarrollar tus propios proyectos, el desarrollo de software, etc. seguro que has leído algo sobre Git. Hoy te contamos todos los detalles acerca de esta herramienta.

...
¿Por qué se utiliza Python en la ciencia de datos?

Python se ha convertido en uno de los lenguajes de programación más populares e incluso el preferido para los científicos y analistas de datos, por eso en este artículo explicaremos a qué se debe su popularidad dentro de esta disciplina.

...
Netflix utiliza la inteligencia artificial para personalizar sus recomendaciones

A través de su algoritmo de recomendación Netflix predice qué contenidos te van a gustar. Si quieres saber cómo funciona no te pierdas este blog.

...
Los 10 mejores proyectos de Machine Learning si eres Principiante

Probablemente una de las cosas más difíciles a la hora de practicar lo aprendido de machine learning sea encontrar proyectos para principiantes.

...
¿Cuál es la diferencia entre la Inteligencia Artificial y el Machine Learning?

¿Son la Inteligencia Artificial y el Machine Learning lo mismo? Si son dos conceptos distintos, ¿de qué forma están relacionados? Estas son algunas de las preguntas que mucha gente se hace, en el post de hoy veremos las diferencias entre ambos y la relación que tienen.

...
¿Qué es Inteligencia Artificial?

Últimamente oímos hablar de inteligencia artificial con mucha frecuencia pero, ¿sabes realmente qué es y qué usos tiene? Te lo contamos más en detalle en este artículo.

...
¿Cómo aplicar Data Science en áreas como Marketing, Biología, Justicia y Arqueología?

El uso de la ciencia de datos está muy extendido, en el blog de hoy vamos a ver cómo podemos usarla en distintas áreas.

...
Deep Learning y Redes Neuronales Artificiales

En este post encontrarás que es el deep learning y todo lo que necesitas para poder comprender su funcionamiento y sus utilidades.

...
Historia del Data Science y la inteligencia artificial

Tanto la ciencia de datos como la inteligencia artificial se han encontrado a lo largo de la historia en una constante evolución, de ahí que estas tecnologías sigan desempeñando un papel cada vez más importante en la sociedad y economía.

...
¿Qué es el Machine Learning y qué aplicaciones tiene?

En este artículo explicaremos qué es el machine learning, cómo funciona y algunas de las aplicaciones más comunes que tiene en diferentes áreas.

...
¿Cómo el data science y el big data puede ayudar a tu negocio?

En este post vamos a hablar sobre cómo la ciencia de datos puede ayudar a mejorar un negocio.

...
¿Qué se necesita saber para ser Data Scientist?

En este post te hacemos un resumen sobre los conocimientos necesarios para trabajar como científico de datos.

...
¿Por qué estudiar Data Science?

En este post, te damos las claves de la importancia de estudiar ciencia de datos.

...
¿Cómo proteger nuestros datos?

En este post, te dejamos alguna información y trucos que puedes hacer para proteger mejor tus datos

...
¿Qué es Data Science?

¿Alguna vez te has preguntado qué es exactamente el data science o la ciencia de datos? ¿Cómo se utiliza y para qué sirve? ¡Estás en el lugar adecuado!

...
¡Bienvenidos Nodd3rs!

¡Bienvenidos a nuestro blog!