Evaluate model performance: Generalización, BIAS-VARIANCE, overfitting-underfitting

Home > All  > Evaluate model performance: Generalización, BIAS-VARIANCE, overfitting-underfitting

El principal objetivo de los modelos de machine learning es alcanzar un buen rendimiento cuando se analizan nuevas entradas, no vistas previamente. Esto se conoce como generalización. Es decir, que es fundamental que el modelo no sólo sea capaz de funcionar correctamente para aquellos ejemplos con los que fue entrenado.

Para analizar la performance de los modelos, el training set se divide en 2 subconjuntos disjuntos. Uno de estos subconjuntos, denominado “training set”, se utiliza para entrenar los parámetros del modelos. El otro subconjunto, denominado “validation set”, se utiliza para estimar el error de generalización durante y después del entrenamiento. En general se utiliza entre 70-80% de los datos para el entrenamiento, y el restante para validación.

Existen dos principales fuentes de error en los modelos de machine learning, conocidos como Bias y Variance. Estos conceptos nos pueden ayudar a decidir si es necesario incorporar más datos, como así también qué tácticas pueden aplicarse para mejorar la performance de los modelos, haciendo un uso efectivo del tiempo. 

Podemos describir estos conceptos de una manera no tan formal como:

  1. Bias: el error rate de un algoritmo de aprendizaje sobre el training set.
  2. Variance: cuánto peor es el rendimiento de un algoritmo sobre el validation set con respecto al training set. Esto es el gap entre el training y el validation error.

 

De aquí se desprende que los dos factores que determinan qué tan bien funciona un algoritmo de machine learning están dados por su habilidad para:

  1. reducir el training error
  2. reducir el gap entre el training y el validation error.

 

Estos dos factores se corresponden a su vez con los dos principales desafíos del machine learning con los que se combate cotidianamente: underfitting y overfitting. 

El underfitting ocurre cuando el modelo no es capaz de obtener un error lo suficientemente bajo sobre el training set, es decir que no es capaz de encontrar o modelar patrones relevantes de los datos. El overfitting ocurre cuando la performance del modelo sobre el training set es buena, pero es mucho peor sobre el validation set, es decir que el gap entre el training error y el validation error es demasiado grande. En este último caso el modelo funciona bien sobre ejemplos conocidos (del training set) pero tiene problemas para generalizar (realizar predicciones sobre ejemplos no vistos, contemplados en el validation set)

 

Andrew Ng en [2] expone una serie de ejemplos considerando métricas de error sobre un clasificador que ayudan a interpretar los conceptos de underfiting, overfiting, BIAS y VARIANCE:

Ejemplo 1: Overfitting, low bias and high variance

Training error = 1%

Validation error = 11%

Este algoritmo tiene un low bias (1%) pero sufre de high variance (10%). El clasificador tiene un bajo training error, pero falla al generalizar sobre el validation set.

Ejemplo 2: Underfitting, high bias and low variance

Training error = 15%

Validation error = 16%

Aquí el bias es 15% y el variance es 1%. El clasificador se ajusta pobremente sobre el conjunto de entrenamiento con un 15% de error (underfitting), pero el error sobre el validation set es sólo un poco más alto que éste.

Ejemplo 3: High bias and high variance

Training error = 15%

Validation error = 30%

Aquí el bias es 15%, y el variance es 15%. Este clasificador presenta un bajo rendimiento sobre el conjunto de entrenamiento (high bias), y una performance aún peor sobre el validation set (high variance).

Ejemplo 4: Buen clasificador, low bias and low variance

Training error = 0,5%

Validation error = 1%

Este es  un ejemplo de un buen clasificador, con low bias y low variance.

 

Es importante señalar que no todos los problemas tienen la misma complejidad. Por ejemplo, no es lo mismo clasificar imágenes con gatos, que implementar un sistema de reconocimiento de voz, donde puede haber mucho ruido de fondo, donde el audio resulte  incluso inentendible para una persona.

Es por eso que aparece otro error a tener en cuenta para determinar la performance de un modelo, el optimal  error rate, también conocido como Bayes error rate.

En el primero de los casos anteriores (clasificación de imágenes de gatos), se podría decir que es de esperar un optimal error rate cercano al 0%, mientras que en el segundo es posible que este error sea mayor, quizás cercano al 10%.

 

Con esta consideración, la definición de bias cambia ligeramente, siendo:

bias = optimal error rate + avoidable bias

 

Aquí el avoidable bias representa la diferencia entre el training error y el optimal error rate, es decir refleja qué tanto peor es el rendimiento del algoritmo sobre el training set con respecto a un clasificador óptimo.

 

Volvamos al Ejemplo 2 presentado anteriormente, donde decíamos tener un clasificador con high bias:

  • Training error = 15%
  • Validation error = 16%

Ahora bien, si consideramos que este clasificador tiene un optimal error rate del 14%, deberíamos decir que el error atribuído en particular al avoidable bias es del 1%, y el del variance del 1% también. Se puede decir entonces que el algoritmo ha alcanzado una muy buena performance, con poco por mejorar. De hecho su poder de generalización es sólo un 2% peor que el optimal error rate.

 

