Cascaded Diffusion Models for High Fidelity Image Generation (Paper reading)

Cascaded Diffusion Models for High Fidelity Image Generation

Jonathan Ho, Google, Journal of Machine Learning Research 2022, Cited:213, Code: 无, Paper

1. 前言

我们表明,级联扩散模型能够在类条件ImageNet生成基准上生成高保真图像,而无需任何辅助图像分类器来提高样本质量。级联扩散模型包括多个扩散模型的pipeline,这些扩散模型生成分辨率不断提高的图像,从最低分辨率的标准扩散模型开始,然后是一个或多个超分辨率扩散模型,这些超分辨率扩散模型依次对图像进行上采样并添加更高分辨率的细节。我们发现级联pipeline的样本质量主要依赖于条件增强,这是我们提出的超分辨率模型的低分辨率条件输入的数据增强方法我们的实验表明,条件增强可以防止级联模型中采样过程中的复合误差,这有助于我们训练级联pipeline,在64×64分辨率下实现1.48的FID得分,在128×128分辨率下实现3.52的FID得分和在256×256分辨率下实现4.88的FID分数,优于BigGAN深度,在256×256FID分辨率下实现63.02%(前1名)和84.06%(前5名)的分类准确度得分,优于VQ-VAE-2。

2. 整体思想

Classifier Diffusion Models + SR3 + Tricks的串联模型,应用多个不同分辨率的扩散模型实现超分效果。

3. 方法

在这里插入图片描述
我们的主要贡献是使用级联来提高类条件ImageNet上扩散模型的样本质量。这里,级联是指一种简单的技术,通过学习多分辨率的单独训练的模型pipeline来对高分辨率数据进行建模;基础模型生成低分辨率样本,然后是将低分辨率样本上采样为高分辨率样本的超分辨率模型。从级联pipeline中依次进行采样,首先从低分辨率基本模型中进行采样,然后从超分辨率模型中按照提高分辨率的顺序进行采样。虽然任何类型的生成模型都可以在级联pipeline中使用,但在这里我们将自己限制在扩散模型中。最近的前期工作表明,级联可以提高扩散模型的样本质量;我们在这里的工作涉及改进扩散级联pipeline,以获得尽可能好的样品质量。

我们发现,改进级联扩散pipeline的最简单、最有效的技术是将强数据增强应用于每个超分辨率模型的条件输入。我们将这种技术称为条件增强。在我们的实验中,条件增强对于我们的级联pipeline以最高分辨率生成高质量样本至关重要。

3.1 Conditioning Augmentation in Cascaded Diffusion Models

在这里插入图片描述
假设 x 0 x_0 x0是高分辨率数据, z 0 z_0 z0是其低分辨率对应数据。我们使用术语 c a s c a d i n g   p i p l i n e cascading \ pipline cascading pipline来指代一系列生成模型。在低分辨率下,我们有一个扩散模型 p θ ( z 0 ) p_{\theta}(z_{0}) pθ(z0),在高分辨率下,有一个超分辨率扩散模型 p θ ( x 0 ∣ z 0 ) p_\theta(x_0|z_0) pθ(x0z0) c a s c a d i n g   p i p l i n e cascading \ pipline cascading pipline形成用于高分辨率数据的潜在变量模型;即 p θ ( x 0 ) = R p θ ( x 0 ∣ z 0 ) p θ ( z 0 ) d z 0 p_θ(x_0)=Rp_θ(x_0|z_0)p_θ(z_0)dz_0 pθ(x0)=Rpθ(x0z0)pθ(z0)dz0。我们很容易将其扩展到更多的分辨率生成中。根据类信息或其他条件信息 c c c对整个级联pipeline进行条件化也是很简单的。

与以最高分辨率训练标准模型相比,训练级联pipeline的一个主要好处是,大部分建模能力可以专用于低分辨率,这在经验上对样本质量最重要,而以低分辨率训练和采样往往是计算效率最高的。此外,级联允许独立训练各个模型,并且可以在每个特定的分辨率下调整架构选择,以获得整个pipeline的最佳性能。

我们发现,提高级联pipeline样本质量的最有效技术是在低分辨率输入上使用数据增强来训练每个超分辨率模型。我们将这种通用技术称为条件增强。在高水平上,对于从低分辨率图像 z z z到高分辨率图像 x 0 x_0 x0的一些超分辨率模型 p θ ( x 0 ∣ z ) p_θ(x_0|z) pθ(x0z),条件增强是指对 z z z应用某种形式的数据增强。这种增强可以采取任何形式,但我们发现在低分辨率下最有效的是添加高斯噪声(前向过程噪声: z t = α ˉ z 0 + . . . z_t = \sqrt{\bar \alpha}z_0+... zt=αˉ z0+...),对于高分辨率,将高斯模糊随机应用于 z z z在某些情况下,我们发现在条件增强的强度上训练超分辨率模型并在训练后的超参数搜索中选择最佳强度以获得最佳样本质量更为实际
在这里插入图片描述

3.1.1 Blurring Augmentation

条件增强的一个简单实例是通过模糊来增强 z z z。我们发现这对于上采样到分辨率为 128 × 128 128×128 128×128 256 × 256 256×256 256×256的图像是最有效的。更具体地说,我们应用大小为 k k k σ σ σ的高斯滤波器来获得 z b z_b zb。我们使用 k = ( 3 , 3 ) k=(3,3) k=(33)的滤波器大小,并在训练期间从固定范围随机采样 σ σ σ。我们执行超参数搜索以找到 σ σ σ的范围。在训练过程中,我们应用模糊增加到示例的50%。在推理过程中,不向低分辨率输入应用增强。我们探索了在推理过程中应用不同数量的模糊增强,但在最初的实验中没有发现它有帮助。

3.1.2 截断条件增强

在这里,我们描述了我们所说的截断条件增强,这是一种条件增强形式,需要对超分辨率模型的训练和架构进行简单修改,但在级联的初始阶段不改变低分辨率模型。我们发现这种方法在分辨率小于 128 × 128 128×128 128×128的情况下最有用。通常,生成高分辨率样本 x 0 x_0 x0包括首先从低分辨率模型 p θ ( z 0 ) p_θ(z_0) pθ(z0)生成 z 0 z_0 z0,然后将结果输入超分辨率模型 p θ ( x 0 ∣ z 0 ) p_\theta(x_0|z_0) pθ(x0z0)。换句话说,使用潜在变量模型的祖先采样来生成高分辨率样本。截断条件增强是指截断低分辨率反向过程,使其在时间步长s>0时停止。 那么这时候,你估算 x 0 x_0 x0用的就是 z s z_s zs了。截断低分辨率反向过程是数据增强的一种形式的原因是, p θ ( x 0 ∣ z s ) p_θ(x_0|z_s) pθ(x0zs)的训练过程涉及对有噪声的 z s ~ q ( z s ∣ z 0 ) z_s~q(z_s|z_0) zsq(zsz0)的调节,在缩放之前,它是用高斯噪声增强的 z 0 z_0 z0。简而言之就是,你在高分辨率训练时加入到是 z t z_{t} zt,是有噪声的,那么你同样要把噪声当作条件,况且低分辨率的图像本来就不清晰啊。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43800752/article/details/130153729
今日推荐