Modelo de difusión

En el aprendizaje automático, los modelos de difusión, también conocidos como modelos probabilísticos de difusión, son una clase de modelos de variables latentes. Son cadenas de Markov entrenadas mediante inferencia variacional. 1​ El objetivo de los modelos de difusión es aprender la estructura latente de un conjunto de datos modelando la forma en que los puntos de datos se difunden a través del espacio latente. En visión artificial, esto significa que se entrena una red neuronal para eliminar el ruido de las imágenes borrosas con ruido gaussiano aprendiendo a invertir el proceso de difusión. 2​3​

Los modelos de difusión se introdujeron en 2015 con una motivación de la termodinámica del no equilibrio.4​

Los modelos de difusión se pueden aplicar a una variedad de tareas, incluida la eliminación de ruido de imágenes, la pintura, la superresolución y la generación de imágenes. Por ejemplo, un modelo de generación de imágenes comenzaría con una imagen de ruido aleatorio y, después de haber sido entrenado invirtiendo el proceso de difusión en imágenes naturales, el modelo sería capaz de generar nuevas imágenes naturales. Anunciado el 13 de abril de 2022, el modelo de texto a imagen DALL-E 2 de OpenAI es un ejemplo reciente. Utiliza modelos de difusión tanto para el modelo a priori (que produce una imagen incrustada dada una leyenda) como para el descodificador que genera la imagen final.

Los modelos de difusión son un tipo de modelo generativo de datos que está consiguiendo resultados asombrosos en aplicaciones de síntesis de imágenes.

Lo podemos ver en GLIDE de Open AI para generación, edición o modificación de imágenes a partir de texto.

También son la base de Palette de Google para la  reconstrucción de imágenes mediante coloreado (“colorization” en inglés), relleno de pixels (“inpainting” y “uncropping” en inglés) y en restauración  (“jpeg restoration” en inglés) como podemos ver en el vídeo de su página.

Contexto

Este tipo de modelos están inspirados en el término de difusión en termodinámica en “no-equilibrio” y su clave está en  generar la distribución de datos de la imagen objetivo eliminando el ruido de una imagen inicial.

Aunque por definición suene parecido a lo que hacen las redes generativas antagónicas (GAN), el proceso es muy diferente.

Por un lado, la generación del ruido en los modelos de difusión se hace en varios pasos.

Por el otro lado, se apoya en métodos bayesianos, con lo que son, en cierto modo, similares a los autocodificadores variacionales o VAE, otro método de generación de información.

Veamos su funcionamiento con un poco más de detalle.

Proceso de entrenamiento
Este tipo de modelos se entrena a través de dos procesos:

Proceso “hacia delante”
El primer proceso es el proceso hacia delante, que también nos podemos encontrar con la nomenclatura “q”, prior, o forward noising process (en inglés).

Su objetivo es generar los datos o muestras de entrenamiento.

Para ello, a partir de una imagen inicial (x0), se añade ruido en pequeños pasos a lo largo de una cadena de Markov, es decir, cada estado  en un momento de tiempo depende únicamente del anterior (q(xt-1|xt).

Las muestras se construyen paso a paso, tomando una serie de supuestos derivados de las propiedades de matrices y del teorema central del límite:

1) El ruido añadido es una gaussiana donde las variables son independientes. O, lo que es lo mismo, cada muestra generada es independiente del anterior: q(xt-1|xt) es independiente de q(xt-2|xt-1).

Este tipo de distribución recibe el nombre de gaussiana diagonal.

2) Si se añaden suficientes pasos (en la publicación original eran 1.000), la distribución de la muestra final (XT) es una gaussiana.

Y más concretamente, es una gaussiana isotrópica con la media en “0” y con varianza la matriz identidad (N(0 | I)).

En resumen: las muestras de los datos son independientes entre sí y al final es solo ruido.

Estos supuestos son lo que facilitan la estimación del proceso reverso de reconstrucción de la imagen como veremos a continuación.

Proceso reverso
El segundo proceso es el proceso reverso o “hacia atrás”, que también podemos encontrar como “pΘ“, posterior o reverse diffusion process (en inglés).

Su fin es generar la imagen objetivo gradualmente a partir del ruido.

Para ello, se entrena una red neuronal que aprende a generar la imagen objetivo a partir de los datos de entrenamiento generados en el proceso “hacia delante”.

Es a partir de aquí donde los supuestos con los que se ha generado la muestra de entrenamiento facilitan el aprendizaje:
  1. Por un lado, se realiza paso a paso a través de otra cadena de Markov, de nuevo, mediante pasos de estado temporales independientes.
  2. Por otro lado, como el ruido final generada en el proceso 1 (XT) es una normal o gaussiana, podemos generar la imagen original (x0) a partir del proceso para la distribución inversa q(xt-1|xt) (¿recuerdas la “q” del proceso “hacia delante”?).
  3. Finalmente, como no conocemos toda la distribución inversa, la cadena de Markov en muchos pasos nos permite aproximar, de nuevo, a una gaussiana que llamamos “pΘ“.