Denoising Diffusion Probabilistic Models 阅读笔记


Denoising Diffusion Probabilistic Models 阅读笔记

论文题目:Denoising Diffusion Probabilistic Models

发表时间:2020

发表期刊/会议:NIPS 期刊 CCF-A
论文作者:Jonathan Ho et al.

1. 内容简介

介绍扩散模型的基本内容。参考”Understanding Diffusion Models: A Unified Perspective”

2. 主要内容

2.1 理论基础

扩散模型将模型的训练过程分为加噪过程和去噪过程。加噪过程需要在原始的图像$x_0$上添加T次高斯噪声形成一个纯噪声图像$x_T$,这个过程和模型无关。去噪过程可以看成是加噪过程的逆过程,模型需要逐步预测噪声并在$x_T$上将这些噪声减去从而恢复出原始图像$x_0$。加噪过程和去噪过程都是马尔可夫过程。

加噪过程遵循状态转移方程$x_{t}=\sqrt{\alpha_t}x_{t-1}+\sqrt{\beta_t}\epsilon_t,\epsilon_t \sim \mathcal{N}(0,I)$ 其中$\alpha_t,\beta_t$都是预设的一组值,$\beta_t = 1-\alpha_t$ 。设$\bar{\alpha_t}=\prod_{i=1}^{i=t}\alpha_i$ ,$\bar{\beta_t}$同理。不断地迭代状态转移方程可以得到:

即$x_t$和$x_0$可以互相转化。

去噪过程是加噪过程的逆过程。由于模型对噪声建模比较容易,故去噪过程会让模型对第t步的噪声进行预测,再利用$x_t$和$x_{t-1}$的转移关系得到前一步图像。

下面介绍如何推导出模型的损失函数。参考论文”Understanding Diffusion Models: A Unified Perspective“进行讲解。
设加噪过程的状态转移服从分布$q(x_t|x_{t-1})$, 去噪过程的状态转移服从分布$p_\theta(x_{t-1}|x_t)$ 。我们的目标是模型经过t次的去噪后可以得到原始图像$x_0$,即:

贝叶斯展开得到:

取对数然后取期望:

由于KL散度恒大于等于0,故我们可以直接最大化下界$\mathbb{E}_{q(x_{1:T}|x_0)}\log\frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)}$。对当前结果取负值,即最小化$\mathbb{E}_{q(x_{1:T}|x_0)}-\log\frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)}$。

利用马尔可夫过程的无后效性,对分子分母分别进行展开:

得到:

由于:

上面这是咋想出来的步骤……倒推容易,正推是咋分析出来的

代入,裂项相消得到:

没看懂期望角标的变化。这个链接有一些推导但跟论文里的还不太一样

结果左项表示重构项,可以用蒙特卡罗方法近似优化。中间项和模型参数无关,不管。最后一项是一个去噪匹配项。q项表示了真实的信号,定义了如何对样本进行去噪。其值越小说明去噪结果和真实信号越相近。

最右边的一项是优化重点。p是模型的输出,q可以使用高斯概率分布公式代入化简看出他本身还是一个高斯分布。过程如下:
img
在给定$x_t$和$x_0$的情况下,q的均值是固定的。模型的输出可以直接看作是P的均值。故可以将该优化问题转化为最小化模型输出和分布均值之间的距离:

根据$x_t,x_0$之间的转换关系,将$x_0$用$x_t$表示并代入到$\mu_q$中,得到:

$\mu_\theta$可以用同样形式的式子表示,其中$\hat{\epsilon}$是模型预测结果:

代入$L_{t-1}$得到简化的损失函数,即直接计算预测噪声和真实噪声之间的距离:

2.2 训练算法

img
观察可以看到采样过程第四步会再添加一次噪声z。根据李宏毅的课程得知在生成模型的生成过程中添加随机性可以提高生成的成功率。

结论和收获

复习了一下数学,了解了扩散模型的理论基础。


文章作者: wangxh
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 wangxh !
  目录