Explorador de Modelos de Difusión
Observa paso a paso cómo los modelos de difusión destruyen una imagen añadiendo ruido y aprenden a reconstruirla — desde el proceso forward hasta el sampling con guía de texto.
∑ Fundamentos matemáticos
Un modelo de difusión consta de dos procesos. El proceso forward añade ruido gaussiano gradualmente hasta destruir la señal original. Gracias al truco de reparametrización, podemos saltar directamente a cualquier paso \(t\):
\[ q(\mathbf{x}_t \mid \mathbf{x}_0) = \mathcal{N}\!\left(\mathbf{x}_t;\;\sqrt{\bar\alpha_t}\,\mathbf{x}_0,\;(1-\bar\alpha_t)\mathbf{I}\right) \]
\[ \mathbf{x}_t = \sqrt{\bar\alpha_t}\;\mathbf{x}_0 + \sqrt{1-\bar\alpha_t}\;\boldsymbol{\varepsilon}, \qquad \boldsymbol{\varepsilon} \sim \mathcal{N}(\mathbf{0}, \mathbf{I}) \]
El proceso reverse aprende a invertir cada paso. La red neuronal \(\boldsymbol{\varepsilon}_\theta\) predice el ruido añadido, y la pérdida simplificada es:
\[ \mathcal{L}_{\text{simple}} = \mathbb{E}_{t,\,\mathbf{x}_0,\,\boldsymbol\varepsilon}\!\left[\,\left\lVert\boldsymbol\varepsilon - \boldsymbol\varepsilon_\theta(\mathbf{x}_t, t)\right\rVert^2\,\right] \]
Para guiar la generación, se usa Classifier-Free Guidance (CFG): \(\tilde{\boldsymbol\varepsilon} = \boldsymbol\varepsilon_\theta(\mathbf{x}_t) + w\bigl(\boldsymbol\varepsilon_\theta(\mathbf{x}_t, c) - \boldsymbol\varepsilon_\theta(\mathbf{x}_t)\bigr)\), donde \(w\) es la escala de guía y \(c\) es el embedding de la condición (p.ej., texto).
1 Elige una imagen
Selecciona una de las imágenes 8×8 RGB para explorar cómo el modelo de difusión la destruye y reconstruye.
2 Proceso forward: añadir ruido
Observa cómo la imagen se degrada paso a paso. Usa el slider para navegar por el proceso forward y ver la relación señal/ruido en cada \(t\).
3 Noise schedules: \(\beta_t\) y \(\bar\alpha_t\)
El schedule controla cuánto ruido se añade en cada paso. Compara el schedule lineal con el coseno y observa cómo afecta a las curvas de señal y ruido.
4 Proceso reverse: denoising
El proceso inverso parte de ruido puro y va eliminándolo paso a paso. La red predice \(\boldsymbol{\varepsilon}\) y usamos la fórmula de actualización para obtener \(\mathbf{x}_{t-1}\). Pulsa el botón para ver la reconstrucción.
5 Simulación de entrenamiento
Simula un bucle de entrenamiento: en cada epoch se muestrea una imagen, un paso temporal, se añade ruido, la red predice \(\hat{\boldsymbol\varepsilon}\) y se minimiza el MSE. Observa cómo desciende la pérdida.
6 Condicionamiento y guía (CFG)
En Classifier-Free Guidance se interpolan las predicciones condicionada e incondicionada. Elige un prompt, ajusta la escala de guía \(w\) y compara los resultados.
7 Sampling: DDPM vs DDIM
DDPM usa un proceso estocástico completo (más lento, más diverso). DDIM es determinista y puede saltar pasos para generar más rápido. Compara ambos con el mismo número de pasos.