avatar

Yiyu Qiu

Undergraduate Student
Shanghai Jiao Tong University
3500063778@sjtu.edu.cn


Diffusion Models 完全入门指南

· Yiyu Qiu VAE DDPM DDIM SMLD SDE/ODE PyTorch


前言

这是我在研究扩散模型(Diffusion Models)过程中的一些心得总结。本文将以Tutorial on Diffusion Models for Imaging and Vision(arxiv:2403.18103v1)的讲解思路为参考,从理论到实践,系统介绍 Diffusion Models 的核心原理与延伸拓展。

Part0 预备知识

0.1 概率论基础

0.1.1 高斯分布及其性质

一维高斯分布

概率密度函数:$\mathcal{N}(x; \mu, \sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)$

均值 $\mu$ 和方差 $\sigma^2$ 的几何意义

多维高斯分布

概率密度函数:$\mathcal{N}(\mathbf{x}; \boldsymbol{\mu}, \boldsymbol{\Sigma}) = \frac{1}{(2\pi)^{d/2} \boldsymbol{\Sigma} ^{1/2}} \exp\left(-\frac{1}{2}(\mathbf{x}-\boldsymbol{\mu})^T\boldsymbol{\Sigma}^{-1}(\mathbf{x}-\boldsymbol{\mu})\right)$

协方差矩阵 $\boldsymbol{\Sigma}$ 的性质(对称性、正定性);高斯分布的关键性质

线性变换性质:若 $\mathbf{x} \sim \mathcal{N}(\boldsymbol{\mu}, \boldsymbol{\Sigma})$,则 $\mathbf{A}\mathbf{x} + \mathbf{b} \sim \mathcal{N}(\mathbf{A}\boldsymbol{\mu} + \mathbf{b}, \mathbf{A}\boldsymbol{\Sigma}\mathbf{A}^T)$

边缘分布性质:联合高斯分布的边缘分布仍是高斯分布

条件分布性质:联合高斯分布的条件分布仍是高斯分布

0.1.2 重参数化技巧 (Reparameterization Trick)

动机:如何对含有随机采样节点的计算图进行反向传播?

核心思想:将随机性从参数中分离出来

原始采样:$z \sim \mathcal{N}(\mu, \sigma^2)$(不可导) 重参数化:$z = \mu + \sigma \cdot \epsilon$,其中 $\epsilon \sim \mathcal{N}(0, 1)$(可导) 多维情况:$\mathbf{z} = \boldsymbol{\mu} + \mathbf{L}\boldsymbol{\epsilon}$

其中 $\boldsymbol{\Sigma} = \mathbf{L}\mathbf{L}^T$(Cholesky 分解) 或简化为对角协方差:$\mathbf{z} = \boldsymbol{\mu} + \boldsymbol{\sigma} \odot \boldsymbol{\epsilon}$ 意义:使得神经网络可以通过梯度下降学习分布的参数

0.1.3 条件概率与联合分布

贝叶斯定理:$p(z|x) = \frac{p(x|z)p(z)}{p(x)} = \frac{p(x|z)p(z)}{\int p(x|z)p(z)dz}$

后验 = 似然 × 先验 / 证据 联合分布的链式法则: \(p(x_1, x_2, \ldots, x_T) = p(x_1) \prod_{t=2}^{T} p(x_t | x_{t-1}, \ldots, x_1)\)

马尔可夫性简化:若满足马尔可夫性质,则 $$p(x_1, x_2, \ldots, x_T) = p(x_1) \prod_{t=2}^{T} p(x_t x_{t-1})$$

0.2 信息论与变分推断

0.2.1 Kullback-Leibler (KL) 散度

定义:衡量两个分布之间的”距离”(严格说是散度,不满足对称性) \(D_{KL}(p | q) = \int p(x) \log \frac{p(x)}{q(x)} dx = \mathbb{E}_{x \sim p}\left[\log \frac{p(x)}{q(x)}\right]\)

性质

非负性:$D_{KL}(p | q) \geq 0$,当且仅当 $p = q$ 时等号成立 非对称性:$D_{KL}(p | q) \neq D_{KL}(q | p)$ 两个高斯分布的 KL 散度(闭式解,VAE 的核心)

设 $p = \mathcal{N}(\mu_1, \sigma_1^2)$,$q = \mathcal{N}(\mu_2, \sigma_2^2)$

