Machine Learning Probabilístico

Existen muchos tipos de modelos generativos. A alto nivel podemos distinguir entre:

  • Modelos gráficos probabilísticos (PGM, Probabilistic Graphical Models): representan mediante un grafo cómo factoriza una distribución conjunta y qué independencias condicionales existen entre variables observadas y, cuando las hay, latentes.
  • Modelos generativos profundos (DGM, Deep Generative Models): utilizan redes neuronales para modelar una distribución de datos. Algunos transforman una variable latente zz en una muestra xx, como GAN o VAE; otros factorizan directamente p(x)p(x) o aprenden una dinámica generativa sin un vector latente comprimido.

Por supuesto, son posibles muchos híbridos. De aquí en adelante nos centraremos en los DGM.

Los principales tipos de DGM son los Variational Autoencoders (VAE), las redes generativas adversarias (GAN), los Energy-Based Models (EBM), los modelos autorregresivos (ARM), los flow-based models y los modelos de difusión.

Se puede clasificar estos modelos en función de los siguientes criterios:

  • Density: modelos que pueden estimar la función de densidad de probabilidad p(x)p(x). Por ejemplo, las redes GAN modelan la distribución de los datos de forma implícita, por lo que no pueden.
  • Sampling: modelos que pueden generar nuevas muestras a partir de la distribución modelada. Modelos como VAEs y GANs admiten un muestreo rápido; sin embargo, ARMs, modelos de diffusion o normalizing flows son lentos para el muestreo.
  • Training: ¿qué tipo de método se utiliza para estimar los parámetros? Para algunos modelos (como AR y flows), se puede realizar una estimación exacta de la maximum likelihood estimation (MLE). Para otros modelos no es tan sencillo. Por ejemplo, en el caso de los VAE se maximiza un límite inferior de la likelihood; en el caso de las GAN, que se utiliza un entrenamiento min-max, puede ser inestable y no existe una función objetivo clara que controlar.
  • Latents: ¿usa el modelo un vector latente zz para generar xx? Y, si es así, ¿tiene el mismo tamaño que xx o es una representación comprimida? Por ejemplo, los ARM no utilizan representaciones latentes; los flows y diffusion sí, pero no son representaciones comprimidas.
  • Arquitectura: ¿qué tipo de red neuronal se puede utilizar? ¿Existen restricciones? En el caso de los flows, por ejemplo, sólo se pueden utilizar redes neuronales invertibles en las que cada capa tenga un jacobiano manejable.

Aquí tienes un breve resumen de cómo funcionan los principales modelos. Si es la primera vez que ves este diagrama, no te preocupes si todavía no lo entiendes. Te recomiendo volver a él a medida que avancemos.

Panorama de IA generativa

En los próximos capítulos vamos a hacer uso de notación probabilística. Si es algo que ya controlas puedes saltar directamente al primer capítulo. Si no, en lo que queda de artículo vamos a hacer un repaso rápido de probabilidad.

Probabilidad

Existen dos interpretaciones diferentes de probabilidad:

  • Frecuentista: las probabilidades representan frecuencias de sucesos que pueden ocurrir varias veces.

    Ejemplo: probabilidad de que salga un 6 si tiro un dado 600 veces. Se espera que el número 6 aparezca aproximadamente 100 veces. Se asume que las condiciones son estables y que, si repites el experimento muchas veces, el resultado convergerá hacia una frecuencia fija (en este caso 1/6).

  • Bayesiana: la probabilidad se utiliza para cuantificar la incertidumbre/ignorancia sobre algo. La interpretación bayesiana puede utilizarse para modelar la incertidumbre sobre sucesos puntuales que no tienen frecuencias a largo plazo.

    Ejemplo: digamos que queremos calcular la probabilidad de que el casquete polar se derrita en 2030. Este suceso ocurrirá o no, pero no puede ocurrir repetidamente. No obstante, deberíamos ser capaces de cuantificar la incertidumbre sobre este suceso.

De aquí en adelante adoptaremos la interpretación bayesiana. Afortunadamente, las reglas básicas de la teoría de la probabilidad son las mismas, independientemente de la interpretación que se adopte.

Reglas básicas

Probabilidad de un evento

Definimos un evento AA como un estado que se cumple o no. Por ejemplo, AA puede ser el suceso "lloverá mañana" o "llovió ayer". La expresión Pr(A)\Pr(A) denota la probabilidad con la que se cree que el suceso AA es cierto. Exigimos que 0Pr(A)10 \leq \Pr(A) \leq 1, donde Pr(A)=0\Pr(A) = 0 significa que el suceso no ocurrirá y Pr(A)=1\Pr(A) = 1 significa que sí ocurrirá.

Variables aleatorias

Supongamos que XX representa alguna cantidad desconocida, como la cara en la que caerá un dado. Llamamos variable aleatoria a la función XX que asigna un valor a cada resultado del experimento. Denotaremos por X\mathcal{X} el conjunto de valores que puede tomar —su soporte o espacio de estados—. Un suceso es un conjunto de resultados del espacio muestral.

