47 · Modelos de difusión (DDPM)
Destruye una imagen con ruido paso a paso, luego aprende a revertirlo. Una red predice el ruido añadido en cada paso y lo resta para quitar el ruido — entrenamiento estable más alta calidad de muestra, por lo que la difusión superó a las GANs.
Un modelo de difusión DESTRUYE gradualmente los datos con ruido gaussiano en T pasos (un proceso forward fijo), luego entrena una red para predecir y restar ese ruido paso a paso — RESTAURANDO una muestra limpia a partir de ruido puro. Destruir y luego restaurar.
Sin esto:
La difusión es el motor de Stable Diffusion, DALL·E, Midjourney y la generación moderna de video/audio. Sin ella no puedes razonar sobre cómo funcionan realmente los mejores modelos de imagen de hoy.
Las GANs daban muestras nítidas pero entrenamiento inestable; los VAEs daban entrenamiento estable pero muestras borrosas. Los modelos de difusión finalmente consiguen ambos — y la idea es casi sorprendentemente simple: destruir y luego restaurar.
Proceso forward (destruir). Toma un punto de datos limpio x_0 (una imagen) y añade un poquito de ruido gaussiano. Repite durante T pasos, cada paso un poco más ruidoso, hasta que x_T sea ruido puro — toda la estructura desaparecida. Este proceso forward no tiene parámetros aprendidos; es una receta de corrupción fija definida por un calendario de ruido (noise schedule). Y bellamente, no tienes que recorrerlo añadiendo ruido de a uno: hay una forma cerrada que salta directamente a cualquier paso t,
x_t = √ᾱ_t · x_0 + √(1 − ᾱ_t) · ε, ε ∼ N(0, 1)
donde ᾱ_t (alfa-barra) viene del calendario y decrece de 1 hacia 0 a medida que t crece. En t=0, ᾱ=1: recuperas x_0. En t=T, ᾱ=0: obtienes ruido puro ε. En medio, x_t es una mezcla suave de señal y ruido — justo lo que la celda de abajo grafica sobre una onda senoidal.
Proceso reverse (restaurar). La generación corre el proceso forward al revés. Empieza desde ruido puro x_T ∼ N(0,1) y baja hasta x_0, quitando un poco de ruido en cada paso. Pero para deshacer un paso debes saber qué ruido se añadió — así que entrenamos una red ε_θ(x_t, t) para predecir el ruido ε que produjo x_t (toma la entrada ruidosa Y el paso temporal t). Resta el ruido predicho y has dado un paso de denoising de vuelta hacia datos limpios.
El entrenamiento es sencillísimo. Elige un punto de datos aleatorio y un paso aleatorio t; extrae ruido ε ∼ N(0,1); forma x_t con la forma cerrada de arriba; pide a la red que prediga ε; minimiza ‖ε − ε_θ(x_t, t)‖². Eso es todo — una regresión simple de "¿qué ruido añadí?", sin nada de la inestabilidad adversaria de las GANs. La celda de abajo muestra el proceso forward numéricamente; la escena lo anima sobre una imagen 2-D.
Python (in browser)
Difusión forward que va añadiendo ruido a una señal: una onda senoidal se degrada a ruido puro a medida que la ᾱ_t del calendario coseno cae de 1 a 0.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Proceso hacia adelante: xₜ = √ᾱₜ·x₀ + √(1−ᾱₜ)·ε. En t=0 la imagen está limpia; en t=T es ruido puro.
Pseudocódigo de DDPM: el entrenamiento muestrea un paso t y ruido ε, forma x_t con la forma cerrada, y hace regresión ε̂ = ε_θ(x_t,t) vía MSE; el muestreo empieza desde ruido puro y quita ruido T→1. El denoiser es un U-Net con embedding del paso temporal.
En un modelo de difusión, ¿qué aprende a predecir la red en cada paso?
- El proceso forward añade ruido gaussiano en T pasos vía la forma cerrada x_t = √ᾱ_t·x_0 + √(1−ᾱ_t)·ε, con ᾱ_t de un calendario que decrece 1→0; no tiene parámetros aprendidos.
- El proceso reverse entrena un U-Net ε_θ(x_t,t) (con embedding del paso temporal) para predecir el ruido añadido, minimizando ‖ε − ε_θ(x_t,t)‖²; la generación empieza desde ruido puro y quita ruido paso a paso.
- La difusión es un denoising autoencoder iterado — entrenamiento estable (una regresión simple, sin adversario) Y alta calidad de muestra, por lo que superó a las GANs en la síntesis de imágenes.
La difusión es el núcleo de Stable Diffusion, DALL·E, Midjourney, Imagen y los generadores modernos de video/audio — el enfoque dominante para la síntesis de imágenes de alta calidad hoy.
Si lo quitas: No podrías explicar cómo funcionan los mejores modelos de imagen de hoy, ni por qué reemplazaron a las GANs — conocerías la palabra de moda pero no el mecanismo de destruir-luego-restaurar detrás de ella.