Generative AI
Generación de Imágenes mediante Ecuaciones Diferenciales Estocásticas y Procesos de Difusión
Un análisis exhaustivo de los modelos de difusión y su aplicación en la generación de imágenes.
Del ruido a la imagen: una lectura matemática de los modelos de difusión
Los modelos de difusión se pueden entender a partir de una idea aparentemente simple: si sabemos destruir una imagen poco a poco hasta convertirla en ruido, quizá podamos aprender el camino inverso. La parte interesante es que ese camino inverso no consiste en memorizar imágenes ni en aplicar un filtro de limpieza clásico. Consiste en aprender la geometría local de una distribución de probabilidad: hacia dónde debe moverse una muestra ruidosa para parecerse cada vez más a una imagen real.
En este artículo presento una implementación de modelos de difusión formulados mediante Ecuaciones Diferenciales Estocásticas (Stochastic Differential Equations, SDEs), siguiendo el marco de Song et al. 1. La idea no es únicamente mostrar imágenes generadas, sino explicar por qué el método funciona, qué papel juega el score y cómo aparecen de forma natural la SDE inversa, el entrenamiento por denoising score matching, los samplers y la probability flow ODE.
El código asociado está disponible en GitHub:
https://github.com/trentisiete/image_generation_difussion_project
1. El problema: aprender una distribución en un espacio enorme
Una imagen no es solo una matriz de píxeles. Desde el punto de vista probabilístico, una imagen es un punto en un espacio de dimensión muy alta. Una imagen RGB de , como las de CIFAR-10, vive en un espacio de dimensión . Sin embargo, no todos los puntos de ese espacio son imágenes naturales. La mayoría son ruido sin estructura. Las imágenes reales ocupan una región muy especial: contienen bordes, texturas, simetrías, objetos, fondos, colores compatibles y patrones que no aparecen al azar.
El objetivo de un modelo generativo es aproximar la distribución de los datos reales, que denotamos por , para poder generar nuevas muestras:
donde intenta parecerse a .
El reto es que no se conoce de forma explícita. Tenemos ejemplos, pero no una fórmula cerrada de la distribución. Los modelos de difusión atacan este problema de una manera elegante: en vez de intentar aprender directamente cómo generar una imagen limpia desde cero, construyen primero un proceso que destruye los datos de manera controlada y después aprenden a invertirlo.
2. La intuición central: destruir es fácil, reconstruir es aprender
El proceso directo empieza con una imagen real y va añadiendo ruido gradualmente hasta obtener una variable que se aproxima a una distribución simple, normalmente una Gaussiana. Conceptualmente:
Este proceso es fácil porque lo definimos nosotros. Podemos elegir cuánto ruido añadir y cómo evoluciona ese ruido con el tiempo.
El proceso inverso es el verdaderamente generativo:
Partimos de ruido puro y vamos retirando ruido hasta obtener una imagen plausible. Pero aquí aparece la pregunta clave: ¿cómo sabe el modelo hacia dónde debe moverse una muestra ruidosa?
La respuesta es el score:
Este vector apunta en la dirección en la que aumenta más rápidamente la densidad logarítmica de los datos perturbados en el tiempo . Intuitivamente, si es una imagen ruidosa, el score indica hacia qué zona del espacio debería desplazarse para ser más probable bajo la distribución de imágenes con ese nivel de ruido.
Primer hallazgo importante: el modelo no necesita aprender directamente la distribución completa . Le basta con aprender su campo de gradientes. En vez de preguntarse “¿cuál es la probabilidad exacta de esta imagen?”, aprende “¿hacia dónde debería moverme para estar en una región más probable?”.
3. El proceso directo como SDE
En tiempo continuo, el proceso de difusión directo se expresa mediante una Ecuación Diferencial Estocástica:
donde:
- representa la muestra en el instante .
- es el término de deriva (drift), que introduce una evolución determinista.
- controla la intensidad del ruido.
- es un proceso de Wiener estándar, es decir, movimiento Browniano.
La SDE combina dos efectos. El término empuja la muestra de forma determinista, mientras que introduce aleatoriedad. En el contexto de difusión, esa aleatoriedad es precisamente el mecanismo que transforma datos estructurados en ruido.
3.1. Variance Exploding SDE
La VE-SDE se define como:
Aquí no hay deriva determinista, porque . El dato conserva su centro, pero su varianza aumenta con el tiempo. Por eso se llama Variance Exploding: la varianza crece progresivamente hasta que la señal original queda dominada por el ruido.
La transición del proceso directo tiene forma gaussiana:
En esta familia, el dato se perturba añadiendo ruido cada vez más intenso alrededor de la imagen original.
3.2. Variance Preserving SDE
La VP-SDE tiene la forma:
A diferencia de la VE-SDE, aquí sí hay deriva. El término
contrae progresivamente la señal, mientras que el término estocástico añade ruido. La combinación está diseñada para preservar la varianza global cuando los datos están normalizados.
Su transición también es gaussiana:
Esta ecuación es muy reveladora: la media de la imagen se va apagando con el factor exponencial, mientras que la varianza del ruido aumenta de manera complementaria. La señal desaparece, pero no de golpe; se disuelve siguiendo una trayectoria controlada.
3.3. Sub-VP SDE
La sub-VP SDE modifica el término de difusión:
Esta variante mantiene una estructura similar a la VP-SDE, pero ajusta la cantidad de ruido introducida en cada instante. En la práctica puede producir mejores resultados en términos de verosimilitud, aunque no necesariamente coincide siempre con la mejor calidad perceptual.
4. El giro matemático: invertir una difusión
Hasta aquí solo hemos definido cómo destruir una imagen. La parte generativa aparece cuando usamos el resultado de Anderson sobre procesos de difusión en tiempo inverso 2. Si el proceso directo es:
entonces existe un proceso inverso que permite recorrer las mismas distribuciones marginales en sentido contrario:
donde representa el movimiento Browniano en tiempo inverso.
Esta ecuación contiene el núcleo de los modelos de difusión basados en score. Todo lo conocido del proceso directo aparece en y . Lo desconocido queda concentrado en un único término:
Es decir, para invertir la difusión no necesitamos aprender toda la dinámica desde cero. Necesitamos estimar el score de la distribución perturbada en cada instante.
Segundo hallazgo importante: la generación se reduce a aprender un campo vectorial. Si el modelo sabe estimar en cada nivel de ruido hacia dónde aumenta la densidad de las imágenes, puede guiar una muestra desde el ruido hasta una región donde viven imágenes realistas.
En la práctica se entrena una red neuronal para aproximar:
Al sustituir el score real por el score aprendido, la SDE inversa queda:
Esta es la ecuación que se discretiza durante el muestreo.
5. Cómo se entrena el score sin conocer la densidad
A primera vista parece que tenemos un problema circular. Queremos entrenar una red para aproximar , pero no conocemos . Si no conocemos la distribución, ¿cómo obtenemos la etiqueta de entrenamiento?
La clave está en no usar directamente el score marginal desconocido, sino el score condicional del proceso de perturbación, que sí conocemos porque el proceso directo lo hemos definido nosotros.
Para muchas SDEs utilizadas en difusión, la transición directa se puede escribir como una Gaussiana:
donde es la media en el tiempo y la varianza del ruido añadido.
Ahora calculamos el score de esta Gaussiana respecto a . La densidad logarítmica, ignorando constantes que no dependen de , es:
Derivando respecto a :
Esta ecuación es uno de los puntos más elegantes del método. Si generamos una muestra ruidosa a partir de una imagen limpia , conocemos exactamente cuál debería ser el score condicional que apunta de vuelta hacia la media de la perturbación.
Tercer hallazgo importante: el propio proceso de añadir ruido genera las etiquetas de entrenamiento. No necesitamos anotar imágenes, ni conocer , ni calcular una densidad intratable. Basta con tomar una imagen, perturbarla y enseñar a la red a predecir el vector que deshace esa perturbación.
La función de pérdida de denoising score matching en tiempo continuo queda:
Sustituyendo el score condicional gaussiano:
La red aprende, para cada nivel de ruido, cómo debe corregirse una muestra perturbada para volver hacia una zona de alta probabilidad.
6. Del score al muestreo: cómo aparece una imagen
Una vez entrenado , la generación consiste en resolver numéricamente la SDE inversa desde hasta . Se inicializa:
normalmente una Gaussiana, y se aplica un integrador en tiempo inverso.
6.1. Euler-Maruyama
Euler-Maruyama es el integrador básico para SDEs. Si discretizamos el tiempo como , un paso inverso puede interpretarse como:
con:
Este método combina una corrección determinista, guiada por el score, con un término aleatorio que mantiene la naturaleza estocástica del proceso.
6.2. Predictor-Corrector
Los samplers Predictor-Corrector añaden una segunda idea. El predictor avanza en el tiempo inverso, por ejemplo con Euler-Maruyama. El corrector, en cambio, refina la muestra en el mismo nivel de ruido mediante pasos inspirados en dinámica de Langevin.
El corrector puede verse como una forma de decir: “antes de pasar al siguiente nivel de ruido, ajustemos un poco más la muestra para que sea más probable bajo ”. Esto suele mejorar la calidad visual, porque no solo se avanza hacia menos ruido, sino que se corrige la posición dentro de cada distribución intermedia.
6.3. Probability Flow ODE
El marco SDE tiene una propiedad especialmente interesante: existe una ODE determinista cuyas trayectorias comparten las mismas distribuciones marginales que la SDE. Esta probability flow ODE se escribe como:
Sustituyendo el score real por el aprendido:
Cuarto hallazgo importante: el mismo modelo de score permite dos formas de generar. Una estocástica, mediante la SDE inversa, y otra determinista, mediante la ODE de flujo de probabilidad. La primera conserva ruido durante el muestreo; la segunda transforma una condición inicial en una trayectoria única.
La ODE también permite estimar verosimilitudes mediante la fórmula instantánea de cambio de variables 3. Si evoluciona siguiendo una ODE , entonces:
En difusión basada en SDEs, esto permite calcular métricas como la NLL o los Bits Per Dimension (BPD), algo que no todos los modelos generativos ofrecen de forma natural.
7. Generación condicional: dirigir el proceso hacia una clase
La generación incondicional produce imágenes sin especificar una categoría. Para condicionar el proceso a una clase , se puede utilizar un clasificador auxiliar dependiente del tiempo .
La derivación parte de Bayes:
Tomamos logaritmos:
Derivamos respecto a :
porque no depende de .
Esta ecuación tiene una interpretación muy clara: el score condicional es el score incondicional más una fuerza adicional que empuja la imagen hacia la clase deseada.
En la implementación se aproxima como:
donde controla la intensidad de la guía. Así, la SDE inversa condicional queda:
En términos prácticos, el modelo de score aporta conocimiento general sobre cómo son las imágenes, mientras que el clasificador introduce una preferencia semántica: “quiero que esta imagen acabe pareciéndose a un avión, un perro, un barco o una rana”.
8. Imputación: generar solo lo que falta
La misma idea también puede utilizarse para imputar regiones ocultas de una imagen. Sea una máscara binaria, donde indica píxeles conocidos y indica zonas a reconstruir.
Durante el muestreo inverso, el modelo propone una imagen completa. Sin embargo, en cada paso se reemplaza la parte conocida por una versión perturbada de la imagen original al mismo nivel de ruido. La actualización puede expresarse como:
donde:
- es la imagen original perturbada mediante el proceso directo hasta el instante .
- es la muestra generada por el modelo.
- denota producto elemento a elemento.
La interpretación es sencilla: el modelo tiene libertad para inventar las regiones desconocidas, pero debe respetar la información observada. Esta estrategia convierte un modelo generativo incondicional en una herramienta de reconstrucción condicionada por contexto.
9. Implementación: teoría traducida a componentes
La implementación se organizó para que cada concepto matemático tuviera una representación directa en código. Las SDEs se implementaron como objetos capaces de proporcionar sus coeficientes de deriva y difusión, sus distribuciones de transición y las operaciones necesarias para entrenar el score.
Los elementos principales fueron:
- Familias de SDEs: VE-SDE, VP-SDE y Sub-VP SDE.
- Schedules de ruido lineales y cosenoidales.
- Modelos de score basados en U-Net.
- Samplers: Euler-Maruyama, Predictor-Corrector, Probability Flow ODE e integradores exponenciales.
- Métricas: FID, Inception Score, NLL y BPD.
- Extensiones para generación condicional e imputación.
La arquitectura U-Net resulta especialmente adecuada porque combina información local y global. En imágenes, las estructuras pequeñas —bordes, texturas, contornos— deben convivir con relaciones de mayor escala, como forma, objeto y fondo. Las conexiones skip permiten recuperar detalle espacial mientras las capas profundas capturan contexto.
10. Resultados: qué se observa al generar imágenes
La experimentación se realizó principalmente con CIFAR-10 y MNIST. Para ilustrar el comportamiento del sistema, se muestran resultados representativos con una VP-SDE lineal y distintos métodos de muestreo.
La secuencia muestra visualmente la idea central del método: la generación no aparece de golpe. Primero se forman masas de color, después texturas, más tarde estructuras reconocibles y finalmente detalles más definidos. Este comportamiento encaja con la interpretación probabilística: al principio se resuelven distribuciones muy ruidosas y suaves; al final se trabaja en niveles de ruido bajos, donde importan los detalles finos.
En las comparativas, Predictor-Corrector tiende a producir resultados visualmente más estables, porque combina avance temporal y refinamiento local. Euler-Maruyama es más simple, pero suele requerir más pasos. La Probability Flow ODE ofrece una trayectoria determinista y resulta especialmente relevante cuando interesa estimar verosimilitudes.
11. Métricas: FID, IS y BPD no cuentan la misma historia
La evaluación cuantitativa se realizó con métricas habituales en modelos generativos: Fréchet Inception Distance (FID), Inception Score (IS) y Bits Per Dimension (BPD).
Los resultados muestran un punto importante: no todas las métricas premian lo mismo. En las ejecuciones realizadas, SubVP-SDE lineal obtuvo los mejores resultados perceptuales relativos, con menor FID y mayor IS. En cambio, las variantes con schedule cosenoidal destacaron en BPD, especialmente SubVP-SDE cosenoidal.
Esta diferencia es relevante porque BPD mide ajuste probabilístico, mientras que FID e IS se acercan más a calidad perceptual y diversidad semántica. Un modelo puede asignar buena probabilidad a los datos y, aun así, no producir las muestras visualmente más convincentes. Este desacoplamiento entre verosimilitud y calidad perceptual es una de las lecciones más importantes al evaluar modelos generativos.
Quinto hallazgo importante: “mejor” modelo depende de qué significa “mejor”. Si buscamos imágenes visualmente convincentes, FID e IS pueden ser más informativos. Si buscamos modelado probabilístico y verosimilitud, BPD aporta una lectura diferente. La evaluación debe mirar varias métricas, no una sola.
12. Generación condicional
Para la generación condicional se utilizó un clasificador dependiente del tiempo, basado en una arquitectura tipo Wide ResNet, entrenado para reconocer clases incluso cuando la imagen está perturbada por ruido.
El clasificador aporta el término , que modifica el score efectivo durante el muestreo. Así, la generación deja de ser completamente libre y se orienta hacia una clase concreta.
La generación condicional mostró que el marco SDE no solo sirve para producir imágenes aleatorias, sino también para controlar parcialmente el resultado. El grado de control depende del clasificador, de la escala de guiado y de la calidad del modelo de score. Una escala demasiado baja puede no orientar suficientemente la muestra; una escala demasiado alta puede forzar artefactos o reducir diversidad.
13. Imputación de imágenes
En la tarea de imputación se aplicaron máscaras derivadas de dígitos MNIST sobre imágenes de CIFAR-10. El modelo debía reconstruir las regiones ocultas manteniendo coherencia con el contexto visible.
La imputación es interesante porque demuestra que el modelo no solo genera desde ruido puro. También puede actuar como una distribución previa sobre imágenes naturales: cuando falta información, propone contenido compatible con lo observado. En otras palabras, el modelo no “recupera” la región exacta perdida, sino que genera una reconstrucción plausible bajo la distribución aprendida.
14. Convergencia durante el entrenamiento
También se comparó la evolución de la pérdida durante las primeras 50 épocas para diferentes configuraciones SDE.
Las curvas sugieren que SubVP-SDE lineal y VE-SDE alcanzan valores de pérdida bajos de forma más temprana. Sin embargo, esta lectura debe interpretarse con cautela: minimizar mejor la pérdida de entrenamiento no garantiza automáticamente mejores imágenes. La pérdida mide la precisión en la estimación del score bajo el esquema de perturbación elegido, mientras que la calidad generativa depende también del sampler, del schedule de ruido, de la arquitectura y de cómo se propagan los errores durante la integración inversa.
15. Limitaciones
El proyecto tiene limitaciones que conviene dejar explícitas. El entrenamiento de los modelos de score y de los clasificadores dependientes del tiempo es computacionalmente costoso, lo que restringió el número de épocas y la exhaustividad de algunas comparativas. La evaluación de métricas como FID se realizó sobre subconjuntos de datos, por lo que los valores absolutos podrían variar. A esto se suma la volatilidad inherente a las métricas de evaluación de modelos generativos: ninguna métrica por sí sola captura todos los aspectos deseables de la generación.
16. Conclusión: lo que deja claro el marco SDE
La formulación mediante SDEs ofrece una forma especialmente clara de entender los modelos de difusión. El proceso directo convierte datos en ruido mediante una dinámica conocida. El proceso inverso permite generar datos, pero requiere conocer el score de las distribuciones intermedias. Como ese score no está disponible, se aproxima con una red neuronal entrenada mediante denoising score matching.
Lo más potente del enfoque es que muchas piezas encajan de manera natural:
- La SDE directa define cómo se corrompen los datos.
- El score indica cómo volver hacia regiones de alta probabilidad.
- La SDE inversa transforma ruido en imágenes.
- La Probability Flow ODE ofrece una alternativa determinista y permite estimar verosimilitudes.
- La guía por clasificador permite generación condicional.
- La imputación aparece al combinar muestreo inverso con restricciones sobre píxeles conocidos.
Desde el punto de vista experimental, los resultados muestran que no existe una única configuración universalmente superior. SubVP-SDE lineal se comportó mejor en métricas perceptuales como FID e IS, mientras que variantes cosenoidales destacaron en BPD. Esta diferencia refuerza una idea importante: evaluar modelos generativos exige mirar simultáneamente calidad visual, diversidad, estabilidad, coste computacional y ajuste probabilístico.
En conjunto, el trabajo permitió conectar teoría, implementación y experimentación en un mismo marco: desde la derivación matemática del score hasta la generación de imágenes, la generación condicional y la imputación.
Referencias
Footnotes
-
Song, Y., Sohl-Dickstein, J., Kingma, D. P., Kumar, A., Ermon, S., & Poole, B. (2021). Score-Based Generative Modeling through Stochastic Differential Equations. In International Conference on Learning Representations (ICLR). ↩
-
Anderson, B. D. (1982). Reverse-time diffusion equation models. Stochastic Processes and their Applications, 13(3), 313-326. ↩
-
Chen, R. T., Rubanova, Y., Bettencourt, J., & Duvenaud, D. K. (2018). Neural ordinary differential equations. In Advances in neural information processing systems (NeurIPS). ↩