扩散模型(Diffusion Models)详解

扩散模型(Diffusion Models)详解

扩散模型(Diffusion Models)在近几年成为了生成对抗网络(GAN)之外的又一高质量生成模型的主要方向。它的中心理念可以概括为:「先把一张清晰的图逐渐加噪,最后变成纯随机噪声;然后训练一个神经网络去逆向地一步步清除噪声,最终还原到清晰的原图」。本篇将用直观的方式,并结合详细数学公式,来解释扩散模型的运作原理与实现流程。


一、为什么叫“扩散”?

在物理上,“扩散”常指例如一滴墨汁在水中慢慢扩散成均匀分布的过程。对于数据而言,则可以想象:把一张图像视为起始状态,每一步添上一点高斯噪声——图像就越来越模糊,最终完全变成像水中“均匀分布的墨汁”一样的纯噪声。 接下来要做的,就是 “逆向扩散”:假设我们手中只有一张纯随机噪声的图像,通过网络一步步“去噪”,让它回到那幅清晰图像。

在训练阶段,我们知道真实图像和各步噪声图像的对应关系;网络学到如何在每个阶段把噪声减去一点点,从而逐步逼近真实图像分布。


二、数学原理

1. 正向扩散(Forward Diffusion)

令数据点 x 0 ∈ R d \mathbf{x}_0 \in \mathbb{R}^d x0Rd 表示原始样本(如图像像素),我们定义一个“加噪”马尔可夫链:
x 0    →    x 1    →    …    →    x T \mathbf{x}_0 \;\to\; \mathbf{x}_1 \;\to\; \dots \;\to\; \mathbf{x}_T x0x1xT
其中每一步遵循
q ( x t ∣ x t − 1 ) =    N  ⁣ ( x t ∣ 1 − β t   x t − 1 ,    β t I ) , q(\mathbf{x}_t \mid \mathbf{x}_{t-1}) =\; \mathcal{N}\!\Bigl(\mathbf{x}_t \mid \sqrt{1-\beta_t}\,\mathbf{x}_{t-1},\;\beta_t \mathbf{I}\Bigr), q(xtxt1)=N(xt1βt xt1,βtI),
β t \beta_t βt是第 t t t步的噪声强度( 0 < β 1 < ⋯ < β T < 1 0<\beta_1<\dots<\beta_T<1 0<β1<<βT<1)。
直觉:在第 t t t步,我们把上一步 x t − 1 \mathbf{x}_{t-1} xt1保留 1 − β t \sqrt{1-\beta_t} 1βt 那部分,另外 β t \beta_t βt的部分全改为随机高斯噪声,让图像变得比上一时刻更模糊。

通俗解释:想象有人在一幅画上撒了一点灰尘(噪声),然后下一步再撒更多灰尘,直到画面完全看不清。这便是“正向扩散”。

累积加噪公式

若我们一步步加噪到第 t t t步,可写
q ( x t ∣ x 0 ) =    N  ⁣ ( x t    ∣    α ˉ t   x 0 ,    ( 1 − α ˉ t ) I ) , q(\mathbf{x}_t \mid \mathbf{x}_0) =\; \mathcal{N}\!\Bigl(\mathbf{x}_t \;\big|\; \sqrt{\bar{\alpha}_t}\,\mathbf{x}_0,\;\bigl(1-\bar{\alpha}_t\bigr)\mathbf{I}\Bigr), q(xtx0)=N(xt

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DuHz

喜欢就支持一下 ~ 谢谢啦!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值