扩散模型的基本原理与公式推导
扩散模型(Diffusion Model)
通过连续添加高斯噪声来破坏训练数据,然后通过反转这个噪声过程,来学习恢复数据。主要包括以下两个过程,
- 正向扩散过程 qq: 逐渐将高斯噪声添加到图像中,直到最终得到纯噪声;
- 逆向去噪过程 pθpθ: 通过训练神经网络从纯噪声开始逐渐对图像去噪,直到最终得到一个实际的图像。
前向过程(扩散过程)
条件概率分布
通过在 TT 个有限时间步内不断对图像添加高斯噪声
设最初的图像样本 x0x0,对应的真实数据分布为 x0∼q(x0)x0∼q(x0),并且控制每个时间步对应的缩放因子有如下关系:
0<β1<β2<⋯<βT=10<β1<β2<⋯<βT=1(1)
给定样本的前一步状态xt−1xt−1,可以得到当前状态xt的条件概率分布:
q(xt|xt−1)=N(xt;√1−βtxt−1,βtI)
其中,N(μ,∑)表示多维正态分布,均值为μ,协方差矩阵为∑,提取的样本特征x为多维变量,因此表示为多维正态分布。直接的含义解释,设定缩放因子βt缩放前一步的样本特征xt−1,并在样本特征的多个维度上添加独立同分布的噪声(单位矩阵)。
扩散过程可以表示为:
q(x1:T|x0)=T∏t=1q(xt|xt−1)
Theory 1 重参数 (Reparameterization Trick)
多维随机变量 z 服从分布 z∼N(z;μθ,σ2θI),则可以将其进一步表示为
z=μθ+σθ⋅ϵ,ϵ∼N(0,I)
z 的随机性转移为 ϵ 的随机性。
概率分布推导
Supposing x0∼N(x0;μ0,σ20I), then
xt=√1−βtxt−1+βtϵt−1
令 αt=1−βt, then
xt=√αtxt−1+√1−αtϵt−1xt−1=√αt−1xt−2+√1−αt−1ϵt−2
故
xt=√αt(√αt−1xt−2+√1−αt−1ϵt−2)+√1−αtϵt−1=√αt−1αtxt−2+√αt√1−αt−1ϵt−2+√1−αtϵt−1
For √αt√1−αt−1ϵt−2 可表示为
z1=0+√αt√1−αt−1ϵt−2∼N(0,αt(1−αt−1)I)
For √1−αtϵt−1 可表示为
z2=0+√1−αtϵt−1∼N(0,(1−αt)I)
Theory 2 两个正态随机变量和 z=z1+z2
Conditions: z1∼N(μ1,σ21),z2∼N(μ2,σ22),Cov(z1,z2)=0
Conclusions:
EZ=EZ1+EZ2=μ1+μ2DZ=DZ1+DZ2+2Cov(z1,z2)=σ21+σ22
记 z=z1+z2∼N(0,(1−αtαt−1)I),则可得
xt=√αt−1αtxt−2+√1−αtαt−1ϵt−2=⋯=√αtαt−1⋯α1x0+√1−αtαt−1⋯α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 时, |¯αt−0|<ϵ, 则
xt=√¯αtx0+√1−¯αtϵ∼N(√¯αtx0,(1−¯αt)I)t>T⟶N(0,1)
反向过程(逆扩散过程)
p(x0|x1:T)=1Zexp(−βt⋅12⋅(xt−√1−βt|xt−1)2)
扩散模型的基本原理与公式推导