0%

Latent Diffusion

CVPR2022的作品,Diffusion model在图像合成表现非常的出色,但是由于其是在图像像素空间进行的去噪等操作,所以相当的费时,本文通过两步走,先训练一个autoencoder将图像空间映射到latent空间,减少了图像的维度,再利用标准的difusion模型来进行加噪声去噪声过程,减少计算量,提高生成速度。另外,作者引入了cross-attention layers,将不同的任务的promt引入,比如:text 或者 bounding box等,使其实现不同的能力。本算法在多个任务上表现sota,比如:image inpainting、class-conditional imagesynthesis等

论文名称:High-Resolution Image Synthesis with Latent Diffusion Models

作者:Robin Rombach等

论文链接:https://arxiv.org/abs/2112.10752

Github:https://github.com/compvis/latent-diffusion


一些可以先研究一下的知识

  • VQ-VAE
  • VQGAN

introduction

Diffusion模型属于是基于似然估计的模型,由于基于像素的图像表示包含几乎不可察觉的高频细节[16,73],因此最大似然训练会花费不成比例的容量来对它们进行建模,从而导致训练时间过长。所以在训练的时候,需要比较大的资源消耗,为了减少资源消耗,增加其可用性,本文提出了latent diffusion

从分析像素空间中已经训练的扩散模型开始:图2显示了训练模型的速率失真权衡。与任何基于似然的模型一样,学习大致可以分为两个阶段:首先是感知压缩阶段,它会去除高频细节, 但仍然学习很少的语义变化。在第二阶段,实际的生成模型学习数据的语义和概念组成(语义压缩)。因此,我们的目标是首先找到一个感知上等效但计算上更合适的空间,我们将在其中训练用于高分辨率图像合成的扩散模型。

image-20230220151707970

因此,作者将训练变为两个阶段:

  • 训练一个autoencoder,将原来的高维转变为低维,autoencoder只训练一次,就可以反复用于下游的DM的训练中。
  • 设计了一个transformer架构的UNet,实现标准的denoise过程。

我们的优点:

  • 我们方法可以拓展到更高的维度,可以重建更为细节的工作,可应用于百万像素的图像合成。
  • 显著降低了计算成本于推理成本。
  • 与过去的基于encoder/decoder的架构相比,我们不需要复杂的参数来进行重建和生成,所以我们的重建效果更好。
  • 对于超分辨率,修复等,我们可以使用conv对更大的图像进行处理,比如 1024x1024
  • 通过cross-attention,允许多模型的训练,可以实现class-conditional,text-to-image等的训练。

Method

autoencoder先把图像特征维度压缩的二阶段训练的优点:

  • 低维度的图像空间可以提高DM模型的计算效率
  • 我们利用DM模型从unet继承的归纳偏置(对数据的空间结构数据更有效),减轻了以前方法降低质量的压缩要求。
  • 我们得到了通用的压缩模型,其产生的latent space可以应用于很多的下游任务。

Perceptual Image Compression

autoencoder的train:

  • preceptual loss
  • patch-based adversarial objective
  • 这确保了通过强制局部真实性将重建限制在image manifold中,并避免仅依赖像素空间损失(例如L2或L1目标)而引入的模糊。

为了避免随意的高方差的latent space,作者尝试了两种正则化方法这里没细研究:

  • KL-reg,读学习的latent加一个正态分布的惩罚。
  • VQGAN。

Latent Diffusion Models

LDM与DM相比较,主要啊变化从下面两个loss就能看出来:变化的就是原来的输x变成了E(x)

image-20230220202553961

image-20230220202610712

Conditioning Mechanisms

增加了cross-attention mechanism,可以增强识别不同的输入的有效性

整体结构就入下图所示:

image-20230220162316515

实验

下采样实验:

  • 当下采样较小时,可以看到,训练进度比较慢,这主要是由于将大部分感知压缩留给扩散模型导致的。
  • 当下采样太大时,训练会停滞,这主要是由于压缩太强,导致信息丢失严重导致的。
  • 所以在4-16是表现比较好的。

image-20230220204428137

一些数据集的生成表现也很赞,这里就不一一展示了。