一文读懂DDPM的所有关键点与关键思想

1. 前向过程

在DDPM中,前向过程指的是由干净图片 x 0 x_0 x0开始按照一定的原则添加噪声,直到得到噪声图片 x T x_T xT的过程。该过程通常视为一个马尔可夫链这个添加噪声的规则是我们已知的,其可由状态从 x t − 1 x_{t-1} xt1 x t x_t xt 的转换描述,即前向分布 q ϕ ( x t ∣ x t − 1 ) q_\phi(x_t | x_{t-1}) qϕ(xtxt1),是一个高斯分布:

q ϕ ( x t ∣ x t − 1 ) ≜ N ( x t ∣ α t x t − 1 , ( 1 − α t ) I ) q_\phi(x_t | x_{t-1}) \triangleq \mathcal{N}(x_t | \sqrt{\alpha_{t}} x_{t-1}, (1 - \alpha_{t}) I) qϕ(xtxt1)N(xtαt xt1,(1αt)I)

其中, α t \alpha_{t} αt 是一个预先确定的系数,代表从 x t − 1 x_{t-1} xt1 x t x_t xt 的状态变化的扩散程度。 I I I 表示单位矩阵,是分布的协方差矩阵。所以说,整个前向过程都是已知的,并不含有任何未知的参数或过程。

条件分布 q ϕ ( x t ∣ x 0 ) q_\phi(x_t | x_0) qϕ(xtx0)

条件分布 q ϕ ( x t ∣ x 0 ) q_\phi(x_t | x_0) qϕ(xtx0) 描述了在给定初态 x 0 x_0 x0 的情况下,时间步 t t t 时的状态 x t x_t xt 的分布。这一条件分布是前向分布 q ϕ ( x t ∣ x t − 1 ) q_\phi(x_t | x_{t-1}) qϕ(xtxt1)推导出的,其具体形式为:

q ϕ ( x t ∣ x 0 ) = N ( x t ∣ α ˉ t x 0 , ( 1 − α ˉ t ) I ) q_\phi(x_t | x_0) = \mathcal{N}(x_t | \sqrt{\bar\alpha_t} x_0, (1 - \bar\alpha_t) I) qϕ(xtx0)=N(xtαˉt x0,(1αˉt)I)

其中, α ˉ t \bar\alpha_t αˉt 是直到时间 t t t 的所有扩散步骤的系数乘积,定义为:

α ˉ t = ∏ i = 1 t α i \bar\alpha_t = \prod_{i=1}^t \alpha_i αˉt=i=1tαi

2. 后向过程

DDPM中,后向过程描述的是由 x T x_T xT 生成 x T − 1 x_{T-1} xT1 ,并最终得到图片 x 0 x_0 x0 的过程。该过程也通常视为一个马尔可夫链。在这个过程中训练得到的参数 θ \theta θ 扮演了至关重要的角色,因为它们蕴含了训练阶段从图片中学到的关键特征。这些参数定义了条件分布 q θ ( x t − 1 ∣ x t ) q_\theta(x_{t-1} | x_t) qθ(xt1xt)这是一个神经网络,负责在后向过程中指导每一步的图像生成。注意,参数 θ \theta θ 是未知的,需要经过训练得到的。
后向过程的意义在于,它使用这些训练过程中学习到的特征(保存在 θ \theta θ 中)来逐步从纯噪声状态 x T x_T xT 推断并重建出原始图像 x 0 x_0 x0这意味着后向过程实际上是利用神经网络模型逆转扩散过程,从而将噪声“还原”为具有特定特征的目标图像。通过这种方式,DDPM能够生成高质量、具有高度细节和准确性的图像。

3. 证据下界(ELBO)

在DDPM中,训练的核心目标是最大化证据下界ELBO,其表达式如下:

