Part4: Appendix

本文是前几篇文章中相关公式的详细推导部分,主要对论文中一些被省略的推导进行补充说明,对“扩散模型”感兴趣请查看前几篇文章。

高斯分布

概率密度函数

xN(μ,σ2),则:

f(x;μ,σ)=1σ2πexp((xμ)22σ2)

两个高斯的KL散度

DKL(N(μ1,σ12)∣∣N(μ2,σ22))=lnσ2σ1+σ12+(μ1μ2)22σ2212

性质1

如果存在一个随机变量xN(μ,σ2)服从高斯分布,那么存在实数a,b,满足:

ax+bN(aμ+b,(aσ)2)

因此,对于任意高斯分布xN(μ,σ2)可以将其表示为服从标准正态分布的随机变量ϵ的变换,即:

x=ϵσ+μ,ϵN(0,I)

性质2

假定两个随机变量都服从高斯分布且相互独立,记作xN(μx,σx2),  yN(μy,σy2),则两个随机变量的和或差仍服从高斯分布,即:

U=x+yN(μx+μy,σx2+σy2)V=xyN(μxμy,σx2+σy2)

推导一

Diffusion Forward process中,任意时刻t的状态xt如何基于x0表示?

解:
已知前向过程中,状态间的转换服从高斯分布,有:

(1)q(xtxt1)=N(1βtxt1,βtI)

βt进行变换,定义:

αt=1βtα¯t=i=1tαi

(1)式展开如下:

(2)q(xtxt1)=N(1βtxt1,βtI)xt=1βtxt1+βtϵ,ϵN(0,I)=αtxt1+1αtϵ

已知xt=αtxt1+1αtϵ,同理可得xt1=αt1xt2+1αt1ϵ¯,对(2)改写,有:

(3)αtxt1+1αtϵ=αt(αt1xt2+1αt1ϵ¯)+1αtϵ=αtαt1xt2+αt(1αt1)ϵ¯+1αtϵ

为了与ϵ进行区分,使用ϵ¯表示另外一个服从标准高斯分布N(0,I)的变量。

根据高斯分布的性质1,任意的高斯分布可由标准高斯分布转换得到,故:

(a)ϵN(0,I)1αtϵN(0,(1αt)I) ϵ¯N(0,I)αt(1αt1)ϵN(0,αt(1αt1)I)

由于1αtϵαt(1αt1)ϵ¯独立且都服从高斯分布,记U=1αtϵ+αt(1αt1)ϵ¯,由性质2可知U也服从高斯分布,有:

(b)1αtϵ+αt(1αt1)ϵ¯N(0,(1αt)I+αt(1αt1)I)UN(0,(1αtαt1)I)

基于高斯分布的性质1,将U使用标准高斯分布表示:

(c)UN(0,(1αtαt1)I)U=1αtαt1ϵ

(c)代入(3),可得:

αtxt1+1αtϵ=αt(αt1xt2+1αt1ϵ¯)+1αtϵ=αtαt1xt2+αt(1αt1)ϵ¯+1αtϵ=αtαt1xt2+1αtαt1ϵ

由数学归纳法,易知:

q(xtxt1)=N(1βtxt1,βtI)xt=1βtxt1+βtϵ,ϵN(0,I)=αtxt1+1αtϵ=αtαt1xt2+1αtαt1ϵ==α¯tx0+1α¯tϵ

因此,q(xtx0)=N(α¯tx0,1α¯tI)

推导二

diffusion中,定义q服从高斯分布,故对q(xt1xt,x0)定义如下:

q(xt1xt,x0)=N(xt1;μ~t(xt,x0),β~tI)

那其中μ~t(xt,x0)βt~如何得到?

此处先给出结论,下方是更详细的推导。

μ~t(xt,x0):=α¯t1βt1α¯tx0+αt(1α¯t1)1α¯txt,β~t:=1α¯t11α¯tβt

解:
回顾贝叶斯公式,对q(xt1xt,x0)改写,有:

(1)q(xt1xt,x0)=q(xtxt1,x0)q(xt1x0)q(xtx0)

由于Diffusion基于马尔可夫链建模,由马尔可夫性易知每个状态只依赖于前一个状态,故

q(xtxt1,x0)=q(xtxt1)

(1)式写作(2)式:

(2)q(xt1xt,x0)=q(xtxt1,x0)q(xt1x0)q(xtx0)=q(xtxt1)q(xt1x0)q(xtx0)

基于推导一的结论,易知:

q(xtx0)=N(α¯tx0,1α¯tI)q(xt1x0)=N(α¯t1x0,1α¯t1I)

由高斯分布的概率密度函数,对(2)展开,有:

(3)q(xt1xt,x0)=q(xtxt1)q(xt1x0)q(xtx0)exp(12((xtαtxt1)2βt+(xt1α¯t1x0)21α¯t1(xtα¯tx0)21α¯t))

不论是βt或是α¯t皆非随机变量,故可省略。最终目标是使用随机变量x0xt表示xt1。对(3)式继续展开,有(4)

(4)q(xt1xt,x0)=q(xtxt1)q(xt1x0)q(xtx0)exp(12((xtαtxt1)2βt+(xt1α¯t1x0)21α¯t1(xtα¯tx0)21α¯t))=exp(12(xt22αtxtxt1+αtxt12βt+xt122α¯t1x0xt1+α¯t1x021α¯t1(xtα¯tx0)21α¯t))=exp(12((αtβt+11α¯t1)xt12(2αtβtxt+2α¯t11α¯t1x0)xt1+C(xt,x0)))

其中,倒数第二个等号右边是对上一步的平方展开;最后一个等号右边是以xt1为变量,x0xt为参数,构造完全平方公式,以形成高斯分布概率密度函数中的指数部分,形如(xt1μt~)22βt~。因此,不难得出:

(5)μ~t=1αtβt+11α¯t1(αtβtxt+α¯t11α¯t1x0)=(1α¯t1)βtαt(1α¯t1)+βt(αtβtxt+α¯t11α¯t1x0)=(1α¯t1)αtαt(1α¯t1)+βtxt+α¯t1βtαt(1α¯t1)+βtx0

αt=1βt,故:

(6)αt(1α¯t1)+βt=αtαtα¯t1+βt=1βtαtα¯t1+βt=1αtα¯t1=1α¯t

(6)式代入(5),有:

μ~t(xt,x0):=α¯t1βt1α¯tx0+αt(1α¯t1)1α¯txt

对于β~t,有:

β~t=1αtβt+11α¯t1=(1α¯t1)βtαt(1α¯t1)+βt=1α¯t11α¯tβt

以上内容即DDPM中一些被省略的数学推导。

Papers

  1. Deep unsupervised learning using nonequilibrium thermodynamics, 2015.
  2. Denoising diffusion probabilistic models, 2020.
  3. Improved denoising diffusion probabilistic models, 2021.
posted @   小王点点  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
历史上的今天:
2020-02-25 如何利用dokcer提交我的比赛代码
点击右上角即可分享
微信分享提示