spinner

Bayesian Deep Learning (parte III): Introducción a los modelos probabilísticos

 En anteriores posts vimos la importancia de estimar la incertidumbre en modelos de Deep Learning. En este post vamos ver de forma práctica como estimar la incertidumbre en un modelo de Deep Learning. Utilizaremos una aproximación sencilla como introducción a los modelos probabilísticos y veremos la interpretación de sus resultados en una problemática real.

 

Introducción

Planteemos un problema de predicción. Soy un repartidor en furgoneta y quiero saber cuánta gasolina voy a gastar sabiendo los kilómetros que voy a recorrer.

Imaginemos que el eje “x” son los kilómetros que recorro en coche y el eje “y” la gasolina que gasto. Kilómetros y gasolina son dos variables que están fuertemente correlacionadas de forma lineal. Ambas crecen o decrecen a la vez de forma proporcional, cuantos más kilómetros recorro, más gasolina gasto.

La gráfica representa el problema en condiciones idóneas y sería muy fácil interpolar para estimar el gasto de un viaje dado. Advertimos de que es muy raro encontrar estas condiciones fuera de los problemas que se plantean en la escuela.

Visualización gráfica de la relación entre el gasto de gasolina (y) y kilómetros recorridos (x)

Problema

Volviendo al caso concreto, cuando tomo datos de mis viajes pasados y los represento, obtengo esta nueva gráfica.

Visualización gráfica de las medidas obtenidas en cada viaje

Las mediciones varían de forma un tanto extraña. Parece que en ciertas distancias gasto siempre lo mismo y en otras tengo muchísima variabilidad. Analicemos con más detalle.

  1. Se mantiene la correlación entre kms (x) y litros de gasolina (y). La línea recta sigue aplicando para predecir.
  2. En los puntos 0, 0.25, 0.5, 0.75 y 1, las mediciones parecen precisas, se parecen mucho entre sí.
  3. En los puntos 0.5, 0.4, 0.65 y 0.9, las mediciones distan mucho entre sí. Viajes con los mismo kilómetros tienen gastos de gasolina muy diferentes.

Sucede que habíamos hecho una simplificación del problema real y aunque el modelo original (la línea recta) sigue aplicando, ahora vemos con claridad que no funcionará igual de bien en todos los puntos que queramos predecir. La diferencia entre el punto que predice la recta y la realidad puede variar enormemente. Las causas de esta incertidumbre pueden ser:

  1. Errores de medición. Puede que los instrumentos con los que mido no sean todo lo precisos que debieran.
  2. Variables omitidas o desconocidas. Podría ser que los puntos en los que estoy muy seguro de cuánto voy a gastar son sitios fijos a los que voy siempre el mismo día a la misma hora y no tengo sobresaltos, por ejemplo pueblos perdidos o gasolineras en zonas estratégicas. Mientras que los puntos con mayor incertidumbre son rutas en grandes ciudades en las que hay atascos, obras y otros eventos que no puedo controlar. Además, podrían indicar una gran variabilidad de destinos.
  3. También podría ser que mi modelo (o creencia) de cómo funcionan las cosas no sea tan completo como para capturar todos los detalles que me permiten hacer una mejor estimación.

 

Tipos de incertidumbre

Ya, ¿pero cuánta gasolina voy a gastar? Más o menos podemos estimarlo con el modelo original (la línea recta), solo que ahora tenemos el conocimiento de que no todas las predicciones son igual de buenas. ¡Menuda incertidumbre! O más bien dos.

  • Epistémica. Se produce porque nos falta información:
    • Variables desconocidas:  estado de las obras, atascos, etc.
    • Variables omitidas: si es pueblo perdido o ciudad, la hora del trayecto, etc.
    • El tipo de modelo a usar.

La buena noticia es que podemos reducirla a medida que obtenemos más conocimiento del problema.

  • Aleatórica. No se puede reducir y se da porque el mundo tiene un componente caótico que mete ruido. Las herramientas de medición (km y litros de gasolina) tienen un tope de fiabilidad, el pronóstico meteorológico falla, sucede un accidente, la gasolina viene adulterada con más etanol…

 

Error homocedástico

Lo que hemos visto hasta ahora es que tenemos un modelo simple (línea recta negra) que se ajusta a nuestras mediciones (km->gasolina). El enfoque clásico asumiría que el error de predicción es constante en todas las observaciones (en verde, el modelo se equivoca igual en el punto 0.1 que en el 0.25), un error homocedástico.

Visualización gráfica de la estimación del error homocedástico o incertidumbre en la predicción

 

Error heterocedástico