Por ejemplo, si XX representa la cara de un dado, X={1,2,,6}\mathcal{X} = \{1, 2, \dots, 6\}. El suceso "ver un 1" se denota X=1X = 1; "ver un número impar", X{1,3,5}X \in \{1, 3, 5\}; y "ver un número entre 1 y 3", 1X31 \leq X \leq 3.

Variables aleatorias discretas

Si el soporte X\mathcal{X} es finito o numerable, XX se denomina variable aleatoria discreta. Algunos ejemplos son la cara de un dado, el número de clientes que entran en una tienda o el número de caras en cinco lanzamientos de moneda.

La función que describe la distribución de probabilidad de variables aleatorias discretas se llama probability mass function o pmf:

p(x)=Pr(X=x).p(x) = \Pr(X = x).

donde xXx \in \mathcal{X} es un valor posible.

Variables aleatorias continuas

Una variable aleatoria es continua cuando toma valores en un conjunto continuo, normalmente un subconjunto de Rd\mathbb{R}^d. Algunos ejemplos son el tiempo, el peso o la temperatura.

En este caso no enumeramos probabilidades para cada valor individual: en una distribución continua, la probabilidad de observar exactamente un punto suele ser cero. Calculamos probabilidades sobre regiones o intervalos.

En este caso, a diferencia de la PMF, que nos dice la probabilidad de que ocurra un valor exacto, se utiliza la cumulative distribution function o cdf, que nos dice la probabilidad de que ocurra ese valor o cualquier otro menor a él:

P(x)=Pr(Xx).P(x) = \Pr(X \leq x).

Nótese que se usa una PP mayúscula para representar la cdf. Usando esto, se puede calcular la probabilidad de estar en cualquier intervalo:

Pr(a<Xb)=P(b)P(a).\Pr(a < X \leq b) = P(b) - P(a).

La función que describe la distribución de probabilidad de variables aleatorias continuas se llama probability density function o pdf, que coincide con la derivada de la cdf:

p(x)=ddxP(x).p(x) = \frac{d}{dx} P(x).
  • La PMF asigna probabilidad a valores discretos concretos.
  • La PDF asigna densidad, no probabilidad, a cada punto; la probabilidad de un intervalo es el área obtenida al integrarla.

Dada una pdf, podemos calcular la probabilidad de que una variable continua se encuentre en un intervalo finito como:

Pr(a<Xb)=abp(x)dx=P(b)P(a).\Pr(a < X \leq b) = \int_{a}^{b} p(x)\, dx = P(b) - P(a).

Ejemplo: Tiempo de espera en una parada de autobús

Imagina que el tiempo de espera (en minutos) para el autobús sigue una distribución uniforme entre 0 y 10 minutos. Su PDF es constante: p(x)=1/10p(x)=1/10 para 0x100 \leq x \leq 10, y 0 en cualquier otro caso. Si queremos saber la probabilidad de que el autobús llegue entre el minuto 2 y el minuto 5, Pr(2<X5)\Pr(2 < X \leq 5), utilizamos la integral de la PDF:

Pr(2<X5)=25110dx\Pr(2 < X \leq 5) = \int_{2}^{5} \frac{1}{10} \, dx

Calculamos la integral:

[110x]25=510210=310=0.3\left[ \frac{1}{10}x \right]_{2}^{5} = \frac{5}{10} - \frac{2}{10} = \frac{3}{10} = 0.3

Por lo tanto, hay una probabilidad del 30% de que el autobús llegue en ese intervalo de tiempo.

Estadísticos

  • Media (μ\mu): promedio aritmético, representa el valor que obtendrías si pudieras repartir el total de los datos equitativamente entre todos los elementos.
  • Varianza (σ2\sigma^2): medida de la dispersión de una distribución, mide qué tanto se alejan, en promedio, los valores de la media. Como eleva las diferencias al cuadrado, sus unidades también quedan al cuadrado (por ejemplo, si mides en metros, la varianza estará en metros cuadrados).
  • Desviación estándar (σ\sigma): es la raíz de la varianza. "Corrige" el problema de la varianza. Da una idea de cuánto se alejan los datos del promedio en las unidades originales.

Inferencia Bayesiana

El término "inferencia" hace referencia al acto de generalizar a partir de datos de muestra, normalmente con cierto grado de confianza. El término "bayesiano" se utiliza para referirse a los métodos de inferencia que representan esa confianza utilizando la teoría de la probabilidad y el teorema de Bayes.

El teorema de Bayes es una fórmula para calcular la distribución de probabilidad sobre posibles valores de una cantidad desconocida HH dados unos datos observados YY:

