[pdf][code]

Introduction

简称latent-diffusion,其实从名称上就可以大致体会到该论文使用的方法,已知diffusion全程都没有改变图片的shape,始终保持原通道数和长宽,此举带来了大量的计算成本,尤其是对于高分辨率图像的生成。为了解决该问题,该方法从原尺寸图片生成尺寸更小的latent code,以减少diffusion的计算量

Contribution

  1. 对比transformer-based的方法,该方法能够在压缩的空间(work on a compression level)对图像进行重建,生成比之前的方法更加可靠与详细的结果。并能应用于百万像素图像的高分辨率合成(high-resolution synthesis of megapixel images)。
  2. 在多任务上均有较好的表现,同时显著降低计算成本。并且对比像素级别的diffusion方法,节省了推断成本。
  3. 该方法不需要平衡重建和生成的能力,对latent space几乎不需要正则化。
  4. 本文设计了一种基于cross-attention的通用条件生成控制机制,能够实现多模态的训练。(class-conditional, text-to-image、layout-to-image)

Method

Perceptual Image Compression

思路很简单,使用一个自编码模型E\mathcal E学习了一个感知上等同于图像空间的空间,但显著降低了计算复杂度

对于图像xx,可以使用encoder和decoder重建图像,x~=E(z)=D(E(x))\tilde x=\mathcal E(z)=\mathcal D(\mathcal E(x))

为了避免潜在的高方差空间,作者使用了两种正则化方法进行实验。一种是KL-reg,一种是VGgan中使用到的VQ-reg。这部分不是很理解,应该是需要对生成的潜在空间进行一定的约束,具体还需要了解下上述两种方法

Latent Diffusion Models

就是在原来Diffusion的基础上添加上述encoder和decoder,现将图片xx变换为潜在编码zz,然后再进行diffusion process,需要使用图片时使用decoder变换回原尺寸

原DM(Diffusion Models)Loss为

LDM=Ex,ϵN(0,1),t[ϵϵθ(xt,t)22]L_{DM}=\mathbb E_{x,\epsilon \sim \mathcal N(0,1),t}[||\epsilon-\epsilon_{\theta}(x_t,t)||_2^2]

该方法的LDM(Latent Diffusion Models)Loss为

LDM=EE(x),ϵN(0,1),t[ϵϵθ(zt,t)22]L_{DM}=\mathbb E_{\mathcal E(x),\epsilon \sim \mathcal N(0,1),t}[||\epsilon-\epsilon_{\theta}(z_t,t)||_2^2]

Conditioning Mechanisms

该文同样提供了文字图像等为条件的生成方法,可以直接进行concat,或者使用cross-attention,条件输入为yy,为了适应不同种类的条件,使用一个encoder τθ\tau_{\theta}yy映射为中间表示τθ(y)RM×dr\tau_{\theta}(y)\in\mathbb R^{M\times d_r},然后使用Attention(Q,K,V)=softmax(QKTd)VAttention(Q,K,V)=softmax(\frac{QK^T}{\sqrt{d}})\cdot V,其中

Q=WQ(i)φ(zt),K=WK(i)τθ(y),V=WV(i)τθ(y)Q=W_Q^{(i)}\cdot\varphi(z_t),K=W_K^{(i)}\cdot\tau_{\theta}(y),V=W_V^{(i)}\cdot\tau_{\theta}(y)

这里φ(zt)\varphi(z_t)是Diffusion Model里生成ϵ\epsilon的Unet模型的中间表示,最终Loss为

LDM=EE(x),y,ϵN(0,1),t[ϵϵθ(zt,t,τθ(y))22]L_{DM}=\mathbb E_{\mathcal E(x),y,\epsilon \sim \mathcal N(0,1),t}[||\epsilon-\epsilon_{\theta}(z_t,t,\tau_{\theta}(y))||_2^2]

Experiments

总结

这篇文章的思路很简单,前面看完就大概猜到是怎么做的了,我觉得该最重要的是将Diffusion与GAN联系了起来,StyleGAN的latent code会随着维度的增加编辑能力下降、重建能力上升,而Diffusion的latent code是3×H×W3\times H\times W的,比StyleGAN的W+W+空间的18\time 512都要大的多,所以是否可以用同样的思路将Diffusion Model的latent code映射到便于编辑的空间中。不过得先看看有没有用Diffusion进行图像编辑的方法,以及他们是怎么做的

该如何将StyleGAN与Diffusion联系起来,使用Diffusion解决一些StyleGAN可以解决的问题,或者将两者结合解决一些新的问题,可能需要多看看Diffusion的论文,写写代码对比下效果才行