永州网站建设凯里网站建设

合肥欧派水泥预制品厂 2026/09/09 18:29:51

【DDPM 扩散模型】Part 7:最后总结!Denoising Diffusion Probabilistic Models论文全维度详解

这是整个扩散模型体系从「基础 → 全局」的总结。
希望这篇文章能够让你真正理解DDPM

1. 模型总览

扩散模型包含两个过程:

  1. 正向过程 (Forward Process / Diffusion Process,qqq):固定规则的马尔可夫链,逐渐向数据添加高斯噪声,直至数据变成纯噪声。
  2. 反向过程 (Reverse Process,pθp_ hetapθ):参数化的马尔可夫链,训练神经网络去学习逆向去噪的概率分布,从纯噪声还原数据。

2. 正向过程 (Forward Process)

正向过程被定义为一个固定的马尔可夫链。给定真实数据分布x0∼q(x0)x_0 sim q(x_0)x0q(x0),我们在每一步添加少量高斯噪声。

2.1 单步转移公式

q(xt∣xt−1)=N(xt;1−βtxt−1,βtI)q(x_t | x_{t-1}) = mathcal{N}(x_t; sqrt{1 - eta_t}x_{t-1}, eta_t mathbf{I})q(xtxt1)=N(xt;1βtxt1,βtI)

  • xtx_txt:当前时间步的图像变量。
  • βteta_tβt方差调度参数 (Variance Schedule)。这是一个预先设定的超参数(常数),随ttt线性增加(如10−4→0.0210^{-4} o 0.021040.02)。它决定了每一步加噪的幅度。
  • 1−βtsqrt{1 - eta_t}1βt:对上一步图像xt−1x_{t-1}xt1的缩放系数。为了防止在不断加噪过程中数值爆炸,必须衰减原始信号,以保持方差稳定。
  • Nmathcal{N}N:表示高斯(正态)分布。

2.2 任意步转移公式 (重参数化技巧)

为了高效训练,我们需要直接从x0x_0x0得到xtx_txt,而不是循环ttt次。
定义新变量:

  • αt=1−βtalpha_t = 1 - eta_tαt=1βt
  • αˉt=∏s=1tαsar{alpha}_t = prod_{s=1}^t alpha_sαˉt=s=1tαs(累积乘积)

推导出的边缘分布公式为:
q(xt∣x0)=N(xt;αˉtx0,(1−αˉt)I)q(x_t | x_0) = mathcal{N}(x_t; sqrt{ar{alpha}_t}x_0, (1 - ar{alpha}_t)mathbf{I})q(xtx0)=N(xt;αˉtx0,(1αˉt)I)

采样形式(用于代码实现):
xt=αˉtx0+1−αˉtϵ,ϵ∼N(0,I)x_t = sqrt{ar{alpha}_t} x_0 + sqrt{1 - ar{alpha}_t} epsilon, quad epsilon sim mathcal{N}(0, mathbf{I})xt=αˉtx0+1αˉtϵ,ϵN(0,I)

  • αˉtx0sqrt{ar{alpha}_t} x_0αˉtx0信号项。随着ttt增大,αˉt→0ar{alpha}_t o 0αˉt0,原始图像信息逐渐消失。
  • 1−αˉtϵsqrt{1 - ar{alpha}_t} epsilon1αˉtϵ噪声项。随着ttt增大,系数趋向 1,噪声主导图像。
  • ϵepsilonϵ:从标准正态分布采样的真实噪声,这是后续训练的Target(标签)

3. 反向过程与后验分布 (Reverse Process)

反向过程的目标是推断q(xt−1∣xt)q(x_{t-1} | x_t)q(xt1xt)。由于我们无法直接求得q(xt−1∣xt)q(x_{t-1} | x_t)q(xt1xt)(需要遍历整个数据集),我们使用神经网络pθp_ hetapθ来近似它。

3.1 近似分布定义

pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),Σθ(xt,t))p_ heta(x_{t-1} | x_t) = mathcal{N}(x_{t-1}; mu_ heta(x_t, t), Sigma_ heta(x_t, t))pθ(xt1xt)=N(xt1;μθ(xt,t),Σθ(xt,t))

  • μθ(xt,t)mu_ heta(x_t, t)μθ(xt,t):模型需要预测的均值(核心学习目标)。
  • Σθ(xt,t)Sigma_ heta(x_t, t)Σθ(xt,t):模型需要预测的方差。在 DDPM 论文中,作者将其固定为常数σt2Isigma_t^2 mathbf{I}σt2I(通常设为βtIeta_t mathbf{I}βtI),不进行训练

