扩散模型(Diffusion Model)中的去噪过程与DDPM(Denoising Diffusion Probabilistic Models)算法原理
题目描述
扩散模型是一种生成模型,其核心思想是通过逐步添加噪声将数据破坏为随机分布,再学习逆向的去噪过程,从而从噪声中生成新样本。DDPM是扩散模型的经典实现,本题目将详解其去噪过程的数学原理与训练方法。
解题过程
- 前向加噪过程
- 定义:从原始数据 \(x_0\) 出发,通过 \(T\) 步逐步添加高斯噪声,最终得到纯噪声 \(x_T\)。
- 数学形式:每步噪声添加遵循 \(q(x_t|x_{t-1}) = \mathcal{N}(x_t; \sqrt{1-\beta_t}x_{t-1}, \beta_t I)\),其中 \(\beta_t \in (0,1)\) 是噪声调度参数。
- 简化计算:利用重参数化技巧,可直接从 \(x_0\) 计算任意步的 \(x_t\):
\[ x_t = \sqrt{\bar{\alpha}_t}x_0 + \sqrt{1-\bar{\alpha}_t}\epsilon, \quad \epsilon \sim \mathcal{N}(0,I) \]
其中 $ \alpha_t = 1-\beta_t $,$ \bar{\alpha}_t = \prod_{i=1}^t \alpha_i $。
- 逆向去噪过程
- 目标:学习条件概率 \(p_\theta(x_{t-1}|x_t)\),逐步从 \(x_T\) 还原到 \(x_0\)。
- 假设:每一步服从高斯分布 \(p_\theta(x_{t-1}|x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \Sigma_\theta(x_t, t))\)。
- 关键推导:通过贝叶斯公式和马尔可夫性质,可证明真实后验 \(q(x_{t-1}|x_t, x_0)\) 服从高斯分布,其均值为:
\[ \tilde{\mu}_t = \frac{1}{\sqrt{\alpha_t}}\left(x_t - \frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}}\epsilon\right) \]
这里 $ \epsilon $ 是前向过程中添加到 $ x_0 $ 的噪声。
- 训练目标
- 核心思想:训练去噪网络 \(\epsilon_\theta\) 预测前向过程中加入的噪声 \(\epsilon\)。
- 损失函数:采用均方误差最小化预测噪声与真实噪声的差异:
\[ L(\theta) = \mathbb{E}_{t,x_0,\epsilon} \left[ \| \epsilon - \epsilon_\theta(\sqrt{\bar{\alpha}_t}x_0 + \sqrt{1-\bar{\alpha}_t}\epsilon, t) \|^2 \right] \]
- 训练步骤:
- 从数据集中采样 \(x_0\),时间步 \(t \sim \text{Uniform}(1,T)\),噪声 \(\epsilon \sim \mathcal{N}(0,I)\)。
- 计算加噪后的 \(x_t\)。
- 输入 \(x_t\) 和 \(t\) 到网络,得到预测噪声 \(\epsilon_\theta(x_t, t)\)。
- 通过梯度下降优化 \(\|\epsilon - \epsilon_\theta\|^2\)。
- 采样生成过程
- 步骤:从 \(x_T \sim \mathcal{N}(0,I)\) 开始,逐步执行:
\[ x_{t-1} = \frac{1}{\sqrt{\alpha_t}}\left(x_t - \frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}}\epsilon_\theta(x_t, t)\right) + \sigma_t z, \quad z \sim \mathcal{N}(0,I) \]
其中 $ \sigma_t $ 为方差调度参数,DDPM中固定为 $ \beta_t $。
- 迭代 \(T\) 步后得到生成样本 \(x_0\)。
总结
DDPM通过前向破坏与逆向重建的对称设计,将生成问题转化为去噪任务。其核心在于通过噪声预测损失训练网络,并在采样时通过逐步去噪实现高质量生成。