Crd233's Notebook
Home
Courses
Languages
Math
CG
CV
AI
Reading
其它
— order: 4 —
1
DDIM
●
原论文
Denoising Diffusion Implicit Models
●
时间:
2020.10.6
●
参考
1.
一文读懂
DDIM
凭什么可以加速
DDPM
的采样效率
2.
生成扩散模型漫谈(四):
DDIM =
高观点
DDPM By
苏剑林
1.1
Key Insights
●
先回顾
DDPM
的推导路线
𝑝
(
𝒙
𝑡
|
𝒙
𝑡
−
1
)
⟶
推导
𝑝
(
𝒙
𝑡
|
𝒙
0
)
⟶
推导
𝑝
(
𝒙
𝑡
−
1
|
𝒙
𝑡
,
𝒙
0
)
⟶
近似
𝑝
(
𝒙
𝑡
−
1
|
𝒙
𝑡
)
●
然而实质上我们只用到
损失函数只依赖于
𝑝
(
𝒙
𝑡
|
𝒙
0
)
采样过程只依赖于
𝑝
(
𝒙
𝑡
−
1
|
𝒙
𝑡
)
●
能否只依赖边缘分布
𝑝
(
𝒙
𝑡
|
𝒙
0
)
进行推导得到
𝑝
(
𝒙
𝑡
−
1
|
𝒙
𝑡
,
𝒙
0
)
?
○
从贝叶斯定理的角度,似乎无法做到
𝑝
(
𝒙
𝑡
−
1
|
𝒙
𝑡
,
𝒙
0
)
=
𝑝
(
𝒙
𝑡
|
𝒙
𝑡
−
1
)
𝑝
(
𝒙
𝑡
−
1
|
𝒙
0
)
𝑝
(
𝒙
𝑡
|
𝒙
0
)
○
但既然它是个边际分布,就可以列出新的方程,用原论文中的
数学归纳法
也好,用
待定系数法
求也罢,推出
𝑝
(
𝒙
𝑡
−
1
|
𝒙
𝑡
,
𝒙
0
)
∫
𝑝
(
𝒙
𝑡
−
1
|
𝒙
𝑡
,
𝒙
0
)
𝑝
(
𝒙
𝑡
|
𝒙
0
)
d
𝒙
𝑡
=
𝑝
(
𝒙
𝑡
−
1
|
𝒙
0
)
■
具体推导过程,可以看
DDIM =
高观点
DDPM By
苏剑林
○
摈弃
𝑝
(
𝒙
𝑡
|
𝒙
𝑡
−
1
)
有什么用?实质上是抛开了马尔可夫链的假设,构造了实向量
𝝈
∈
ℝ
𝑇
⩾
0
索引的推断分布族
𝒬
下的分布
𝑞
𝝈
(
𝒙
𝑡
−
1
|
𝒙
𝑡
,
𝒙
0
)
=
𝒩
(
𝒙
𝑡
−
1
;
√
𝛼
𝑡
−
1
𝒙
0
+
√
1
−
𝛼
𝑡
−
1
−
𝜎
2
𝑡
⋅
𝒙
𝑡
−
√
𝛼
𝑡
𝒙
0
√
1
−
𝛼
𝑡
,
𝜎
2
𝑡
𝑰
)
𝒙
𝑡
−
1
=
√
𝛼
𝑡
−
1
𝒙
0
+
√
1
−
𝛼
𝑡
−
1
−
𝜎
2
𝑡
⋅
𝒙
𝑡
−
√
𝛼
𝑡
𝒙
0
√
1
−
𝛼
𝑡
+
𝜎
𝑡
𝜀
■
人话讲就是我们手动构造了一个分布,且这一分布有
𝑇
个自由参数
𝜎
1
,
𝜎
2
,
⋯
,
𝜎
𝑇
,这些参数控制了条件分布
𝑞
𝝈
(
𝒙
𝑡
−
1
|
𝒙
𝑡
,
𝒙
0
)
的方
差,从而影响了逆过程的随机性
用苏剑林的比喻,就是我们知道楼会被拆成什么样
𝑝
(
𝒙
𝑡
|
𝒙
0
)
、
𝑝
(
𝒙
𝑡
−
1
|
𝒙
0
)
,但是不知道每一步怎么拆
𝑝
(
𝒙
𝑡
|
𝒙
𝑡
−
1
)
,然后推导出
在知道楼长什么样前提下每一步怎么建(以
𝝈
为指导)
𝑞
𝝈
(
𝒙
𝑡
−
1
|
𝒙
𝑡
,
𝒙
0
)
,希望能够从中学会每一步怎么建
𝑝
(
𝒙
𝑡
−
1
|
𝒙
𝑡
)
,甚至更
进一步能够跳步(见后面
小节
1.3
)
●
后面的步骤就和
DDPM
几乎一致了
○
记
𝑓
𝜃
(
𝒙
𝑡
,
𝑡
)
表示对
𝒙
0
的预测,从
𝑞
𝝈
(
𝒙
𝑡
−
1
|
𝒙
𝑡
,
𝒙
0
)
预测替换
𝒙
0
得到
𝑝
𝝈
,
𝜃
(
𝒙
𝑡
−
1
|
𝒙
𝑡
)
𝑝
𝝈
,
𝜃
(
𝒙
𝑡
−
1
|
𝒙
𝑡
)
=
{
𝒩
(
𝒙
0
;
𝑓
𝜃
(
𝒙
𝑡
,
𝑡
)
,
𝜎
2
𝑡
𝑰
)
if
𝑡
=
1
𝑞
𝝈
(
𝒙
𝑡
−
1
|
𝒙
𝑡
,
𝑓
𝜃
(
𝒙
𝑡
,
𝑡
)
)
otherwise
𝑝
𝝈
,
𝜃
(
𝒙
𝑡
−
1
|
𝒙
𝑡
)
=
𝒩
(
𝒙
𝑡
−
1
;
√
𝛼
𝑡
−
1
⋅
𝒙
𝑡
−
√
1
−
𝛼
𝑡
𝜀
𝜃
(
𝒙
𝑡
)
√
𝛼
𝑡
+
√
1
−
𝛼
𝑡
−
1
−
𝜎
2
𝑡
⋅
𝜀
𝜃
(
𝒙
𝑡
)
,
𝜎
2
𝑡
𝑰
)
𝒙
𝑡
−
1
=
√
𝛼
𝑡
−
1
⋅
𝒙
𝑡
−
√
1
−
𝛼
𝑡
𝜀
𝜃
(
𝒙
𝑡
)
√
𝛼
𝑡
⏟
⏟
⏟
⏟
⏟
⏟
⏟
⏟
⏟
对
𝒙
0
的预测
+
√
1
−
𝛼
𝑡
−
1
−
𝜎
2
𝑡
⋅
𝜀
𝜃
(
𝒙
𝑡
)
⏟
⏟
⏟
⏟
⏟
⏟
⏟
⏟
⏟
⏟
⏟
指向
𝒙
𝑡
的方向
+
𝜎
𝑡
𝜀
⏟
随机噪声
○
带入
VLB
各项得到优化目标(
≡
符号表示略去跟
𝜀
𝜃
无关的常数)
ℒ
𝑡
−
1
≡
𝔼
𝒙
0
∼
𝑞
(
𝒙
0
)
,
𝜀
∼
𝒩
(
0
,
1
)
[
1
2
𝜎
2
𝑡
‖
̃
𝜇
(
𝒙
𝑡
,
𝒙
𝑡
)
−
𝜇
prev
𝑖
(
𝒙
𝑡
,
𝑡
)
‖
2
2
]
=
𝔼
𝒙
0
∼
𝑞
(
𝒙
0
)
,
𝜀
∼
𝒩
(
0
,
1
)
[
[
[
[
(
√
𝛼
𝑡
−
1
−
√
1
−
𝛼
𝑡
−
1
−
𝜎
2
𝑡
√
𝛼
𝑡
√
1
−
𝛼
𝑡
)
2
2
𝜎
2
𝑡
‖
𝒙
0
−
𝑓
𝜃
(
𝑡
,
𝑡
)
‖
2
2
]
]
]
]
=
𝔼
𝒙
0
∼
𝑞
(
𝒙
0
)
,
𝜀
∼
𝒩
(
0
,
1
)
[
[
[
[
(
√
𝛼
𝑡
−
1
−
√
1
−
𝛼
𝑡
−
1
−
𝜎
2
𝑡
√
𝛼
𝑡
√
1
−
𝛼
𝑡
)
2
(
1
−
𝛼
𝑡
)
2
𝜎
2
𝑡
𝛼
𝑡
‖
𝜀
−
𝜀
𝜃
(
𝒙
𝑡
,
𝑡
)
‖
2
2
]
]
]
]
ℒ
0
≡
𝔼
𝒙
0
∼
𝑞
(
𝒙
0
)
,
𝜀
∼
𝒩
(
0
,
1
)
[
−
log
𝑝
𝜃
(
𝒙
0
|
𝒙
1
)
]
=
𝔼
𝒙
0
∼
𝑞
(
𝒙
0
)
,
𝜀
∼
𝒩
(
0
,
1
)
[
−
𝑑
log
1
√
2
𝜋
𝜎
2
1
+
1
2
𝜎
2
1
‖
𝒙
0
−
𝑓
𝜃
(
𝒙
1
,
1
)
‖
2
2
]
≡
𝔼
𝒙
0
∼
𝑞
(
𝒙
0
)
,
𝜀
∼
𝒩
(
0
,
1
)
[
1
2
𝜎
2
1
‖
𝒙
0
−
𝑓
𝜃
(
𝒙
1
,
1
)
‖
2
2
]
=
𝔼
𝒙
0
∼
𝑞
(
𝒙
0
)
,
𝜀
∼
𝒩
(
0
,
1
)
[
1
−
𝛼
𝑡
2
𝜎
2
1
𝛼
𝑡
‖
𝜀
−
𝜀
𝜃
(
𝒙
1
,
1
)
‖
2
2
]
好像没法像原论文那样整合到一个
𝒥
𝝈
里去。但原论文这里的推导感觉很奇怪,反正我推不出来,感觉是为了凑到一个形式改
了系数?但网上没看到有人说,是我犯傻了吗?
■
回忆
DDPM
的损失函数
ℒ
DDPM
𝑡
−
1
=
𝔼
𝑞
(
𝒙
𝑡
|
𝒙
0
)
[
(
1
−
𝛼
𝑡
)
2
2
̃
𝜎
2
𝑡
𝛼
𝑡
(
1
−
𝛼
𝑡
)
‖
𝜀
𝜃
(
𝒙
𝑡
,
𝑡
)
−
𝜀
𝑡
‖
2
2
]
■
但总之,通过控制系数里面的
𝜎
𝑡
,我们可以推出
DDIM
与
DDPM
在某个
𝝈
设置下的共同性。
小节
1.2
将验证这一点
令
𝛾
𝑡
≔
(
√
𝛼
𝑡
−
1
−
√
1
−
𝛼
𝑡
−
1
−
𝜎
2
𝑡
√
𝛼
𝑡
√
1
−
𝛼
𝑡
)
2
(
1
−
𝛼
𝑡
)
2
𝜎
2
𝑡
𝛼
𝑡
=
(
1
−
𝛼
𝑡
)
2
2
̃
𝜎
2
𝑡
𝛼
𝑡
(
1
−
𝛼
𝑡
)
ℒ
𝛾
𝑡
𝑡
−
1
=
ℒ
DDPM
𝑡
−
1
+
𝐶
1.2
方差选取
●
前面说到,这个方差其实是可以随便控制的,我们来看两种特殊的例子
𝜎
𝑡
=
√
1
−
𝛼
𝑡
−
1
1
−
𝛼
𝑡
𝛽
𝑡
=
√
1
−
𝛼
𝑡
−
1
1
−
𝛼
𝑡
⋅
(
1
−
𝛼
𝑡
)
①
𝜎
𝑡
=
0
②
●
第一个例子
○
DDPM
采取方差
̃
𝜎
𝑡
=
√
1
−
𝛼
𝑡
−
1
1
−
𝛼
𝑡
𝛽
𝑡
版本(也就是
DDIM
用跟
DDPM
同方差,能推出二者的一致性),那么目标就是
𝛾
𝑡
=
1
−
𝛼
𝑡
2
𝛼
𝑡
(
1
−
𝛼
𝑡
−
1
)
○
我们将
DDIM
上述方差带入式子,首先来看较难化简的
√
1
−
𝛼
𝑡
−
1
−
𝜎
2
𝑡
√
1
−
𝛼
𝑡
−
1
−
𝜎
2
𝑡
=
√
1
−
𝛼
𝑡
√
1
−
𝛼
𝑡
√
1
−
𝛼
𝑡
−
1
−
1
−
𝛼
𝑡
−
1
1
−
𝛼
𝑡
(
1
−
𝛼
𝑡
)
=
√
(
1
−
𝛼
𝑡
)
(
1
−
𝛼
𝑡
−
1
)
(
1
−
1
−
𝛼
𝑡
1
−
𝛼
𝑡
)
√
1
−
𝛼
𝑡
=
√
(
1
−
𝛼
𝑡
−
1
)
(
1
−
𝛼
𝑡
−
(
1
−
𝛼
𝑡
)
)
√
1
−
𝛼
𝑡
=
(
1
−
𝛼
𝑡
−
1
)
√
𝛼
𝑡
√
1
−
𝛼
𝑡
○
于是
𝛾
𝑡
=
(
√
𝛼
𝑡
−
1
−
(
1
−
𝛼
𝑡
−
1
)
√
𝛼
𝑡
𝛼
𝑡
1
−
𝛼
𝑡
)
2
(
1
−
𝛼
𝑡
)
2
𝛼
𝑡
1
−
𝛼
𝑡
−
1
1
−
𝛼
𝑡
(
1
−
𝛼
𝑡
)
=
(
√
𝛼
𝑡
−
1
(
1
−
𝛼
𝑡
)
−
(
1
−
𝛼
𝑡
−
1
)
√
𝛼
𝑡
𝛼
𝑡
)
2
2
𝛼
𝑡
(
1
−
𝛼
𝑡
−
1
)
(
1
−
𝛼
𝑡
)
=
𝛼
𝑡
−
1
(
(
1
−
𝛼
𝑡
)
−
𝛼
𝑡
(
1
−
𝛼
𝑡
−
1
)
)
2
2
𝛼
𝑡
(
1
−
𝛼
𝑡
−
1
)
(
1
−
𝛼
𝑡
)
=
(
1
−
𝛼
𝑡
)
2
2
𝛼
𝑡
(
1
−
𝛼
𝑡
−
1
)
(
1
−
𝛼
𝑡
)
=
1
−
𝛼
𝑡
2
𝛼
𝑡
(
1
−
𝛼
𝑡
−
1
)
○
以上我们从损失函数出发,推导出在这种方差设置下
DDIM
与
DDPM
的一致性(实际上,因为方差是已知相等的,直接用均值相等
来推导会更快)
○
论文作者实际上对
𝜎
𝑡
=
𝜂
√
1
−
𝛼
𝑡
−
1
1
−
𝛼
𝑡
𝛽
𝑡
,
𝜂
∈
[
0
,
1
]
做了对比实验
●
第二个例子
○
方差为零,则
𝒙
𝑡
到
𝒙
𝑡
−
1
是一个确定性变换,从
𝒙
𝑇
=
𝒛
出发得到
𝒙
0
是不带随机性的
𝒙
𝑡
−
1
=
√
𝛼
𝑡
−
1
⋅
𝒙
𝑡
−
√
1
−
𝛼
𝑡
𝜀
𝜃
(
𝒙
𝑡
)
√
𝛼
𝑡
+
√
1
−
𝛼
𝑡
−
1
−
𝜎
2
𝑡
⋅
𝜀
𝜃
(
𝒙
𝑡
)
○
这才是论文
DDIM
的
Implicit
含义,变成一个
deterministic
的隐式分布。因此
DDIM
其实并不是一个模型,只是一个特殊的采样方
式
○
我们可以认为此时的
𝑥
𝑇
就是一个
high-level
的图像编码向量,里面可能蕴涵了大量的信息特征,也许可以用于其他下游任务
○
最后,作者论述了当
𝜂
=
0
时,上式可以写成常微分方程的形式,因此可以理解为模型是在用欧拉法近似从
𝑥
0
到
𝑥
𝑇
的编码函数
○
此外,这种确定性变换已经跟
GAN
几乎一致了,与
GAN
类似,我们可以对噪声向量进行插值,然后观察对应的生成效果
■
但
DDPM
或
DDIM
对噪声分布都比较敏感,所以我们不能用线性插值而要用球面插值。因为如果
𝒛
1
,
𝒛
2
∼
𝒩
(
𝟎
,
𝑰
)
,叠加的
𝜆
𝒛
1
+
(
1
−
𝜆
)
𝒛
2
一般就不服从
𝒩
(
𝟎
,
𝑰
)
,要改为
𝒛
=
𝒛
1
cos
𝜆
𝜋
2
+
𝒛
2
sin
𝜆
𝜋
2
,
𝜆
∈
[
0
,
1
]
1.3
加速采样
●
DDIM
的推导不依赖马尔可夫性质,抛开马尔可夫性质可以改写成
𝑞
𝝈
,
𝜃
(
𝑥
prev
|
𝑥
next
)
=
𝒩
(
𝑥
prev
;
√
𝛼
prev
⋅
𝑥
next
−
√
1
−
𝛼
next
𝜀
𝜃
(
𝑥
next
)
√
𝛼
next
+
√
1
−
𝛼
prev
−
𝜎
2
next
⋅
𝜀
𝜃
(
𝑥
next
)
,
𝜎
2
next
𝑰
)
𝑥
prev
=
√
𝛼
prev
⋅
𝑥
next
−
√
1
−
𝛼
next
𝜀
𝜃
(
𝑥
next
)
√
𝛼
next
+
√
1
−
𝛼
prev
−
𝜎
2
next
⋅
𝜀
𝜃
(
𝑥
next
)
+
𝜎
next
𝜀
○
于是就可以从时间序列
{
0
,
…
,
𝑇
}
中随机取一个长度为
𝑙
的升序子序列,通过上式迭代采样
𝑙
次最终得到我们想要的
𝑥
0
●
复用
DDPM
○
注意到
DDPM
的训练结果实质上包含了它的任意子序列参数的训练结果,并且
DDIM
训练过程中
𝝈
的设置不影响边界分布
𝑥
𝑇
=
√
𝛼
𝑇
𝒙
0
+
√
1
−
𝛼
𝑇
𝜀
○
因此二者的训练实际上是共通的!训练好的
DDPM
可以直接拿来通过
DDIM
的采样方法进行采样,不需要再去训练一次
○
为什么干脆不直接训练一个
𝑙
步的扩散模型,而是要先训练
𝑇
>
𝑙
步然后去做子序列采样?按苏剑林的说法,一方面从
𝑙
步生成来
说,训练更多步数的模型也许能增强泛化能力;另一方面,通过子序列进行加速只是其中一种加速手段,训练更充分的
𝑇
步允许我
们尝试更多的其他加速手段,但并不会显著增加训练成本
1.4
总结
●
DDIM
是
DDPM
的高观点回顾,完全摈弃了单步加噪
𝑞
(
𝒙
𝑡
|
𝒙
𝑡
−
1
)
的方式,从而不再限制扩散过程必须是一个马尔可夫链。从这个角度
利用边缘分布
𝑞
(
𝒙
𝑡
|
𝒙
0
)
推导出比
DDPM
更一般的式子,并顺便解决
DDPM
推理慢的问题,用小采样步数加速生成过程
●
近两年论文其实用的并不多
2
IDDPM
●
原论文
Improved Denoising Diffusion Probabilistic Models
●
时间:
2021.2.18
2.1
Motivation & Insights
●
虽然
DDPM
在生成任务上取得了不错的效果,但如果使用一些
metric
对
DDPM
进行评价,就会发现其虽然在
FID
和
IS
指标上效果
不错,但在负对数似然
(
Negative Log-likelihood
,
NLL)
上表现不够好
○
根据
VQ-VAE2
文章中的观点,
NLL
体现的是模型捕捉数据整体分布的能力,迫使生成模型拟合数据分布的所有模式。有工作表明
即使在
NLL
指标上仅有微小的提升,就会在生成效果和特征表征能力上有很大的提升
●
Improved DDPM
主要是针对
DDPM
的训练过程进行改进,主要从两个方面:
1.
固定方差改为可学习方差;
2.
改进加噪过程,使用余弦形式的
Scheduler
,
而不是线性
Scheduler
2.2
可学习的方差
●
首先我们知道
DDPM
中采用跟
𝑡
有关的固定方差,可以是
̃
𝛽
𝑡
=
1
−
𝛼
𝑡
−
1
1
−
𝛼
𝑡
𝛽
𝑡
或者
𝛽
𝑡
,效果区别不大
○
这两种方差的设置刚好是假设数据集分布为狄拉克函数和标准正态分布的两种极端情况
○
这里首先分析了为什么会出现这种情况:因为随着
𝑡
的增大,
̃
𝛽
𝑡
𝛽
𝑡
趋近于
1
,在大部分采样时刻二者近似相等;并且总步数越大,这
个差异越不明显。如下左图
○
这么看来方差的设置不太重要?尤其是在采样步数增大以后,基本完全取决于均值
𝜇
𝜃
(
𝒙
𝑡
,
𝑡
)
而非方差
Σ
𝜃
(
𝒙
𝑡
,
𝑡
)
,至少两种固定方差
对最终结果影响不大
○
但我们换一种视角,从对
NLL
的数值贡献上来看,如上右图,最初的几步扩散对
VLB
的影响是最大的。换句话说,对
NLL
的增大
而言,
Σ
𝜃
(
𝒙
𝑡
,
𝑡
)
依然有一定作用。于是作者做了如下设置
Σ
𝜃
(
𝒙
𝑡
,
𝑡
)
=
exp
(
𝑣
log
𝛽
𝑡
+
(
1
−
𝑣
)
log
̃
𝛽
𝑡
)
𝑰
■
其中
𝑣
是可学习参数,也就是在对数层面进行
𝛽
𝑡
,
̃
𝛽
𝑡
的插值
■
之所以用插值的形式,是因为如前所述
𝛽
𝑡
,
̃
𝛽
𝑡
的差异(变化范围)非常小,从数值精度上就不适合神经网络学习;同时,插值的
形式也符合对两个极端的认识
■
这里我们没有对
𝑣
的范围进行限制,所以理论上模型可以学习到任意范围的方差值,但在实验中并未观察到模型学习到超出插值
范围的方差的情况
○
DDPM
的损失函数
𝐿
simple
与
Σ
𝜃
(
𝒙
𝑡
,
𝑡
)
无关,所以肯定要做修改,这部分留到后面介绍
2.3
余弦调度器
●
DDPM
使用线性的
𝛽
𝑡
超参规划,对于高分辨率图像效果还行,但对低分辨率的图像表现不佳
○
为什么?因为
DDPM
前向加噪时,
𝛽
𝑡
是从一个较小值逐渐增大,如果最开始的时候加入很大的噪声,会严重破坏图像信息,不利
于图像的学习。对于低分辨率图像尤其严重,因为包含的信息本身就不多,加噪太快使得细节丢失太快
○
回忆原本的超参设置,
𝑇
=
1
0
0
0
,
𝛽
𝑡
从
𝛽
1
=
1
0
−
4
到
𝛽
𝑇
=
0
.
0
2
线性变化,大致上可以表示为
𝛼
𝑡
=
1
−
𝛽
𝑡
=
1
−
0
.
0
2
𝑡
𝑇
,
𝛼
𝑡
=
∏
𝑡
𝑖
=
1
𝛼
𝑖
●
现在我们设置如下
𝛼
𝑡
=
𝑓
(
𝑡
)
𝑓
(
0
)
,
𝑓
(
𝑡
)
=
cos
(
𝑡
/
𝑇
+
𝑠
1
+
𝑠
⋅
𝜋
2
)
2
○
除此之外设计这个
schedule
的时候作者也有一些比较细节的考虑,比如选取一个比较小的偏移量
𝑠
=
8
×
1
0
−
3
,防止
𝛽
𝑡
在
𝑡
=
0
附近过小,并且将
𝛽
𝑡
裁剪到
0
.
9
9
9
来防止
𝑡
=
𝑇
附近出现奇异点
■
𝑠
的数值来自希望使
√
𝛽
0
略小于像素区间大小
1
/
1
2
7
.
5
○
这个
schedule
在
𝑡
=
0
和
𝑡
=
𝑇
附近都变化比较小,而在中间有一个接近于线性的下降过程,同时可以发现
cosine schedule
使图
片能够在中间地带还能保持一个比较好的图片细节,最终
FID
指标也有所上升
2.4
训练过程
●
最终训练使用的损失是两项损失的加权
ℒ
hybrid
=
ℒ
simple
+
𝜆
ℒ
VLB
○
ℒ
simple
是
DDPM
简化
(
reweight)
后的损失函数,
ℒ
VLB
是推导中用的标准变分下界
○
前者与
Σ
𝜃
(
𝒙
𝑡
,
𝑡
)
无关,后者用
𝜆
=
1
×
1
0
−
3
权重避免喧宾夺主,且对
ℒ
VLB
中的均值项
𝜇
𝜃
(
𝒙
𝑡
,
𝑡
)
进行
stop-gradient
(
只影响方差)
●
随后作者发现直接的
ℒ
VLB
很难优化
⟶
resample
○
作者分析认为这是因为不同时间步的
VLB
损失大小不一(也就是上边那个损失曲线),导致
ℒ
VLB
的梯度比较
noisy
○
回忆
DDPM
的
ℒ
simple
,虽然方差和均值的设置不一样,但损失贡献不一致的问题是一样的,对此
DDPM
采用
reweight
解决,同时
也时损失函数更加简单
○
作者这里采用了不同的方法,称为
重要性采样
ℒ
VLB
=
𝔼
𝑡
∼
𝑝
𝑡
[
𝐿
𝑡
𝑝
𝑡
]
,
where
𝑝
∝
√
𝔼
[
𝐿
2
𝑡
]
and
∑
𝑝
𝑡
=
1
■
根据
𝑡
在之前采出的
loss
值的平方
𝐿
2
𝑡
(会随着每次采样计算出的
loss
值而动态更新)确定采样分布
■
具体方法是先对每个
𝑡
都采样
1
0
次,选用平均值作为
𝐿
𝑡
,然后作为权重进行重要性采样,每次采样后都用计算出的
loss
去更新
对应平均值
3
Analytic-DPM & Extended-Analytic-DPM
●
其实
IDDPM
的做法算比较简单的,后续还有一些对方差的改进,比如
1.
Analytic-DPM: an Analytic Estimate of the Optimal Reverse Variance in Diffusion Probabilistic Models
(2022.1.17)
2.
Estimating the Optimal Covariance with Imperfect Mean in Diffusion Probabilistic Models
(2022.6.15)
○
还是看苏剑林的博客吧
生成扩散模型漫谈(七):最优扩散方差估计(上)
、
生成扩散模型漫谈(八):最优扩散方差估计
(下)