3.2 真实的后验均值 (μ~t ilde{mu}_tμ~t)

为了指导模型预测均值μθmu_ hetaμθ,我们需要知道理论上的真实后验均值μ~t ilde{mu}_tμ~t是什么。
利用贝叶斯公式q(xt−1∣xt,x0)q(x_{t-1} | x_t, x_0)q(xt1xt,x0),可以推导出:

μ~t(xt,x0)=1αt(xt−βt1−αˉtϵ) ilde{mu}_t(x_t, x_0) = frac{1}{sqrt{alpha_t}} Big( x_t - frac{eta_t}{sqrt{1 - ar{alpha}_t}} epsilon Big)μ~t(xt,x0)=αt1(xt1αˉtβtϵ)

  • 这个公式表明:如果我们知道xtx_txt和其中包含的噪声ϵepsilonϵ,我们就能算出最佳的去噪方向,回到xt−1x_{t-1}xt1的中心。
  • 逻辑链
    1. 真实反向均值μ~t ilde{mu}_tμ~txtx_txtϵepsilonϵ决定。
    2. 模型输入是xtx_txt,但不知道ϵepsilonϵ
    3. 因此,模型的任务变成了:预测xtx_txt中的噪声ϵepsilonϵ

4. 训练目标 (Training Objective)

4.1 参数化选择

根据 3.2 的推导,我们将模型的均值μθmu_ hetaμθ参数化为:
μθ(xt,t)=1αt(xt−βt1−αˉtϵθ(xt,t))mu_ heta(x_t, t) = frac{1}{sqrt{alpha_t}} Big( x_t - frac{eta_t}{sqrt{1 - ar{alpha}_t}} epsilon_ heta(x_t, t) Big)μθ(xt,t)=αt1(xt1αˉtβtϵθ(xt,t))

  • ϵθ(xt,t)epsilon_ heta(x_t, t)ϵθ(xt,t):这是神经网络的直接输出。网络接收xtx_txtttt,输出一个与图像同维度的噪声预测图。
  • θ hetaθ:神经网络(U-Net)的所有可学习参数(权重和偏置)。

4.2 简化损失函数 (Simplified Loss)

原始的变分下界 (ELBO) 包含复杂的 KL 散度项。论文证明,通过上述参数化,优化 KL 散度等价于优化预测噪声和真实噪声之间的均方误差 (MSE)

Lsimple(θ)=Et,x0,ϵ[∥ϵ−ϵθ(αˉtx0+1−αˉtϵ,t)∥2]L_{ ext{simple}}( heta) = mathbb{E}_{t, x_0, epsilon} Big[ | epsilon - epsilon_ heta(sqrt{ar{alpha}_t} x_0 + sqrt{1 - ar{alpha}_t} epsilon, t) |^2 Big]Lsimple(θ)=Et,x0,ϵ[ϵϵθ(αˉtx0+1αˉtϵ,t)2]

  • ϵepsilonϵ:正向过程中加入的真实噪声(Ground Truth)。
  • ϵθ(...)epsilon_ heta(...)ϵθ(...):模型根据脏图预测的噪声。
  • 优化过程:梯度下降更新θ hetaθ,使ϵθepsilon_ hetaϵθ无限接近ϵepsilonϵ

5. 算法流程 (Algorithms)

这是模型落地的具体步骤,对应论文中的伪代码。

5.1 训练算法 (Training)

  1. Repeat:开始迭代训练。
  2. x0∼q(x0)x_0 sim q(x_0)x0q(x0):从数据集中采样一张洁净图片。
  3. t∼Uniform({1,…,T})t sim ext{Uniform}({1, dots, T})tUniform({1,,T}):随机采样一个时间步(例如t=500t=500t=500)。
  4. ϵ∼N(0,I)epsilon sim mathcal{N}(0, mathbf{I})ϵN(0,I):采样一个标准高斯噪声。
  5. 构造xtx_txt:计算xt=αˉtx0+1−αˉtϵx_t = sqrt{ar{alpha}_t}x_0 + sqrt{1-ar{alpha}_t}epsilonxt=αˉtx0+1αˉtϵ
  6. 计算梯度:计算损失∥ϵ−ϵθ(xt,t)∥2| epsilon - epsilon_ heta(x_t, t) |^2ϵϵθ(xt,t)2关于θ hetaθ的梯度。
  7. 更新θ hetaθ:使用优化器(如 Adam)更新网络参数。
  8. Until converged:直到 Loss 不再下降。

