simple diffusion: End-to-end diffusion for high resolution images 论文阅读

date
Mar 2, 2023
Last edited time
Mar 27, 2023 08:29 AM
status
Published
slug
simple_diffusion论文阅读
tags
DL
CV
summary
type
Post
Field
Plat
notion image

Abstract

  • Problem
    • 目前,在高分辨率图像的像素空间中应用扩散模型仍存在困难。相反,现有的方法专注于在较低维度空间中进行扩散(Latent Diffusion),或者采用多级超分辨率生成(Cascaded Diffusion)。但这些方法的缺点是会给扩散框架增加额外的复杂度。
  • Aim
    • 该论文旨在在尽可能保持模型简单的同时,改进高分辨率图像的去噪扩散模型。
  • Method
      1. 针对高分辨率图像应调整 noise schedule,随着分辨率的增加添加更多噪声。
      1. 在 16×16 分辨率上缩放 U-Net 架构足以提高性能。更进一步的是 U-ViT 架构,一个带有变压器主干的 U-Net。
      1. 在架构的特定位置添加 dropout。
      1. 使用降采样避免高分辨率特征图。

Background

Simple Diffusion

Adjusting Noise Schedules

notion image
最常见的 noise schedule 是 α-cosine schedule,它假定方差保持不变,相应的标准差为 。这个 noise schedule 最初是为了提高在CIFAR10(分辨率为32×32)和ImageNet(分辨率为64×64)上的性能而提出的。
对于 α-cosine schedule 而言,图像的整体结构在很长的一段时间内已经大致确定了。这是有问题的,因为生成的去噪过程只有很小的时间窗口来决定图像的整体结构。
💡
Given an input image the diffusion distribution for pixel is given by . Suppose we average pool , , we find that . The lower resolution pixel only has half the amount of noise.
One can further derive that the αt to σt ratio at this lower resolution is twice as high, meaning that the signal to noise ratio is as high. And so .
总之,对于一个大小为 的窗口求平均后, 将增加 倍(信噪比将增加 倍)。因此,我们认为 noise schedule 可以相对于某个参考分辨率进行定义,比如 ,这些时间表最初是针对这些分辨率设计和成功测试的。在我们的方法中,首先选择一个参考分辨率,例如
notion image
在参考分辨率下,我们定义了 noise schedule ,它又定义了全分辨率 下所需的 SNR:
例如, 图像的 noise schedule 方程为:
notion image

Interpolating schedules

将 noise schedule 修改的一个潜在缺点是,由于每个像素的噪声增加了,高频细节现在要在扩散过程的后期生成。然而,我们假设可以在几个扩散步骤内生成高频细节。或者,可以在不同的位移时间表之间进行插值。例如,对于512的分辨率,可以通过从32开始,在对数空间内插值到256来包含更高频的细节。对数信噪比插值(32→256)的 noise schedule 如下:
它对低频、中频和高频细节具有更均等的权重。

Multiscale training loss

然而,即使按照上文调整噪声计划(noise schedule),对于分辨率逐渐增高的图像,训练损失仍然受到高频细节的支配。为了纠正这个问题,我们提出使用一种多尺度版本的训练损失来取代标准训练损失,该损失函数在下采样的分辨率上评估我们的标准训练损失,并且使用了一个权重因子来加强对低分辨率的损失。
我们在 分辨率下的原始训练损失可以写成:
其中, 表示将分辨率降采样至 。由于图像的降采样是一个线性操作,我们有 可以被视为分辨率为 的数据的降噪模型。
接下来,我们提出使用多尺度训练损失来训练高分辨率模型,该损失函数包含多个分辨率的信息。
也就是说,我们训练模型时会针对多个分辨率的训练损失进行加权求和,其中包括一个基本分辨率(在本文中为32×32),并且总是包括最终分辨率 的损失。我们发现,高分辨率的损失通常更加嘈杂,因此我们会在增加分辨率的同时减小相对权重,以平衡各个分辨率的影响。
notion image

Scaling the Architecture

notion image
另一个问题是如何扩展模型架构。通常的模型架构是每当分辨率加倍时,通道数会减半,从而使每次卷积操作的浮点运算量相同,但特征数量会增加一倍。低计算密度会导致加速器的利用率不高,而大的激活值则会导致内存不足的问题。因此,我们更喜欢在低分辨率特征图上进行缩放操作。
我们假设,在我们考虑的网络大小范围内,主要在特定分辨率(即16×16分辨率)进行缩放模型就足以改善性能。通常,低分辨率操作的特征图相对较小。

Avoiding high resolution feature maps

为了避免在最高分辨率上进行计算,我们将图像下采样作为神经网络的第一步,将上采样作为最后一步。
其中一种方法是使用可逆的线性5/3 DWT 将图像转换为较低分辨率的频率响应,如图7所示。当应用多个DWT级别时(这里有两个),则响应的分辨率不同。这通过找到最低分辨率(在图中为 )并为较高分辨率的特征映射重塑像素来解决,在 的情况下,它们被重塑为
notion image
如果愿意承担一定的性能惩罚,还有一个更简单的解决方案。作为第一层,可以使用步幅为 卷积层,并使用形状相同的转置卷积层作为最后一层。
notion image

Dropout

在扩散网络中通常会在所有分辨率层中使用全局 dropout 超参数来对残差块进行正则化。在CDM中,dropout被用来生成低分辨率的图像,而对于高分辨率图像,不使用dropout,前提是对数据进行增强操作。这表明即使对于在高分辨率上运行的模型,正则化也很重要。
然而,简单地在所有残差块中添加dropout并不能产生期望的结果。我们假设我们的网络设计仅在较低分辨率层添加 dropout 就足够了。
notion image

The U-ViT architecture

notion image
这种U-Vision Transformer(U-ViT)架构可以被视为一个小型卷积U-Net,通过多个下采样级别下采样到16×16分辨率。在此处应用了一个大型 Transformer。此后,再次通过卷积U-Net进行上采样。

Experiments

notion image
notion image

Visualization

notion image
notion image

© Lazurite 2021 - 2024