0%

论文阅读-diffusion model-Diffusion Models Beat GANs on Image Synthesis

动机

  • 在图像生成任务上,GAN拥有目前最先进的能力,但研究表明GAN相比likelihood-based models捕捉的多样性更少,且训练难度更大,容易模式崩塌;
  • 现在的扩散模型效果跟GAN有一定差距,作者假设之间的GAP至少来自两个方面:1)GAN的模型结构探索更充分;2)GAN在多样性和保真度之间平衡较好,能够产生高质量的图像但不能覆盖整个分布;
  • 本文目的则希望改进模型结构,并设计一个方案权衡多样性和保真度,提高扩散模型的能力。

贡献

  • 本文证明扩散模型可以实现目前最先进的图像生成质量:在无条件图像生成任务,通过一系列消融实验寻找到更好的网络结构;在有条件图像生成任务,利用分类器的梯度引导进一步提升样本质量。

本文的方法

本文使用Improved DDPMDDIM的改进方法。即Improved DDPM将固定的方差也变为一个神经网络预测、且损失计算时使用 L_{\text{simple}} + \lambda L_{\text{vlb}} DDIM使用非马尔可夫链加噪过程,允许通过改变方向过程中噪声的方差来产生不同的反向采样器,当设置噪声为 0 时,则允许直接将任意模型 \theta(x_t,t) 转换为从latent映射为image。使用混合目标学习反向过程的方差、以及DDIM提供的采样方法,可以用更少的步骤进行采样,而不降低样本质量。

Architecture Improvements

UNet的基础上进行如下改变:

  • 增加网络深度,同时减少模型宽度,以保持模型尺寸恒定(但增加训练时间,后续不使用);
  • 增加注意力头的数量;
  • 32\times32、16\times16、8\times8 分辨率均使用注意力机制而不是只使用 16\times16
  • 在上采样和下采样时参照Score-Based Generative Modeling through Stochastic Differential Equations使用BigGAN的残差模块;
  • 参照StyleGAN等在残差连接时使用 \frac{1}{\sqrt{2}} 的缩放;
  • 使用adaptive group normalization代替addition + group normalization

adaptive group normalization(AdaGN)表示在GN后将timestep embeddingclass embedding嵌入到每个残差块中,公式为:

\text{AdaGN}(h,y) = y_s \text{GroupNorm}(h) + y_b

其中, h 为第一个卷积后的残差块的激活, y=[y_s, y_b] timestep embeddingclass embedding经过线性映射得到。

最终的模型结构为:每个分辨率下有两个可变宽度的残差块,多抽头且每个头的通道数为 64 ,在分辨率为 32、16、8 时进行注意力,上采样和下采样时使用BigGAN残差块,以及AdaGNtimestep embeddingclass embedding嵌入到残差块中。

Classifier Guidance

预训练的扩散模型可以使用分类器的梯度进行调节,即使用有噪图像 x_t 训练分类器 p_{\phi}(y\mid x_t,t) ,并使用梯度 \nabla_{x_t} \log p_{\phi}(y\mid x_t,t) 引导扩散采样过程朝向任意的类别 y

Conditional Reverse Noising Process

本文证明在已知标签 y 的条件采样,等价于从 p_{\theta,\phi}\left(x_t \mid x_{t+1}, y\right) = Zp_\theta\left(x_t \mid x_{t+1}\right)p_\phi\left(y \mid x_{t}\right) 采样,其中 Z 为常数,可近似为带扰动的高斯分布,证明如下:

\begin{aligned} p_\theta\left(x_t \mid x_{t+1}\right) & =\mathcal{N}(\mu, \Sigma) \\ \Longrightarrow \log p_\theta\left(x_t \mid x_{t+1}\right) & =-\frac{1}{2}\left(x_t-\mu\right)^T \Sigma^{-1}\left(x_t-\mu\right)+C \end{aligned}

\log p_\phi\left(y \mid x_t\right) x_t=\mu 时进行泰勒展开,有:

\begin{aligned} \log p_\phi\left(y \mid x_t\right) & \left.\approx \log p_\phi\left(y \mid x_t\right)\right|_{x_t=\mu}+\left.\left(x_t-\mu\right) \nabla_{x_t} \log p_\phi\left(y \mid x_t\right)\right|_{x_t=\mu} \\ & =\left(x_t-\mu\right) g+C_1 \end{aligned}

