扩散模型的基本原理与公式推导

扩散模型的基本原理与公式推导

扩散模型(Diffusion Model)

通过连续添加高斯噪声来破坏训练数据,然后通过反转这个噪声过程,来学习恢复数据。主要包括以下两个过程,

  • 正向扩散过程 qq: 逐渐将高斯噪声添加到图像中,直到最终得到纯噪声;
  • 逆向去噪过程 pθpθ: 通过训练神经网络从纯噪声开始逐渐对图像去噪,直到最终得到一个实际的图像。

前向过程(扩散过程)

条件概率分布

通过在 TT 个有限时间步内不断对图像添加高斯噪声
设最初的图像样本 x0x0,对应的真实数据分布为 x0q(x0)x0q(x0),并且控制每个时间步对应的缩放因子有如下关系:
0<β1<β2<<βT=10<β1<β2<<βT=1(1)
给定样本的前一步状态xt1xt1,可以得到当前状态xt的条件概率分布:
q(xt|xt1)=N(xt;1βtxt1,βtI)
其中,N(μ,)表示多维正态分布,均值为μ,协方差矩阵为,提取的样本特征x为多维变量,因此表示为多维正态分布。直接的含义解释,设定缩放因子βt缩放前一步的样本特征xt1,并在样本特征的多个维度上添加独立同分布的噪声(单位矩阵)。

扩散过程可以表示为:
q(x1:T|x0)=Tt=1q(xt|xt1)

Theory 1 重参数 (Reparameterization Trick)
多维随机变量 z 服从分布 zN(z;μθ,σ2θI),则可以将其进一步表示为
z=μθ+σθϵ,ϵN(0,I)

z 的随机性转移为 ϵ 的随机性。

概率分布推导

Supposing x0N(x0;μ0,σ20I), then
xt=1βtxt1+βtϵt1
αt=1βt, then
xt=αtxt1+1αtϵt1xt1=αt1xt2+1αt1ϵt2

xt=αt(αt1xt2+1αt1ϵt2)+1αtϵt1=αt1αtxt2+αt1αt1ϵt2+1αtϵt1
For αt1αt1ϵt2 可表示为
z1=0+αt1αt1ϵt2N(0,αt(1αt1)I)
For 1αtϵt1 可表示为
z2=0+1αtϵt1N(0,(1αt)I)
Theory 2 两个正态随机变量和 z=z1+z2
Conditions: z1N(μ1,σ21),z2N(μ2,σ22),Cov(z1,z2)=0
Conclusions:
EZ=EZ1+EZ2=μ1+μ2DZ=DZ1+DZ2+2Cov(z1,z2)=σ21+σ22
z=z1+z2N(0,(1αtαt1)I),则可得
xt=αt1αtxt2+1αtαt1ϵt2==αtαt1α1x0+1αtαt1α1ϵ0=¯αtx0+1¯αtϵ
其中,¯αt=ti=1αi.
进一步结合公式 (2),可以得到在初始状态条件下的第 t 步的概率分布
q(xt|x0)=N(xt;¯αtx0,1¯αtI)
Analysis of βi:
已知 0<β1<β2<<βT=1,则
1>α1>α2>>αT>0
α 满足收敛性时,T>0,ϵ>0, 当 t>T 时, |¯αt0|<ϵ, 则
xt=¯αtx0+1¯αtϵN(¯αtx0,(1¯αt)I)t>TN(0,1)

反向过程(逆扩散过程)

p(x0|x1:T)=1Zexp(βt12(xt1βt|xt1)2)

扩散模型的基本原理与公式推导

https://markstiff.github.io/博客文章/扩散模型/

作者

Mark Stiff

发布于

2024-05-25

更新于

2024-06-01

许可协议


评论