Denoising Diffusion Implicit Models

Song J., Meng C. and Ermon S. Denoising diffusion implicit models. In International Conference on Learning Representations (ICLR), 2021.

DDIM 从另一种观点 理解 DDPM, 并以此推导出更加快速的采样方式.

Motivation

  • DPM 的前向过程一般是:

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

  • 通过 q(xt|xt1) 我们可以得到

    q(xt|x0)=N(xt;α¯tx0,(1α¯t)I),α¯t=τ=1tατ,ατ:=1βτ.

  • 然后结合二者, 我们可以通过贝叶斯公式得到:

    (1)q(xt1|xt,x0)=q(xt|xt1)q(xt1|x0)q(xt|x0)=N(xt;α¯t1(1αt)z0+αt(1α¯t1)zt1α¯t,(1αt)(1αt1¯)1αt¯I).

  • 根据 这儿 我们知道, 实际上, 我们要做的就是建模 pθ(xt1|xt) 来近似 (1):

    (2)=Eq(x1|x0)[logp(x0|x1;θ)]L1 reconstruction termKL(q(xT|x0)p(xT))L0 prior matching term t=2TEq(xt|x0){KL(q(xt1|xt,x0)p(xt1|xt;θ)}L2:T consistency term 

  • 更特别地, 现在 DDPM 更习惯用一种更为简单的形式 (忽略系数):

    Eq(xt|x0){ϵθ(xt,t)ϵt2},

    或者

    Eq(xt|x0){xθ(xt,t)xt2}.

  • 现在问题来了, 此时我们只要知道 q(xt|x0) 就可以了, 该问题就可以求解了, 完全没必要按照 q(xt|xt1)q(xt|x0)q(xt1|xt,x0) 的流程一步一步来. 我们可以:

    1. 先假定:

    q(xt|x0)=N(xt;α¯tx0,(1α¯t)I),

    1. 假设:

    q(xt1|xt,x0)=N(xt1;κtxt+λtx0,σt2I),

    且待定系数 κ,λ,σ 应当使得关系

    (3)xtq(xt1|xt,x0)q(xt|x0)=q(xt1|x0)

    成立.

  • 首先, 容易观察到按照 xtq(xt|x0),xt1q(xt1|x,x0) 得到的 xt1 满足:

    xt1=κtxt+λtx0+σtϵ=κt[α¯tx0+(1α¯t)ϵ]+λtx0+σtϵ=(κtα¯t+λt)x0+κt2(1α¯t)+σt2ϵN(xt1;(κtα¯t,+λt)x0,κt2(1α¯t)+σt2I).

  • 所以, 为了保证 (3) 严格成立, 需要

    κtα¯t+λt=α¯t1,κt2(1α¯t)+σt2=1α¯t1.

  • 三个未知参数, 两个方差, 将 σt 看成可变参数, 可得:

    λt=α¯t1α¯t1α¯t1σt21α¯t,κt=1α¯t1σt21α¯t.

  • 此时:

    qσ(xt1|xt,x0)=N(α¯t1x0+1α¯t1σt2xtα¯tx01α¯t,σt2I).

  • 于是, 我们可以通过控制 σt 来获得更多的可能性 (DDPM 可以看成是一个特例), 当然, 我们的近似 pθ(xt1|xt) 也要相应的改变:

    pσ(xt1|xt)=N(α¯t1xθ(xt,t)+1α¯t1σt2xtα¯txθ(xt,t)1α¯t,σt2I).

  • 不过, 因为我们在训练的时候一般用的是简化的损失, 所以实际上即使我们用了不同的 σt, 最后的简化的损失也依旧会退化为 DDPM 所用的简化损失的形式. 这意味着, 我们采用一般的 DDPM 的损失训练最优后, 对于其它 σt 的损失也是最优的 (理想情况下). 于是, 这意味着我们才反向采样的时候可以依赖任意的 σt !

  • 我们可以发现, 反向采样过程为:

    xt1α¯t1xθ(xt,t)+1α¯t1σt2xtα¯txθ(xt,t)1α¯t+σtϵt.

  • 原先采样需要严格按照 [1,,T] 的倒序, 现在我们可以用一个 sub-sequence [τ1,,ττS] 来替代. 此时我们实际上假设我们的前向是服从:

    q(xτi|x0)=N(α¯τix0,(1α¯τi)I),

    此时我们的推导依旧是成立的. 但是我们可以用更少的次数采样.

  • 当然, 此时, 有一些需要注意的点:

    1. 用更少的次数采样, 容易造成图像产生更多的噪声;
    2. 此时用更小的 σt 可以缓解这一问题.
  • 实际上, DDIM 所介意的是 σt=0.

代码

official

posted @   馒头and花卷  阅读(218)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2021-03-07 Chapter 11 Why Model ?
2021-03-07 Chapter 10 Random Variability
点击右上角即可分享
微信分享提示