5.2 采样算法 (Sampling / Inference)

  1. xT∼N(0,I)x_T sim mathcal{N}(0, mathbf{I})xTN(0,I):从标准正态分布采样纯噪声。
  2. Fort=T,…,1t = T, dots, 1t=T,,1do:从最后一步倒推。
  3. z∼N(0,I)z sim mathcal{N}(0, mathbf{I})zN(0,I):采样随机噪声(如果t=1t=1t=1z=0z=0z=0)。
  4. 计算去噪步
    xt−1=1αt(xt−1−αt1−αˉtϵθ(xt,t))+σtzx_{t-1} = frac{1}{sqrt{alpha_t}} Big( x_t - frac{1 - alpha_t}{sqrt{1 - ar{alpha}_t}} epsilon_ heta(x_t, t) Big) + sigma_t zxt1=αt1(xt1αˉt1αtϵθ(xt,t))+σtz
    • 前半部分(大括号内):基于预测噪声算出的后验均值μ~t ilde{mu}_tμ~t(确定性部分)。
    • 后半部分 (σtzsigma_t zσtz):随机扰动项。模拟朗之万动力学 (Langevin Dynamics),增加多样性,防止图像
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

门户网站建设网站建设心得

线程与文件管理:基础与高级操作在计算机编程中,线程操作和文件管理是非常重要的两个方面。下面我们将详细介绍线程取款操作以及文件和目录管理的相关知识。线程取款操作在多线程环境中,对共享资源的操作需要进行同

2026/06/30 13:34:06

西宁网站建设东营网站建设

xUtils3终极指南:快速掌握Android四大核心开发利器【免费下载链接】xUtils3Android orm, bitmap, http, view inject...项目地址:

2026/06/30 13:28:36

深圳网站建设公司镇江网站建设

引言近年来,网络钓鱼攻击在自动化、智能化和模块化方向迅速演进。以 BlackForce、GhostFrame、InboxPrime AI 及 Salty-Tycoon 为代表的新型钓鱼工

2026/06/30 14:02:38

宁波网站建设网站建设知识

C#项目中引入Seed-Coder-8B-Base进行智能代码补全实战在现代软件开发节奏日益加快的背景下,C#开发者面对的不仅是业务逻辑复杂度的提升,还有对编码效率与质量的

2026/06/30 13:32:06

网站建设方案网站建设解决方案

直接内存的分配与回收核心是 “Native 层分配内存 + Java 层持有引用 + Cleaner 机制回收”,全程需 JVM 与操作系统协同,具体原理如

2026/06/30 13:02:34

温州网站建设广西网站建设

🗣️ I²C 模块 —— 给你的芯片装上“微信”!✅ 适用对象:嵌入式初学者、电子爱好者💡 核心目标:理解 I²C 是什么 &

2026/06/30 12:01:58

网站建设策划方案浙江省建设厅网站

PowerShell常见陷阱与实用技巧1. Tab补全功能在PowerShell ISE和控制台窗口中,很少有人依赖Tab补全功能,这既令人遗憾又令人惊讶。使用Tab补全功能有诸多好处:- 避免命令或

2026/06/30 13:30:36

济宁网站建设服装网站建设

Jasminum茉莉花插件:中文学术研究者的文献管理终极解决方案【免费下载链接】jasminumA Zotero add-on to retrive CNKI meta data. 一个

2026/06/30 12:27:01

昆山网站建设珠海网站建设

Whisper-CTranslate2:革命性的高性能语音识别与翻译解决方案【免费下载链接】whisper-ctranslate2Whisper command line client

2026/06/30 10:41:51

厦门网站建设乐清网站建设

大学的 405 宿舍,从来不是什么灵异地带。除了考试季的哀嚎、恋爱失败的抽泣、打游戏的咆哮外,一切都很正常。直到毕业论文季——灵异事件开始了。一、凌晨 2:44 的第一声“

2026/06/30 13:28:36