spinner

Bayesian Deep Learning (parte IV): Estimación de la incertidumbre mediante modelos de mixturas

La aleatoriedad de los datos puede presentar formas complejas difíciles de modelar. En este post haremos una introducción a los modelos de mixturas. Este tipo de modelos nos permite estimar la incertidumbre o aleatoriedad en la predicción en presencia de datos heterogéneos difíciles de modelar.

En el anterior post vimos cómo podíamos estimar una incertidumbre gaussiana a la salida de la red. Esto nos permite obtener un modelo capaz de capturar una complejidad sencilla en la aleatoriedad de los datos.

Sin embargo, cuando tratamos de modelar una aleatoriedad en los datos de la que no tenemos conocimiento a priori, está, en principio, puede tomar muchas formas. Todas estas formas posibles pueden hacer que la incertidumbre varíe considerablemente de una estimación a otra. Se vean afectadas por fenómenos no observables directamente (conocidas como variables latentes). O sean válidas varias soluciones o predicciones a la vez, incluso con la misma probabilidad.

Entendiendo la incertidumbre y la complejidad de los datos 

Para comprender esto mejor vamos a ilustrarlo con un ejemplo sencillo. Imaginemos que nos queremos ir a vivir a una casa más grande, de más de 100m2. Antes de tomar tal decisión, buscamos anuncios en internet para ver cuánto nos podría costar esta casa y apuntamos un par de precios.

Figura 1: Relación entre el precio de la vivienda y m2.

Para responder a nuestra pregunta, se nos ocurre entrenar un modelo de regresión simple. Buscamos un modelo que encuentre la relación entre los m2 y el precio de la vivienda. El resultado del ajuste de este modelo se muestra en la figura 1. mediante una recta de regresión que muestra una correlación lineal positiva entre los m2 y el precio de la vivienda.

Parece que es justo lo que nos temíamos. Cuanto más grande queramos la casa más tendremos que pagar. Pero si nos fijamos bien en los datos, podemos observar que hemos encontrado unas cuantas viviendas cuyo precio apenas se incrementa (recta gris. fig.1).  Sin embargo, nuestro modelo es tan simple que no es capaz de capturar esta forma en los datos. Perdiendo información relevante. Entonces la pregunta es: ¿Cómo podríamos obtener un modelo que sea capaz de modelar la complejidad de estos datos?

Estimación de la incertidumbre heterogénea

Para responder a esta pregunta, vamos a analizar la distribución de los datos. Veamos qué forma tiene y por qué nuestro modelo de regresión simple no es capaz de aprender su estructura.

Modelos de mixturas – Aprendiendo formas complejas en los datos

Primero observamos que uno de los problemas con los que nos encontramos es la heterogeneidad de los mismos. Si fijamos una x (m2) y vemos la distribución de y (precio de la vivienda) vemos que no sigue siempre la misma forma. Por ejemplo, cojamos los puntos de zona 1 y zona 2 y visualicemos la distribución de y para cada una de estos puntos.

Vemos que en la zona 1 obtenemos una distribución que se podría asemejar a una distribución normal. Por otro lado, en la zona 2, obtenemos una distribución bi-modal. Sin embargo, nuestro modelo de regresión simple hace la asunción de normalidad y homocedasticidad en los datos, obviando estos cambios de distribución.

Figura 2: Presencia de heterogeneidad en los datos. Distintas zonas con diferente distribución.

Estas asunciones puede hacer que obviemos unas zonas (modas de la distribución) que tienen una densidad o probabilidad mayor, por otras con una menor densidad de probabilidad como podría ser la media de ambas. Se obtienen así predicciones menos precisas obviando información relevante como podría ser la existencia de viviendas más baratas para el mismo valor de m2. Esto es lo que sucede en la zona 2 que sigue una distribución bi-modal.

Por tanto, una vez entendido el problema, nos preguntamos: ¿Cómo construimos un modelo que nos permita estimar este tipo de distribución en los datos?.

Si observamos la figura 3 vemos que podríamos modelar este tipo de distribución como la suma de dos de distribuciones más simples, en este caso, como la mixtura de dos distribuciones gaussianas. Para ello introducimos una variable no observable, también conocida como latente. Es decir, asumimos que esta forma (bi-modal) en los datos se da por la presencia de un subproceso no conocido o que no se puede medir como por ejemplo podrían ser, el valor sentimental que le damos a la vivienda o la presencia de distintas zonas geográficas.

Figura 3: Distribución bi-modal como la suma de dos componentes o mixturas gaussianas.

Formulación

Por tanto, la distribución vendría dada por la probabilidad conjunta entre esta variable latente z y la variables observadas x (m2 de la vivienda). Finalmente, para obtener la distribución de los datos p(x) se marginaliza sobre el conjunto de variables latentes z. Esta fórmula se puede extender al sumatorio K componentes o variables latentes multiplicado por la probabilidad de que se de esa componente o variable respecto a las otras, lo que llamamos coeficiente de mezcla (letra pi).

 

Fórmula 1: Cálculo de la distribución conjunta de x y z.

Fórmula 2: Extensión al cálculo de una distribución de mixturas.

 

Redes de densidad mixta – Modelando mixturas a la salida de red

Sin embargo, para estimar la incertidumbre en la predicción no necesitamos estimar la distribución del conjunto de datos p(x), sino simplemente la distribución de la variable respuesta y condicionada al resto de variables x conocidas p(y|x). Estamos buscando la distribución del precio de la vivienda condicionado a el valor del tamaño de la misma en metros cuadrados. Por tanto, la ecuación nos quedaría:

Fórmula 3: Cálculo de la distribución de la variable respuesta – Redes de densidad mixta.