则: $$D_{KL}(p q) = \log \frac{\sigma_2}{\sigma_1} + \frac{\sigma_1^2 + (\mu_1 - \mu_2)^2}{2\sigma_2^2} - \frac{1}{2}$$
多维情况(对角协方差): $$D_{KL}(\mathcal{N}(\boldsymbol{\mu}_1, \boldsymbol{\Sigma}_1) \mathcal{N}(\boldsymbol{\mu}_2, \boldsymbol{\Sigma}_2)) = \frac{1}{2}\left[\text{tr}(\boldsymbol{\Sigma}_2^{-1}\boldsymbol{\Sigma}_1) + (\boldsymbol{\mu}_2 - \boldsymbol{\mu}_1)^T \boldsymbol{\Sigma}_2^{-1}(\boldsymbol{\mu}_2 - \boldsymbol{\mu}_1) - d + \log \frac{ \boldsymbol{\Sigma}_2 }{ \boldsymbol{\Sigma}_1 }\right]$$

0.2.2 Evidence Lower Bound (ELBO)

问题背景:在隐变量模型中,我们想最大化数据的对数似然 $\log p(x)$,但由于存在隐变量 $z$,边缘化积分难以计算: \(\log p(x) = \log \int p(x, z) dz = \log \int p(x|z)p(z) dz\)

变分推断的思路:引入一个近似后验分布 $q(z x)$ 来逼近真实后验 $p(z x)$
ELBO 的推导: $\begin{align} \log p(x) &= \log \int p(x, z) dz \ &= \log \int \frac{p(x, z)}{q(z x)} q(z x) dz \ &= \log \mathbb{E}{q(z x)}\left[\frac{p(x, z)}{q(z x)}\right] \ &\geq \mathbb{E}{q(z x)}\left[\log \frac{p(x, z)}{q(z x)}\right] \quad \text{(Jensen’s Inequality)} \ &= \mathbb{E}{q(z x)}[\log p(x z)] - D{KL}(q(z x) p(z)) \ &\triangleq \mathcal{L}(q, \theta) \quad \text{(ELBO)} \end{align}$

ELBO 的两种解读

下界角度:$\log p(x) \geq \mathcal{L}(q, \theta)$,最大化 ELBO 等价于最大化对数似然的下界 KL 散度角度: \(\log p(x) = \mathcal{L}(q, \theta) + D_{KL}(q(z|x) | p(z|x))\) 由于 $\log p(x)$ 与 $q$ 无关,最大化 ELBO 等价于最小化 $q(z|x)$ 与真实后验 $p(z|x)$ 之间的 KL 散度

0.3 随机过程初步

0.3.1 马尔可夫链 (Markov Chain)

定义:一个随机过程 ${X_t}{t=0}^{\infty}$,如果满足 $$p(X_t X{t-1}, X_{t-2}, \ldots, X_0) = p(X_t X_{t-1})$$ 则称其为马尔可夫链(即”未来只依赖于现在,与过去无关”)
转移核 (Transition Kernel):$p(X_t X_{t-1})$,描述状态转移的概率分布
平稳分布 (Stationary Distribution):若 $\pi(x)$ 满足 $$\pi(x) = \int \pi(x’) p(x x’) dx’$$ 则称 $\pi$ 为该马尔可夫链的平稳分布

遍历性 (Ergodicity):如果从任意初始状态出发,链的分布最终都会收敛到平稳分布 $\pi$,则称该链是遍历的

0.3.2 高斯马尔可夫链

扩散模型中最常用的形式:每一步转移都是高斯分布 \(p(x_t | x_{t-1}) = \mathcal{N}(x_t; \sqrt{1-\beta_t} x_{t-1}, \beta_t \mathbf{I})\)

性质:

若初始分布是高斯的,则所有 $x_t$ 的边缘分布都是高斯的 条件分布 $p(x_t | x_0)$ 可以解析计算(这是扩散模型的核心技巧)

参考资料

后记

这只是 Diffusion Models 的入门介绍,后续我会继续分享:

  • Classifier-Free Guidance (CFG) 详解
  • Cifar10/CelebA-64 实战经验
  • Dit/Sit 相较 U-Net训练差异

敬请期待!


Powered by Jekyll and Minimal Light theme.