Pero ya hemos visto que eso no es así, que nuestro modelo falla más en unas predicciones que en otras. Tiene un error de predicción heterocedástico. Ahora la pregunta es ¿podemos capturar esa incertidumbre? Si así fuera, nuestro modelo sería más aprovechable puesto que nos permitiría tomar decisiones mucho más informadas. Por ejemplo: cómo de fácil es que me quede sin gasolina para un viaje en concreto. Así, si estoy muy seguro de la que voy a usar, puedo llevar la justa para reducir peso y gastar menos (¡como en la F1!).

Solución intuitiva

La forma más común de definir nuestra incertidumbre para un punto en concreto (fijados los km), sería decir que es la media del error que se da entre la predicción que hacemos y cualquiera de las mediciones que existen para esos kms fijos. Ésta es una aproximación completamente válida y bastante intuitiva. Al final tendríamos dos modelos, el que predice los litros de gasolina que vamos a gastar y el que nos dice cuanta incertidumbre o error medio tiene la predicción.

La salida del segundo modelo sería algo así (eje “x” los km y eje “y” la incertidumbre).

Visualización gráfica del error heterocedastico en la predicción – solución intuitiva

Solución probabilística

Otra forma de definir la incertidumbre de la predicción sería decir que es una función de densidad de probabilidad en vez de un número fijo. Según tengamos más conocimiento del problema podemos actualizar los parámetros de la distribución. Para simplificar, podemos decir que para este caso en concreto, vamos a representar cada predicción que hagamos como una distribución normal.

La distribución normal es también conocida como campana de Gauss y es un tipo de distribución que modela multitud de fenómenos que se dan cuando aparecen medias y que además tiene propiedades matemáticas muy interesantes. Está definida por dos parámetros, media y varianza. En nuestro caso, la media representaría el valor de la predicción y la varianza la incertidumbre asociada.

Ejemplo: imaginemos que tenemos una predicción de que vamos a gastar 5 litros de gasolina. La siguiente gráfica representa  3 predicciones de 5 litros pero con diferentes incertidumbres. Veamos las oscilaciones de los consumos.

  • En rojo, entre 4.5l y 5.5l.
  • En azul, entre 4l y 6l.
  • En verde, entre 2,7l y 7.5l.

 

Distribución normal – misma media y distintos valores de varianza

Obviamente no vamos a tomar la misma decisión si tratamos con la gráfica roja +-0.5l que con la verde +-2.5l (mayor varianza). Es aquí donde este tipo de aproximaciones probabilísticas son más informativas.

Finalmente, si le pedimos a nuestro modelo probabilístico que nos represente la media o predicción (en negro) y en verde el rango que abarca el 90% de los viajes, quedará algo así.

Visualización gráfica de la estimación de incertidumbre heterocedástica – solución probabilística

Pero… ¿qué sucede en el rango 0.0 – 0.4? Pues que el modelo no es lo suficientemente potente y no ha podido modelar esa variación del error, estamos ante una incertidumbre epistémica (que tendremos que corregir en el futuro).

Conclusión

Hemos visto cómo modelar la incertidumbre desde diferentes enfoques estadísticos. El enfoque probabilístico también se conoce como bayesiano, ya que se aprovecha del conocimiento previo para establecer suposiciones o “priors” que irá actualizando según recopile más información. En este caso hemos supuesto que las mediciones para una misma distancia se distribuyen de forma normal, con una media y una dispersión a la que hemos llamado incertidumbre. Podríamos decir que al principio todas las estimaciones tienen la misma incertidumbre (error homocedástico), pero a medida que obtenemos mediciones vemos que no es así y vamos actualizando las diferentes varianzas de nuestro modelo.

Nos interesa que las suposiciones que hacemos sobre el problema sean favorables. Por ejemplo, que los datos se distribuyen según distribuciones de las que sabemos calcular sus parámetros, que son computacionalmente tratables y sabemos calcular márgenes de confianza o probabilidad… Para de esta forma poder hacer inferencias complejas como estimar el gasto máximo en el 90% de los viajes (fijado el kilometraje) y tomar decisiones en consecuencia.

Referencias

  1. Post con la técnica original propuesta por Steve Thorn para estimación de la incertidumbre 
  2. Notebook – reimplementación realizada en Tensorflow de la técnica original

 

Fuente de la imagen: Samuel Muñoz Hidalgo (https://www.samuelmh.com/)

Las opiniones vertidas por el autor son enteramente suyas y no siempre representan la opinión de BBVA Next Technologies.

¿Quieres saber que más cosas hacemos en BBVA Next Technologies?