En esta ecuación, pi y phi se corresponden con el coeficiente mezcla y familia de distribución de probabilidad respectivamente (en nuestro caso suponemos una distribución gaussiana).

Implementación

Una vez vista la formulación teórica, vamos a ver cómo construir un modelo de Deep Learning que dado un input x, estime la distribución de los datos p(y|x) o lo que es lo mismo el conjunto de parámetros que lo caracteriza así como el coeficiente de mezcla. En el caso de una distribución gaussiana los parámetros que la caracterizan serían: mu y sigma (media y varianza). Los parámetros de cada distribución junto con el coeficiente de mezcla nos ayudarán a componente la distribución de mixturas final.

Figura 4: Ilustración intuitiva del proceso de aprendizaje de las redes de densidad mixta. 

En la implementación de este modelo nos vamos a apoyar en la librería de tensorflow probability. Esta librería nos va a facilitar el cálculo de la distribución de probabilidad final o de la distribución de mixturas.

Para ello primero necesitamos definir una medida de error (o función de pérdida) que nos permita ir ajustando los parámetros de la red. En este caso, necesitamos conocer cómo de buena es la estimación de los parámetros de esta distribución (obtenida en cada iteración a la salida de la red) para explicar el conjunto de datos conocidos. Esto es lo que se conoce como el algoritmo de máxima verosimilitud o Maximum Likelihood Estimation (MLE).

Figura 5: Ejemplo de implementación de la función de pérdida en las redes de densidad mixta.

Adicionalmente necesitamos añadir al modelo un vector de salida con 3 componentes adicionales. La media y varianza de la distribución (mu y sigma) y el componente de mezcla (alpha).

Una de las limitaciones que presentan las  MDN (Mixture Density Networks) es su convergencia en tiempo de entrenamiento. Estas problemáticas han sido descritas por Bishop, C. M. (1994) y Axel Brando y se basan en los siguientes puntos principales:

  • El parámetro sigma (varianza de la distribución) no puede ser negativa. Se recomienda utilizar como función de activación una Non-Negative Exponential Linear o Non-ELU.
  • La necesidad de aplicar normalización de los datos o regularización en los pesos de la red con respecto al parámetro sigma. Esto evita problemas de underflow en entrenamiento o aparición de Nan en el cómputo de la loss.

Figura 6: Ejemplo de la definición del modelo en Keras.

Aplicación en dataset de precios de vivienda

Volviendo a nuestra problemática inicial utilizamos este modelo para estimar la distribución de los datos. En el siguiente gráfico hemos representado la media y varianza de cada una de las componentes de la distribución de mixturas. En este caso tenemos 2 componentes o distribuciones gaussianas. La varianza de cada componente o distribución representaría la incertidumbre asociada a cada predicción.

Figura 6: Resultado de la aplicación de las redes de densidad mixta sobre el dataset de viviendas.

Finalmente utilizamos el coeficiente de mezcla para componer la distribución final. Esto se puede observar en la siguiente figura en los que hemos cogido dos tipos de casas diferentes correspondientes cada una a distintas zonas de la distribución de los datos para el eje x. En concreto, estamos representando la distribución de precios para casas con 200-250 metros cuadrados (casa tipo 5) y para casas con 300-350 metros cuadrados (casa tipo 10).

Figura 7: Distribución resultante a la salida de la red para 2 tipos de casas diferentes pertenecientes a distintas zonas del dataset. 

Conclusiones

En este post hemos visto la necesidad de modelar la aleatoriedad inherente en los datos mediante modelos más complejos como los modelos de mixturas. Esto nos permite conocer mejor la distribución de los datos y por consiguiente la incertidumbre en la predicción para tomar decisiones más informadas. No modelar esta aleatoriedad nos puede llevar a conclusiones erróneas o hacer unas asunciones sobre los mismos que puede que estén muy lejos de la realidad.

Bonusprofundización

Como ejercicio para profundizar se propone aplicar los conocimientos aprendidos sobre dos conjuntos de datos distintos.

Ejercicio 1 – Estimación de incertidumbre heterogénea

Primero, se propone un dataset heterogéneo que se podría aproximar mediante un modelo GMM (Gaussian Mixture Model). Este tipo de modelo utiliza la suma de K componentes o distribuciones del tipo gaussiana para formar la distribución de mixturas resultante.

Figura 8: Visualización del conjunto de datos ejercicio 1 

Solución: Notebook con ejemplo de implementación de esta solución.

Ejercicio 2 – Estimación de incertidumbre proveniente de distintas familias de distribución. 

Finalmente se propone la aplicación de este modelo en un dataset que proviene de distintas familias de distribución.

Figura 9: Visualización del conjunto de datos ejercicio 1 

Este tipo de conjunto de datos requiere de modelos más flexibles capaces de modelar características complejas de las distribuciones (e.g. asimetrías, multimodalidades), adaptándose mejor a la distribución real de las mismas. Para ello se propone la implementación del tipo de red de densidad mixta propuesta por Axel Brando [1] conocido como UMAL.

Solución: UMAL (Uncountable Mixture Asymmetric Laplacian)

Referencias

Ejemplo de implementación 

[1] Notebook con ejemplo de implementación de MDN y aplicación en el dataset de viviendas.

Otras referencias

[1] Axel Brando, Jose A. Rodriguez-Serrano, Jordi Vitria, Alberto Rubio. «Modelling heterogeneous distributions with an Uncountable Mixture of Asymmetric Laplacians.» Advances in Neural Information Processing Systems. 2019.

[2] https://github.com/axelbrando/Mixture-Density-Networks-for-distribution-and-uncertainty-estimation

[3] https://github.com/oborchers/Medium_Repo

 

Fuente Imagen destacada: Unsplash

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?