扩散模型的核心数学公式揭示了其从噪声中生成数据的机制,这些公式构成了DDPM(去噪扩散概率模型)的基础理论框架。扩散模型通过前向扩散过程逐步添加噪声,再通过反向去噪过程学习逆转这一过程,最终实现高质量的数据生成。这些公式不仅展示了扩散模型的数学严谨性,也解释了为何它能够稳定训练并生成逼真样本。
一、前向扩散过程公式
前向扩散过程是扩散模型的基础,它通过T个时间步逐步向原始数据添加高斯噪声,直到最终得到纯噪声分布。这一过程可以表示为:
每步转移公式
$$ q(\mathbf{x}_t | \mathbf{x}_{t-1}) = \mathcal{N}\left( \mathbf{x}_t; \sqrt{1-\beta_t} \mathbf{x}_{t-1}, \beta_t \mathbf{I} \right) $$
其中,$\mathbf{x}_t$表示第t步的含噪数据,$\mathbf{x}_{t-1}$是前一步的含噪数据,$\beta_t$是第t步的噪声方差系数,$\mathbf{I}$是单位矩阵。这个公式描述了每一步如何从上一时刻的含噪数据生成当前时刻的含噪数据,通过高斯噪声的逐步累积实现数据的"扩散" 。
重参数化公式
$$ \mathbf{x}_t = \sqrt{\bar{\alpha}_t} \mathbf{x}_0 + \sqrt{1-\bar{\alpha}_t} \boldsymbol{\epsilon}_t $$
其中,$\bar{\alpha}_t = \prod_{s=1}^t \alpha_s$,$\alpha_s = 1-\beta_s$,$\boldsymbol{\epsilon}_t \sim \mathcal{N}(0, \mathbf{I})$是标准高斯噪声。这个公式允许我们直接从原始数据$\mathbf{x}_0$和噪声$\boldsymbol{\epsilon}_t$生成任意时间步t的含噪数据$\mathbf{x}_t$,无需逐步迭代计算,大大简化了训练过程 。
累积方差公式
$$ \bar{\alpha}_t = \prod_{s=1}^t \alpha_s = \prod_{s=1}^t (1-\beta_s) $$
累积方差$\bar{\alpha}_t$表示经过t步扩散后原始数据$\mathbf{x}_0$在$\mathbf{x}_t$中的剩余比例。随着t的增加,$\bar{\alpha}_t$逐渐减小,表明原始数据的信号被噪声逐步覆盖。当t达到最大值T时,$\bar{\alpha}_T$接近0,$\mathbf{x}_T$几乎变成纯噪声。
二、反向生成过程公式
反向生成过程是扩散模型的核心创新,它通过学习逆转前向扩散过程,从纯噪声$\mathbf{x}_T$逐步去噪生成高质量数据样本$\mathbf{x}_0$。这一过程可以表示为:
反向过程分布
$$ p_\theta(\mathbf{x}_{t-1} | \mathbf{x}_t) = \mathcal{N}\left( \mathbf{x}_{t-1}; \mu_\theta(\mathbf{x}_t, t), \sigma_t^2 \mathbf{I} \right) $$
其中,$\mu_\theta(\mathbf{x}_t, t)$是可学习的均值函数,$\sigma_t^2$是预定义的方差。这个公式定义了模型在反向过程中如何从当前含噪数据$\mathbf{x}_t$生成前一步的去噪数据$\mathbf{x}_{t-1}$,通过神经网络参数化均值函数,学习逆转噪声添加过程 。
反向均值公式
$$ \mu_\theta(\mathbf{x}_t, t) = \frac{1}{\sqrt{\alpha_t}} \left( \mathbf{x}_t - \frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}} \boldsymbol{\epsilon}_\theta(\mathbf{x}_t, t) \right) $$
这个公式展示了反向过程的均值如何由当前含噪数据$\mathbf{x}_t$和预测噪声$\boldsymbol{\epsilon}_\theta$计算得出。通过贝叶斯推导,可以证明这个均值形式与真实后验分布$\mathbb{E}[\mathbf{x}_{t-1} | \mathbf{x}_t, \mathbf{x}_0]$的均值形式一致 ,确保了反向过程的数学合理性。
反向方差公式
$$ \sigma_t^2 = \beta_t $$
在DDPM中,反向过程的方差$\sigma_t^2$被直接设置为前向过程的$\beta_t$,保证了生成过程的对称性和稳定性。这种对称设计使得反向过程的噪声添加与前向过程一致,避免了生成过程中的不稳定现象 。
三、训练目标与损失函数
扩散模型的训练目标是学习逆转前向扩散过程,这可以通过变分下界(VLB)框架实现。然而,原始VLB公式计算复杂,因此DDPM提出了简化版本:
完整变分下界公式
$$ L_{\text{VLB}} = -\log p_\theta(\mathbf{x}_0) + \sum_{t=1}^T \mathbb{E}_{q(\mathbf{x}_{0:t} | \mathbf{x}_0)} \left[ D_{\text{KL}} \left( q(\mathbf{x}_{t-1} | \mathbf{x}_t, \mathbf{x}_0) \parallel p_\theta(\mathbf{x}_{t-1} | \mathbf{x}_t) \right) \right] $$
这个公式表示通过最小化变分下界来最大化数据对数似然,其中包含了T个时间步的KL散度项。KL散度项度量了模型分布与真实后验分布之间的差异 ,是训练过程中的核心优化目标。
简化损失函数
$$ L_{\text{simple}} = \mathbb{E}_{t \sim \mathcal{U}(1,T), \mathbf{x}_0 \sim q(\mathbf{x}_0), \boldsymbol{\epsilon} \sim \mathcal{N}(0,\mathbf{I})} \left[ \left\| \boldsymbol{\epsilon} - \boldsymbol{\epsilon}_\theta\left( \sqrt{\bar{\alpha}_t} \mathbf{x}_0 + \sqrt{1-\bar{\alpha}_t} \boldsymbol{\epsilon}, t \right) \right\|^2 \right] $$
在实际训练中,DDPM发现忽略权重项并简化损失函数可以带来更稳定的训练和更好的生成质量。简化损失函数直接优化预测噪声$\boldsymbol{\epsilon}$的均方误差 ,使训练过程更加高效。
噪声预测公式
$$ \boldsymbol{\epsilon}_\theta = f_\theta(\mathbf{x}_t, t) $$
其中,$f_\theta$是一个神经网络(通常为U-Net),输入当前含噪数据$\mathbf{x}_t$和时间步编码,输出预测的噪声$\boldsymbol{\epsilon}_\theta$。噪声预测是扩散模型的核心任务,通过学习从含噪数据中分离出添加的噪声,模型能够逐步恢复出原始数据 。
四、时间步编码公式
为了使模型能够感知当前扩散阶段,DDPM采用了正弦位置编码技术对时间步进行编码:
正弦编码公式
$$ \text{pos\_emb}(t) = \left[ \sin\left( \frac{t}{10000^{2i/d}} \right), \cos\left( \frac{t}{10000^{2i/d}} \right) \right]_{i=0}^{d/2} $$
其中,$d$是时间嵌入维度(通常为128或更高),$t$是当前时间步。这个公式将离散的时间步转换为连续的向量表示,使模型能够更好地捕捉不同噪声水平的特征 。
时间嵌入处理
$$ \text{time\_mlp} = \text{MLP}(\text{pos\_emb}(t)) $$
编码后的向量通过多层感知机(MLP)进一步处理,然后与图像特征拼接或相加,作为神经网络的输入。时间嵌入使模型能够区分不同扩散阶段的噪声水平,从而更准确地预测噪声并实现去噪 。
五、生成过程迭代公式
在推理阶段,扩散模型从纯噪声$\mathbf{x}_T$开始,通过T个时间步的迭代逐步去噪,最终生成高质量数据样本$\mathbf{x}_0$:
迭代生成公式
$$ \mathbf{x}_{t-1} = \mu_\theta(\mathbf{x}_t, t) + \sigma_t \cdot \boldsymbol{\epsilon}_t, \quad \boldsymbol{\epsilon}_t \sim \mathcal{N}(0, \mathbf{I}) $$
其中,$\mu_\theta$是反向均值函数,$\sigma_t$是预定义的方差。这个公式描述了从时间步t到t-1的迭代过程,通过逐步去噪最终恢复出原始数据 。
初始噪声采样
$$ \mathbf{x}_T \sim \mathcal{N}(0, \mathbf{I}) $$
生成过程从标准高斯分布中采样初始噪声$\mathbf{x}_T$开始,然后通过T个时间步的反向过程逐步去噪,直到得到最终生成样本$\mathbf{x}_0$。
六、公式参数详解与应用意义
扩散模型的核心公式中涉及多个关键参数,它们在模型训练和生成过程中扮演着重要角色:
参数 | 数学表达式 | 取值范围 | 作用 |
---|---|---|---|
$\beta_t$ | 前向噪声方差系数 | 从1e-4到0.02的递增序列 | 控制每步添加的噪声强度,通常采用线性或余弦调度 |
$\alpha_t$ | $1-\beta_t$ | 从0.9999到0.98的递减序列 | 前向过程的信号保留系数 |
$\bar{\alpha}_t$ | $\prod_{s=1}^t \alpha_s$ | 从1到接近0的递减序列 | 累积信号保留系数,表示经过t步后原始数据的剩余比例 |
$\sigma_t^2$ | $\beta_t$ | 与$\beta_t$相同 | 反向过程的噪声方差,保证生成过程的对称性和稳定性 |
这些参数共同构成了扩散模型的噪声调度方案,直接影响模型的训练效率和生成质量。例如,$\beta_t$的调度策略(线性或余弦)决定了噪声添加的速率,而$\bar{\alpha}_t$则控制了重参数化公式中原始信号和噪声的比例。
七、公式间的联系与训练流程
扩散模型的各个公式之间存在紧密联系,共同构成了模型的训练和生成流程:
- 前向过程:通过每步转移公式和重参数化公式,模型可以高效地生成含噪数据$\mathbf{x}_t$,作为训练样本。
- 训练目标:通过简化损失函数,模型学习预测噪声$\boldsymbol{\epsilon}_\theta$,使预测值尽可能接近真实噪声$\boldsymbol{\epsilon}$。
- 反向过程:通过反向均值公式和迭代生成公式,模型从纯噪声$\mathbf{x}_T$开始,逐步去噪生成高质量样本$\mathbf{x}_0$。
这种基于变分推断的框架使得扩散模型能够稳定训练 ,避免了GAN等生成模型常见的训练不稳定问题。同时,通过噪声预测的简化设计,扩散模型将复杂的生成任务转化为简单的回归问题 ,提高了训练效率和生成质量。
八、公式在DDPM中的实际应用
在DDPM的实现中,这些公式被具体应用到模型的训练和生成流程中:
训练阶段:
- 随机采样时间步$t \sim \mathcal{U}(1,T)$
- 从数据分布采样原始样本$\mathbf{x}_0$
- 从标准高斯分布采样噪声$\boldsymbol{\epsilon} \sim \mathcal{N}(0, \mathbf{I})$
- 通过重参数化公式计算含噪样本$\mathbf{x}_t = \sqrt{\bar{\alpha}_t} \mathbf{x}_0 + \sqrt{1-\bar{\alpha}_t} \boldsymbol{\epsilon}$
- 将$\mathbf{x}_t$和时间步编码输入U-Net,预测噪声$\boldsymbol{\epsilon}_\theta$
- 计算损失函数$\mathcal{L} = \|\boldsymbol{\epsilon} - \boldsymbol{\epsilon}_\theta\|^2$
- 使用Adam优化器更新网络参数
生成阶段:
- 从标准高斯分布采样初始噪声$\mathbf{x}_T \sim \mathcal{N}(0, \mathbf{I})$
从$t=T$开始,逐步迭代到$t=1$:
- 使用U-Net预测当前噪声$\boldsymbol{\epsilon}_\theta(\mathbf{x}_t, t)$
- 计算均值$\mu_\theta = \frac{1}{\sqrt{\alpha_t}} \left( \mathbf{x}_t - \frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}} \boldsymbol{\epsilon}_\theta \right)$
- 从高斯分布采样噪声$\boldsymbol{\epsilon} \sim \mathcal{N}(0, \mathbf{I})$
- 计算$\mathbf{x}_{t-1} = \mu_\theta + \sqrt{\beta_t} \boldsymbol{\epsilon}$
- 最终得到生成样本$\mathbf{x}_0$
这种两阶段的训练和生成流程是扩散模型的核心特点,它通过逐步添加和去除噪声,实现了对复杂数据分布的建模。尽管生成过程需要T步迭代(通常T=1000),但这种逐步去噪的方式保证了生成样本的质量和多样性 。
九、公式优化与变体
原始DDPM的公式在后续研究中得到了进一步优化和扩展,形成了多种变体:
- DDIM(去噪扩散隐式模型):引入自由参数$\eta$,允许在生成过程中跳过某些时间步,从而加速生成过程 。
- Score-based扩散模型:将噪声预测转化为分数估计问题,通过优化$\nabla_{\mathbf{x}_t} \log p_\theta(\mathbf{x}_t)$来学习去噪过程 。
- 潜在扩散模型:在潜在空间(而非原始图像空间)进行扩散,大幅提高生成速度和质量,如Stable Diffusion 。
这些变体虽然在具体实现上有所不同,但都基于原始DDPM的数学框架,通过调整噪声调度、优化损失函数或改变扩散空间来提升模型性能。
十、总结
扩散模型的核心公式展示了其从噪声中生成数据的数学原理,通过前向扩散和反向去噪的马尔可夫链框架,扩散模型实现了对复杂数据分布的稳定建模 。这些公式不仅解释了扩散模型为何能够生成高质量样本,也为模型优化和扩展提供了理论基础。
未来扩散模型的发展方向包括:
- 提高生成速度:如DDIM、DPM-Solver等加速技术
- 增强条件控制能力:如文本到图像的生成
- 扩展应用领域:如视频生成、3D建模、科学计算等