Evaluate model performance: Generalization, BIAS-VARIANCE, overfitting-underfitting (Parte II)

Home > All  > Evaluate model performance: Generalization, BIAS-VARIANCE, overfitting-underfitting (Parte II)

Model Capacity and Learning Curves

Retomando la línea de la nota anterior, y continuando con la descripción de técnicas que permitan evaluar y mejorar la performance de los modelos de machine learning en esta nota introduciremos los conceptos de model capacity y learning curves. El primero de éstos, es un factor que influye directamente en el overfitting y el underfitting de los modelos. El segundo, una técnica que contribuye a identificar problemas de bias y variance de un modelo, y deducir si puede ser conveniente incrementar el tamaño del conjunto de datos para mejorar la performance del modelo.

Model Capacity

La capacidad de un modelo se puede definir como su habilidad para ajustarse a una amplia variedad de funciones, esto es el número de funciones que un modelo puede seleccionar como una solución posible. Por ejemplo, un modelo de regresión lineal tiene como capacidad todos los polinomios de grado 1 de la forma y = w * x + b, es decir todas las posibles soluciones [blog].

Se dice que los algoritmos de machine learning generalmente funcionan mejor cuando tienen una capacidad apropiada en relación a la verdadera complejidad de la tarea que necesitan realizar y a la cantidad de datos de entrenamientos que se les proporciona. 

En este sentido, los modelos con baja capacidad pueden tener dificultades para adaptarse (fit) al conjunto de entrenamiento, y pueden no resolver tareas complejas.

Por otra parte los modelos con alta capacidad pueden resolver tareas complejas, pero cuando su capacidad es mayor que la necesaria para resolver la tarea actual, pueden sobreajustar (overfit), memorizando propiedades del conjunto de entrenamiento que no generalizan bien o no son aptas para realizar predicciones sobre el validation set.

La siguiente figura (sacada de [1]) muestra la relación entre el error y la capacidad del modelo, donde el error de generalización (o validation error) toma una curva con forma de U en función de la capacidad del modelo.

En el extremo izquierdo, el error de entrenamiento y generalización son altos. Esta región corresponde a un modelo underfit, con high bias. A medida que aumenta la capacidad, el error de entrenamiento disminuye, pero el gap entre ambos errores aumenta, sobretodo al pasar el punto de capacidad óptima, donde el error de generación comienza a aumentar. Esta zona representa a un modelo overfit (low bias and high variance), donde su capacidad es demasiado grande, muy por encima de la óptima.

En otras palabras, se puede observar que a medida que se incrementa la capacidad de un modelo, el variance tiende a incrementar y el bias a decrecer.

Goodfellow et al. [1] muestran un ejemplo simple para representar esta relación entre capacidad, underfitting y overfitting. 

En la figura previa (sacada de [1]) se compara un modelo lineal, uno cuadrático y uno de grado 9, que intentan ajustarse a un problema donde la verdadera función implícita es cuadrática. La función lineal (izquierda) es incapaz de capturar la curvatura relativa al verdadero problema, por lo que underfit. El predictor de grado-9 (derecha) es capaz de representar la función correctamente, pero también es capaz de representar una gran cantidad de funciones que pasan exactamente a través de los puntos de entrenamiento, ya que se tienen más parámetros que ejemplos de entrenamiento. En este punto se tienen muy pocas chances de elegir una solución que generalice bien cuando existen tantas soluciones tan diferentes. El modelo termina básicamente memorizando cada ejemplo de entrenamiento, sin ser capaz de extraer la correcta estructura de la solución, y sufriendo de overfitting. 

Finalmente, se puede apreciar como el modelo cuadrático (centro) es el que mejor mapea con la verdadera estructura del problema (como era de esperar en este caso por conocer de antemano la función implícita asociada al problema), por lo que generalizará bien sobre nuevos datos.

 

Learning Curves

Un aspecto importante a remarcar es que no siempre incrementar el tamaño del conjunto de datos ayudará a mejorar la performance de un modelo de machine learning durante su entrenamiento.

En este sentido, las curvas de aprendizaje representan una buena técnica, no sólo para interpretar el bias y variance de un modelo, y diagnosticar si está overfitting o underfitting, sino también para dilucidar si recolectar más datos de entrenamiento contribuiría a mejorar la performance del modelo.

En particular cada “learning curve” muestra como varía el error a medida que se incrementa el tamaño del training set (m).

Lo que buscan estas curvas es analizar el efecto de m (el número de ejemplo de entrenamientos) sobre el training error y validation error.

En el gráfico de las curvas es interesante incorporar también el optimal error rate o la performance deseada, para tener una mejor noción de la performance del modelo pero con respecto al avoidable bias.

En líneas generales, y como verse en la Figura anterior (sacada de [2]) las curvas de aprendizaje se comportan o responden de la siguiente manera. Cuando el conjunto de entrenamiento es chico, resulta fácil ajustar el modelo a cada ejemplo de entrenamiento, por lo que el error sobre el training set es cero o muy chico.

A medida que crece el conjunto de entrenamiento, resulta más difícil ajustar el modelo a cada ejemplo de entrenamiento, por lo que el error de entrenamiento se incrementa. Es decir que en reglas generales, el training error crece a medida que crece m. Caso contrario ocurre con el validation error, que a medida que crece m su valor decrece intentando aproximarse a la performance deseada.

A partir de la gráfica es posible estimar:

  • el bias (y más precisamente el avoidable bias) como el gap entre la curva del training error y la performance deseada, y
  • el variance, examinando el gap entre la curva de aprendizaje de validación y la curva de aprendizaje de entrenamiento.