其中, g=\left.\nabla_{x_t} \log p_\phi\left(y \mid x_t\right)\right|_{x_t=\mu} ,则有:

\begin{aligned} \log \left(p_\theta\left(x_t \mid x_{t+1}\right) p_\phi\left(y \mid x_t\right)\right) &= \log p_\theta\left(x_t \mid x_{t+1}\right) + \log p_\phi\left(y \mid x_t\right) \\ & \approx-\frac{1}{2}\left(x_t-\mu\right)^T \Sigma^{-1}\left(x_t-\mu\right)+\left(x_t-\mu\right) g+C_2 \\ & = -\frac{1}{2}\left(x_t-\mu\right)^T \Sigma^{-1}\left(x_t-\mu\right) + \frac{1}{2}\left(x_t-\mu\right)^T\Sigma^{-1}(\Sigma g) + \frac{1}{2}(\Sigma g)^T\Sigma^{-1}\left(x_t-\mu\right) \\ & =-\frac{1}{2}\left(x_t-\mu-\Sigma g\right)^T \Sigma^{-1}\left(x_t-\mu-\Sigma g\right)+\frac{1}{2} g^T \Sigma g+C_2 \\ & =-\frac{1}{2}\left(x_t-\mu-\Sigma g\right)^T \Sigma^{-1}\left(x_t-\mu-\Sigma g\right)+C_3 \\ & =\log p(z)+C_4, \ \ \ \ z \sim \mathcal{N}(\mu+\Sigma g, \Sigma) \end{aligned}

因此,条件转换算子可以近似为一个类似于无条件转换算子的高斯函数,但其均值有 \Sigma g 的偏移,算法如下图所示:

Conditional Sampling for DDIM

DDIM中,本文利用diffusion modelsscore matching的联系。当模型 \epsilon_\theta(x_t) 预测采样的噪声,则计算score function得到:

\nabla_{x_t} \log p_\theta\left(x_t\right) = -\frac{1}{\sqrt{1-\bar{\alpha}_t}} \epsilon_\theta\left(x_t\right)

则新的score function可以表示为:

\begin{aligned} \nabla_{x_t} \log \left(p_\theta\left(x_t\right) p_\phi\left(y \mid x_t\right)\right) & =\nabla_{x_t} \log p_\theta\left(x_t\right)+\nabla_{x_t} \log p_\phi\left(y \mid x_t\right) \\ & =-\frac{1}{\sqrt{1-\bar{\alpha}_t}} \epsilon_\theta\left(x_t\right)+\nabla_{x_t} \log p_\phi\left(y \mid x_t\right) \end{aligned}

定义一个新的预测函数 \hat{\epsilon}\left(x_t\right) 表示联合分布的score,则:

\hat{\epsilon}\left(x_t\right) := \epsilon_\theta\left(x_t\right)-\sqrt{1-\bar{\alpha}_t} \nabla_{x_t} \log p_\phi\left(y \mid x_t\right)

因此,可以使用DDIM相同的采样流程,仅将噪声预测函数 \epsilon_\theta\left(x_t\right) 修改为$\hat{\epsilon}\left(x_t\right)$,算法如下图所示:

Scaling Classifier Gradients

在无条件扩散模型中,发现有必要设置分类器的梯度的因子大于 1 。如上图所示,当 \text{scale}=1 ,分类器为样本在期望类上分配的概率较低,而增大scale时,则分类概率增加,且FID显著下降

通过转换, s \cdot \nabla_{x} \log p(y\mid x) = \nabla_{x} \log \frac{1}{Z} p(y\mid x)^s ,条件调节过程理论上可以看成是跟re-normalized classifier distribution p(y\mid x)^s 有关。当 s>1 时, p(y\mid x)^s 相比 p(y\mid x)​ 分布更尖锐,即较大的值会被指数放大,即可以更关注分类器对应的模式,获得更具有保真度的图像

在无条件的扩散模型中,也可以使用classifier guidance,如下图所示,guided unconditional model的结果接近unguided conditonal model

部分实验结果