p(HY)=p(YH)p(H)p(Y).p(H \mid Y) = \frac{p(Y \mid H)\, p(H)}{p(Y)}.
  • p(H)p(H) representa lo que se conoce sobre los posibles valores de HH antes de ver ningún dato; esto es la distribución a priori.
  • p(YH)p(Y \mid H) representa la distribución sobre los posibles resultados YY que esperamos ver dado HH; esto es la distribución de observación.
  • Si la evaluamos en un punto correspondiente a las observaciones reales, obtenemos la función p(YH)p(Y\mid H), que se denomina likelihood.

Multiplicando la distribución a priori p(H)p(H) por la función de likelihood p(YH)p(Y \mid H) para cada hh se obtiene la unnormalized joint distribution p(H,Y)p(H, Y). Se puede convertir en una distribución normalizada dividiendo por p(Y)p(Y), lo que se conoce como marginal likelihood (veremos esto más adelante).

Al normalizar la joint distribution, se obtiene la posterior distribution, p(HY)p(H \mid Y), que representa lo que se sabe de la distribución después de ver evidencia. En otras palabras:

posteriorprior×likelihood.\text{posterior} \propto \text{prior} \times \text{likelihood}.

Ejemplo: test de una enfermedad rara

Imagina que quieres saber si un paciente tiene una enfermedad rara (Hipótesis HH) que afecta solo al 1% de la población.

  1. Distribución a priori, p(H)p(H): antes de hacer la prueba, la probabilidad de que el paciente esté enfermo es 0,01.
  2. Verosimilitud, p(YH)p(Y \mid H): la sensibilidad es p(Y=posH=enf)=0,99p(Y=\text{pos}\mid H=\text{enf})=0{,}99 y la tasa de falsos positivos es p(Y=posH=sano)=0,05p(Y=\text{pos}\mid H=\text{sano})=0{,}05.
  3. Distribución posterior, p(HY)p(H \mid Y): una vez observado un positivo, queremos calcular la probabilidad de que el paciente esté realmente enfermo.

Podrías confundir la sensibilidad del 99% con la probabilidad de estar enfermo después de un positivo. Sin embargo, aplicando el teorema de Bayes tenemos:

p(H=enfY=pos)=p(Y=posH=enf)p(H=enf)p(Y=pos)p(H = \text{enf} \mid Y = \text{pos}) = \frac{p(Y = \text{pos} \mid H = \text{enf}) \cdot p(H = \text{enf})}{p(Y = \text{pos})}

Donde:

  • Prior p(H=enf)=0.01p(H = \text{enf}) = 0.01 (solo el 1% de la población está enferma).
  • Likelihood p(Y=posH=enf)=0.99p(Y = \text{pos} \mid H = \text{enf}) = 0.99 (la prueba detecta al 99% de los enfermos).
  • Falsos positivos p(Y=posH=sano)=0.05p(Y = \text{pos} \mid H = \text{sano}) = 0.05 (la prueba se equivoca con el 5% de los sanos).

Paso 1: Calcular la probabilidad total de un resultado positivo p(Y=pos)p(Y = \text{pos})

Un positivo puede ser un verdadero positivo (enfermo que da positivo) o un falso positivo (sano que da positivo):

p(Y=pos)=(Sensibilidad×Prevalencia)+(Tasa de falsos positivos×Poblacioˊn sana)p(Y = \text{pos}) = (\text{Sensibilidad} \times \text{Prevalencia}) + (\text{Tasa de falsos positivos} \times \text{Población sana}) p(Y=pos)=(0.99×0.01)+(0.05×0.99)p(Y = \text{pos}) = (0.99 \times 0.01) + (0.05 \times 0.99) p(Y=pos)=0.0099+0.0495=0.0594p(Y = \text{pos}) = 0.0099 + 0.0495 = 0.0594

Paso 2: Calcular la Posterior

Ahora sustituimos en la fórmula de Bayes:

p(H=enfY=pos)=0.990.010.05940.166p(H = \text{enf} \mid Y = \text{pos}) = \frac{0.99 \cdot 0.01}{0.0594} \approx 0.166

Conclusión: Aunque la prueba tiene una sensibilidad del 99%, la probabilidad de que el paciente esté enfermo tras dar positivo es de aproximadamente un 16,7%. La baja prevalencia (el prior) "tira" del resultado hacia abajo con mucha fuerza. La cantidad de personas sanas en la población es tan grande que el 5% de falsos positivos supera en número a los verdaderos positivos. Este ejemplo demuestra que, en inferencia bayesiana, los datos observados no son los únicos que determinan la realidad; nuestra creencia inicial sobre la rareza del evento es fundamental.

Distribuciones de probabilidad

Existe una gran variedad de distribuciones de probabilidad que se utilizan para distintos tipos de modelos. En este enlace puedes observar algunas de las más utilizadas de forma interactiva.

Un modelo generativo aprende una distribución sobre los datos, p(x)p(x) para xXx \in \mathcal{X}, o una distribución conjunta p(x,y)p(x,y) cuando intervienen varias variables. En los capítulos siguientes veremos distintas formas de representarla, aproximarla y muestrearla.