StableDiffusion随机采样后可微方法

author:张一极

daTE:2024年08月01日14:31:1

随机采样过程不可微的原因在于它涉及随机性和不确定性,而梯度计算依赖于确定的、连续的函数。

具体来说,有以下几个原因:

为了应对这个问题,重参数技巧将采样过程中的随机性从不可微的随机变量中分离出来,并将其转化为从固定分布(通常是标准正态分布)中采样,然后通过一个可微的变换得到最终的样本。

例如,在从高斯分布 N(μ,σ2) 中采样时,我们通过以下变换实现可微性:

(1)1.ϵN(0,1)2.使z=μ+σϵz

通过这种方法,采样过程变得可微,因为变换函数 $ \mu + \sigma \cdot \epsilon $$ 是可微的。这样我们就可以通过反向传播来计算梯度,从而优化模型参数。

(2)q(xt|xt1)=N(xt;1βtxt1,βtI),q(x1:T|x0)=t=1Tq(xt|xt1).

 

重参数技巧(Reparameterization Trick)在很多机器学习模型中确实扮演了重要角色,尤其是在变分自编码器(Variational Autoencoder,VAE)和扩散模型(Diffusion Model)中。这个技巧的核心思想是将不可微的随机采样过程转换为一个可微的过程,从而使得我们能够通过梯度下降法来训练模型。

具体来说,以从高斯分布 ( N(μ,σ2) ) 中采样为例:

(3)1.(zN(μ,σ2))2.使(ϵN(0,1))

z=μ+σϵ

(4)zϵϵ

在扩散模型中,我们需要通过重参数技巧来处理大量的噪声采样过程。假设我们有一个扩散模型,其目标是通过若干步骤将数据逐步从噪声恢复到原始数据。每一步的更新过程都需要从高斯分布中采样噪声,因此需要重参数技巧来确保每一步都是可微的,从而可以使用反向传播来优化模型参数。

通过这种方式,我们可以确保模型的训练过程是可微的,从而能够通过梯度下降法来优化目标函数。

SD 内部的推导

有了这个先验信息,我们可以把 Xt表示为 N 个迭代前的 X0 的某个表达式(z 代表): αt=1βt ,并且αt=i=1Tαi ,展开xt可以得到: xt=atxt1+1αtz1wherez1,z2,N(0,I);=at(at1xt2+1αt1z2)+1αtz1=atat1xt2+(at(1αt1)z2+1αtz1)=atat1xt2+1αtαt1z2wherez2N(0,I);==αtx0+1αtzt.

即:xt=αtαt1α1x0+1αtαt1α1z¯t

由于独立高斯分布可加性,即N(0,σ12I)+N(0,σ22I)N(0,(σ12+σ22)I) ,所以 at(1αt1)z2N(0,at(1αt1)I)1αtz1N(0,(1αt)I)at(1αt1)z2+1αtz1N(0,[αt(1αt1)+(1αt)]I)=N(0,(1αtαt1)I).