En la práctica el optimal error rate es difícil de estimar. Una alternativa que se puede utilizar es calcular el rendimiento que pueden lograr personas para realizar la tarea en cuestión (siempre y cuando sea posible, siendo una tarea capaz de ser realizada por humanos), y tomar este error como una estimación del optimal error rate. Esto es algo que se menciona en [2] como human level performance.

 

Alternativas para reducir el BIAS y VARIANCE

 

A continuación se enumeran una serie de alternativas que pueden ser de utilidad para tratar aquellos algoritmos que sufren de high BIAS y/o high VARIANCE:

 

Alternativas para reducir el BIAS

 

  • Incrementar la capacidad/complejidad del modelo (ver siguiente nota, capacity model and trade-off bias and variance) (number/type of inputs, en redes neuronales número de neuronas/layers): Permite ajustar mejor los datos al training set. Puede incrementar el variance.
  • Reducir o eliminar regularización. En pocas palabras, la regularización es una técnica que previene al algoritmo ajustarse demasiado (overfit) sobre los datos de entrenamientos, por lo que reducir la regularización ayudaría al modelo a ajustarse mejor a los datos de entrenamiento, pero podría incrementar el variance.

 

Alternativas para reducir VARIANCE

  • Agregar más datos de entrenamiento
  • Agregar o aumentar regularization. Podría incrementar el bias.
  • Agregar early stopping, stop gradient descent early, basándose en el validation error
  • Feature selection to decrease number/type of input features.
  • Reducir la capacidad/complejidad del modelo (ver siguiente nota, capacity model and trade-off bias and variance): puede incrementar el bias

 

Alternativas para ambos:

  • Modificar los input features considerando observaciones del error analysis. El error analysis puede incentivar la creación de features adicionales que ayuden al algoritmo a eliminar errores particulares.
  • Modificar la arquitectura del modelo (en el caso de las redes neuronales). Puede ser que una u otra arquitectura resulte más apta para el problema.

 

Flujo de trabajo para reducir el BIAS y VARIANCE

 

La siguiente Figura pretende representar un flujo de trabajo que se puede utilizar  para evaluar y mejorar la performance de un algoritmo de machine learning, tomando como base las ideas y conceptos presentados por  Andrew Ng en sus cursos online:

Como muestra la Figura, en primer lugar se analiza la performance del algoritmo sobre el training set. En caso de presentar un high BIAS (underfitting), se aplica algunas de las técnicas para reducirlo y se vuelve a entrenar el modelo.

Caso contrario, se analiza la performance del algoritmo sobre el validation set, para ver si sufre de HIGH VARIANCE (overfitting). De ser así, se aplica alguna de las técnicas apropiadas, y se vuelve al comienzo.

Es necesario repetir este ciclo desde el comienzo, no sólo para validar la estrategia utilizada, sino también para corroborar que una mejora lograda en el VARIANCE, no haya afectado el BIAS del modelo, ya que como vimos anteriormente existe un trade-off entre el BIAS y el VARIANCE (las técnicas para tratar estos problemas suelen reducir uno a costa de incrementar el otro).

 

Conclusión

 

Como hemos visto, la relación entre bias y variance de un modelo está fuertemente relacionada con los conceptos de underfiting y overfiting.

Todos estos son factores que impactan en la performance de un modelo, y en su poder de generalización para predecir nuevas entradas.

Es por ello que resulta importante tener presente cómo detectar estos problemas y qué alternativas existen para tratarlos.

En la siguiente nota desarrollaremos los conceptos de model capacity (presentado en esta nota como una alternativa para tratar el BIAS y el VARIANCE)  y curvas de aprendizaje. 

La capacidad del modelo se define como su habilidad para ajustarse a una amplia variedad de funciones y es un factor que influye directamente en el overfitting y el underfitting del modelo. 

Las curvas de aprendizaje son una buena técnica para interpretar el bias y variance, y deducir además si se tiene un buen conjunto de datos (en tamaño) o es conveniente recolectar más datos.

 

Fuentes

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

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

3 Comments
  • Tomasz

    febrero 10, 2021at4:40 pm

    Perfect piece of work you have done, this website is really cool with great info .

  • Japonia

    febrero 27, 2021at9:43 am

    Dude, please tell me that youre going to create additional. I notice you havent written another blog for a while (Im just catching up myself). Your weblog is just too important to be missed. Youve acquired so a lot to say, this kind of knowledge about this subject it would be a shame to see this blog disappear. The internet needs you, man!

  • xmc.pl

    marzo 4, 2021at3:06 am

    How is it that just anyone can write a weblog and get as popular as this? Its not like youve said anything incredibly impressive more like youve painted a pretty picture more than an issue that you know nothing about! I dont want to sound mean, here. But do you seriously think that you can get away with adding some quite pictures and not genuinely say anything?

Post a Comment