ELBO ϕ , θ ( x ) = E q ϕ ( x 1 ∣ x 0 ) [ log ⁡ p θ ( x 0 ∣ x 1 ) ] − E q ϕ ( x T − 1 ∣ x 0 ) [ D K L ( q ϕ ( x T ∣ x T − 1 ) ∥ p ( x T ) ) ] − ∑ t = 1 T − 1 E q ϕ ( x t − 1 , x t + 1 ∣ x 0 ) [ D K L ( q ϕ ( x t ∣ x t − 1 ) ∥ p θ ( x t ∣ x t + 1 ) ) ] \text{ELBO}_{\phi,\theta}(\mathbf{x}) = \mathbb{E}_{q_\phi(x_1 | x_0)} \left[ \log p_\theta(x_0 | x_1) \right] - \mathbb{E}_{q_\phi(x_{T-1} | x_0)} \left[ \text{D}_{KL}\left( q_\phi(x_T | x_{T-1}) \parallel p(x_T) \right) \right] - \sum_{t=1}^{T-1} \mathbb{E}_{q_\phi(x_{t-1}, x_{t+1} | x_0)} \left[ \text{D}_{KL}\left( q_\phi(x_t | x_{t-1}) \parallel p_\theta(x_t | x_{t+1}) \right) \right] ELBOϕ,θ(x)=Eqϕ(x1x0)[logpθ(x0x1)]Eqϕ(xT1x0)[DKL(qϕ(xTxT1)p(xT))]t=1T1Eqϕ(xt1,xt+1x0)[DKL(qϕ(xtxt1)pθ(xtxt+1))]
由于所有前向过程都是已知的,所以实际上 ϕ \phi ϕ并不需要考虑,但是我们仍然在有的地方保留来表明其是已知的前向过程。关于为什么要最大化ELBO,请查看第7小节。

3.1 ELBO的第一项 E q ϕ ( x 1 ∣ x 0 ) [ log ⁡ p θ ( x 0 ∣ x 1 ) ] \mathbb{E}_{q_\phi(x_1 | x_0)} \left[ \log p_\theta(x_0 | x_1) \right] Eqϕ(x1x0)[logpθ(x0x1)] :重建误差

目标:最大化这一项,让重建能力最强。
ELBO的第一项表示从 x 1 x_1 x1重建 x 0 x_0 x0的能力,通常被称为重建误差。这里, q ϕ ( x 1 ∣ x 0 ) q_\phi(x_1 | x_0) qϕ(x1x0)表示已知的前向过程,即在给定 x 0 x_0 x0的条件下生成 x 1 x_1 x1的分布。而 p θ ( x 0 ∣ x 1 ) p_\theta(x_0 | x_1) pθ(x0x1)则是需要通过训练优化的部分,由未知参数 θ \theta θ 描述。最大化这一项表示了在由 x 0 x_0 x0 生成的 x 1 x_1 x1 的情况下,尽可能精确地重建 x 0 x_0 x0

3.2 ELBO的第二项 − E q ϕ ( x T − 1 ∣ x 0 ) [ D K L ( q ϕ ( x T ∣ x T − 1 ) ∥ p ( x T ) ) ] - \mathbb{E}_{q_\phi(x_{T-1} | x_0)} \left[ \text{D}_{KL}\left( q_\phi(x_T | x_{T-1}) \parallel p(x_T) \right) \right] Eqϕ(xT1x0)[DKL(qϕ(xTxT1)p(xT))] x T x_T xT与先验的匹配

目标:最大化这一项,让前向过程得到的 x T x_T xT 与对 x T x_T xT 的先验估计最接近。
ELBO的第二项表示由 x T − 1 x_{T-1} x

  • 22
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"Faster"是一个英文单词,它的意思是更快的意思。在不同的背景下,它可以有不同的解释和应用。 在日常生活中,"faster"通常表示一个行动或者动作的速度比以往更快。例如,当我们走路、跑步、开车或者骑自行车时,我们可以尝试跑得更快或者骑得更快。这个词还可以用来形容物体的移动速度,比如火车、飞机或者摩托车的速度。此外,"faster"也可以用来描述人们的反应速度、思维速度或者学习速度等。 此外,在科技和互联网领域,"faster"也具有很重要的含义。随着科技的不断进步,人们追求更快的处理速度和传输速度。例如,我们常常会听到"更快的互联网连接"、"更快的计算机处理速度"、"更快的数据传输速度"等等。这些技术进步使得信息的获取和交流变得更加高效和便捷。 然而,在追求速度的同时,我们也要权衡速度和其他因素之间的平衡。有时候,过于追求速度可能会带来其他的负面影响,比如对安全性和质量的妥协。所以在实际应用中,需要综合考虑各种因素来确定速度的优先级。 总之,"faster"是一个多功能的词,可以用来描述日常生活中的行动速度,物体的移动速度,人们的思维或者学习速度,以及科技领域的处理速度和传输速度等等。同时,我们也要在追求速度的过程中,平衡各种因素并合理使用这个词。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值