Cuanto mayor sean estos gaps, mayor será el bias y el variance respectivamente.

Otra consideración a tener presente en los análisis de estas gráficas es que en línea generales el algoritmo exhibe un mejor rendimiento sobre el training set, por lo que la curva del validation error generalmente se encuentra estrictamente por encima de la curva del training error.

 

A continuación se muestran algunos ejemplos gráficos (tomados también de [2]) y sus respectivos análisis:

 

Ejemplo 1:

 

Este modelo tiene un high bias y low variance. El training error está muy encima del valor esperado, pero el gap entre ambos errores es bajo. Es un modelo que sufre de underfitting.

En este punto, agregar más datos de entrenamiento no ayudaría a reducir el bias, ya que como dijimos anteriormente, a medida que crezca “m” se incrementará (o a lo sumo se mantendrá prácticamente constante) el training error, alejándose de la performance deseada. Adicionalmente, la curva del validation error permanecerá por encima de la del training error, por lo que no será posible que alcance tampoco la performance deseada.

Es por ello que en este punto se observa la necesidad de aplicar algunas de las técnicas mencionadas en la nota anterior para reducir el BIAS.

 

Ejemplo 2:

 

Este modelo presenta un low bias y un high variance. El training error es bajo (inclusive muy por debajo de la performance deseada), pero el gap entre ambos errores es grande. Es un modelo que sufre de overfitting.

En este punto puede ser beneficioso incrementar el tamaño del dataset. La curva del validation error tiene la posibilidad de continuar decreciendo y converger con la curva del training error (que tiene margen aún para crecer con respecto a la performance deseada).

 

Ejemplo 3:

Este modelo tiene un low bias (avoidable bias) y un high variance. El training error es bajo (cercano a la performance deseada), pero el gap entre ambos errores es grande.

En este punto también podría ser beneficioso incorporar más datos entrenamiento. Si bien es posible que aumente el training error podría crecer, podría ocurrir que no sobrepase demasiado la performance deseada. Es decir, que es probable incrementar el avoidable bias, pero a costa de que se reduzca el validation error reduciendo el gap entre ambos errores y contribuyendo a la generalización del modelo.

En todo caso, si el bias se incrementara considerablemente se deberían aplicar adicionalmente algunas de las técnicas introducidas en la nota anterior para contrarrestarlo.

 

Ejemplo 4:

 

Este modelo tiene un high bias y un high variance. El training error está bastante por encima de la performance deseada, y el gap entre ambos errores es alto.

En esta instancia, agregar más datos de entrenamiento no parecería ser una solución potable. Es probable que más datos de entrenamientos reduzcan el validation error, y de esta manera el gap entre ambos errores (reduciendo así el variance). Pero esto a su vez incrementaría el training error, aumentando aún más el bias del modelo, que ya de por sí es alto.

 

Conclusiones

Como hemos visto no sólo en esta nota, sino también en la anterior, la relación entre bias y variance está fuertemente relacionada con los conceptos de underfitting y overfitting, como así también con el concepto de capacidad del modelo. Justamente existe un trade-off entre el bias-variance en relación a la capacidad de un modelo.  Un modelo más complejo (mayor capacidad) es propenso a overfit (low bias y high variance), mientras que modelos más simples (de menor capacidad) tienden a underfit (high bias y low variance). Es por ello que a pesar de ser una tarea compleja, descubrir y utilizar un modelo cuya capacidad sea proporcional a la complejidad del problema que se intenta resolver, conducirá a lograr un balance entre el bias-variance del modelo que permitirá mejorar su performance.

 

Por otro lado se introdujo también el concepto de curvas de aprendizaje, que resultan ser una buena herramienta para interpretar el bias y variance de un modelo, y para determinar si es conveniente, o no, incorporar nuevos datos de entrenamiento. Esto es algo realmente importante en la práctica ya que puede ser una tarea muy demandante en tiempo y costos, que puede no resultar beneficiosa para mejorar la performance del modelo.

Particularmente como hemos visto en los ejemplos de las gráficas anteriores (y retomando las técnicas mencionadas en la nota anterior para reducir el BIAS y el VARIANCE) aumentar el tamaño del dataset puede ser beneficioso para aquellos modelos que sufren de high variance, ya que ayudaría a reducir el gap entre el training error y el validation error. Sin embargo, no resultaría efectivo para modelos que sufren de high bias, ya que si no se toman otras medidas, incrementar el tamaño del dataset sólo conduciría a incrementar aún más el bias.

 

Fuentes:

 

[1] Goodfellow, Ian; Yoshua Bengio, and Aaron Courville. Deep learning. MIT press, 2016.

[2] Ng, Andrew. Machine learning yearning: Technical strategy for ai engineers in the era of deep learning. 2019.

[3]  Rodríguez, Jesús. A Different Way to Think About Overfitting and Underfitting in Machine Learning Part I: Capacity. 2017.

4 Comments
  • WWW.XMC.PL Info

    February 9, 2021at1:38 pm

    I am not really sure if greatest procedures have emerged around things like that, but I am sure that your good job is clearly identified. I was thinking if you offer any subscription to your RSS feeds as I would be very interested but i cant find any link to join here.Where is it?

  • XMC EDU

    February 19, 2021at9:46 am

    Aw, this was a really nice post. In idea I would like to put in writing like this additionally – taking time and actual effort to make a very good article but what can I say I procrastinate alot and by no means seem to get something done.

  • SEO Links

    April 9, 2021at7:08 pm

    I will surely foreward this post to all of my pals! Its very excellent and a very high-quality read!

  • Pianino

    April 15, 2021at3:37 am

    Thought I would comment and say great theme, did you make it yourself? Looks great!

Post a Comment