论文代码:https://github.com/CompVis/latent-diffusion
摘要
-
扩散模型的基本原理:通过将图像生成过程分解为一系列去噪自编码器的应用,扩散模型在图像数据上实现了最先进的合成结果。这种模型的构建还允许通过引导机制在不重新训练的情况下控制图像生成过程。
-
计算资源的挑战:传统的扩散模型通常直接在像素空间操作,这导致了在强大的DMs上的优化通常需要消耗大量的GPU时间,且由于需要连续的评估,推理过程成本高昂。
-
潜在空间的应用:为了在有限的计算资源下训练DM,同时保持其质量和灵活性,作者提出在强大的预训练自编码器的潜在空间中应用它们。这种方法首次实现了在复杂性减少和细节保存之间达到近乎最优的平衡,显著提升了视觉保真度。
-
模型架构的创新:通过在模型架构中引入交叉注意力层,将扩散模型转变为强大且灵活的生成器,适用于文本或边界框等一般性条件输入,并且使得高分辨率合成在卷积方式下成为可能。
-
潜在扩散模型(LDMs)的成就:LDMs在图像修复和类条件图像合成上达到了新的最先进水平,并在包括无条件图像生成、文本到图像的合成和超分辨率等多个任务上展示了高竞争性的表现,同时大幅降低了与基于像素的DMs相比的计算需求。
介绍
背景
-
图像合成的挑战
-
图像合成是计算机视觉领域中发展最快、计算需求最高的领域之一,尤其是复杂自然场景的高分辨率图像合成。
-
基于概率的模型(如自回归变换器)通常包含数十亿参数,而生成对抗网络(GANs)虽然在有限变异数据上有效,但不易扩展到复杂的多模态分布。
-
扩散模型的优势
-
扩散模型通过一系列去噪自编码器实现高质量图像合成,已在多个应用领域如类条件图像合成和超分辨率中达到最先进水平。
-
与GANs不同,扩散模型基于概率,不会出现模式崩溃或训练不稳定,且通过参数共享有效建模复杂的自然图像分布。
-
计算资源的问题
-
扩散模型虽有效,但训练和评估非常耗费计算资源,对环境和经济成本高。
-
需要一种方法来降低扩散模型的计算复杂性,以便提高其可访问性和应用广度。
扩散模型学习的两阶段
-
感知压缩阶段
-
目标:在这个阶段,模型的目的是去除图像中的高频细节,这些细节往往对于图像的总体语义理解不是必需的。
-
结果:虽然此阶段去除了一些细节,但模型仍然保留了图像的基本感知特征,并未学习到太多的语义变化。这意味着图像的基本视觉结构被保持,而不必要的细节被压缩。
-
语义压缩阶段
-
目标:在第二阶段,生成模型开始学习数据的语义和概念组成,这是一个更深层次的学习过程,关注于图像的意义和内容。
-
结果:模型通过这一阶段能够捕捉到图像的核心语义特征,理解图像表示的深层次信息,例如对象的类别、场景的组成等。
-
优化计算空间
-
策略:为了提高计算效率,研究者寻找一个感知上等同但计算上更为适合的空间来训练扩散模型。
-
应用:在找到的这个优化后的空间中,模型可以更高效地进行高分辨率图像合成的训练,因为它减少了不必要的计算负担,同时保留了生成图像所需的关键信息。
图中曲线解释
横轴(Rate, bits/dim):表示每个维度(通常是图像的每个像素)使用的比特数。这个指标反映了压缩程度,比特数越低,表示压缩越高。
纵轴(Distortion, RMSE):表示失真程度,即重构图像与原始图像之间的差异,使用均方根误差(Root Mean Square Error, RMSE)来衡量。数值越高,表示失真越严重。
曲线说明
红色曲线(Latent Diffusion Model, LDM):表示潜在扩散模型在不同压缩率下的性能。可以看出,随着压缩率的增加(即比特数减少),LDM的重构质量逐渐下降,但整体上能够在较低的比特率下保持较低的失真。
蓝色曲线(Autoencoder+GAN):代表使用自编码器和生成对抗网络结合的传统方法在不同压缩率下的性能。该曲线显示,在相同的比特率下,这种方法的失真通常高于LDM。
图像示例
图中下方展示了不同压缩水平下的图像重构示例,从左到右失真逐渐增加。这些示例可能代表不同模型在相同压缩比下的输出对比。
图的解释文本
感知和语义压缩:大部分数字图像的数据位对应于人眼无法察觉的细节。扩散模型能够通过最小化相关的损失函数来抑制这些语义上无意义的信息。
计算和优化开销:尽管传统模型在训练和推理时需要在所有像素上进行评估,导致不必要的计算和优化成本,潜在扩散模型通过引入一种温和的压缩阶段,有效地只消除了不可感知的细节,从而优化了整个过程的计算效率。
LDMs的创新
-
训练过程的两个阶段
-
自编码器训练:首先,训练一个自编码器来提供一个低维度的表示空间,这个空间在感知上与原始数据空间等价,但在维度上更低,从而提高了计算效率。
-
扩散模型训练:在自编码器学习的潜在空间中训练扩散模型。这个潜在空间具有更好的空间维度缩放属性,不需要依赖过度的空间压缩,使得整个模型在处理高维数据时更为高效。
-
潜在扩散模型(LDMs)
-
命名和优势:由于在潜在空间中进行图像生成,这类模型被命名为潜在扩散模型(Latent Diffusion Models, LDMs)。这种方法可以在单次网络传递中高效生成图像,大大简化了生成过程。
-
训练效率和应用灵活性
-
训练复用:自编码器阶段的训练只需进行一次,之后可以重复使用这一阶段的结果来训练多个扩散模型或用于探索完全不同的任务。
-
多任务适应性:这种训练方法允许有效探索大量扩散模型,适用于多种图像到图像和文本到图像的任务。
-
架构设计
-
转换器和UNet结合:为了支持文本到图像的任务,设计了一种新的架构,将转换器与扩散模型的UNet骨架相连接。这种设计支持多种基于标记的条件机制,增强了模型处理各种输入类型的能力。
贡献
-
数据处理能力和图像重构质量
-
与基于变换器的方法相比:该方法能更优雅地扩展到高维数据,能够提供比以往工作更忠实、更详细的图像重构(见图1),并有效应用于百万像素图像的高分辨率合成。
-
性能和计算成本
-
多任务性能:在多种任务(如无条件图像合成、图像修复、随机超分辨率)和数据集上达到竞争力的表现,同时显著降低了计算成本。
-
推理成本:与基于像素的扩散方法相比,显著降低了推理成本。
-
模型训练和重构质量
-
编码器/解码器和评分先验:与先前同时学习编解码器架构和基于评分的先验的工作[90]不同,该方法不需要精细平衡重构和生成能力,确保了极其忠实的重构,且潜在空间几乎不需要正则化。
-
适用于密集条件的任务
-
卷积方式应用:对于需要密集条件的任务(如超分辨率、图像修复和语义合成),模型可以以卷积方式应用,渲染出大型、一致的图像(约10242像素)。
-
多模态训练和通用条件机制
-
基于交叉注意力的条件机制:设计了一种基于交叉注意力的通用条件机制,支持多模态训练。使用此机制训练了类条件、文本到图像和布局到图像模型。
-
模型发布和重用
-
预训练模型的发布:在GitHub上发布了预训练的潜在扩散和自编码模型,这些模型可用于DMs训练之外的多种任务。
相关工作
-
生成对抗网络(GAN)
-
优点:能够高效地生成具有良好感知质量的高分辨率图像。
-
挑战:难以优化,难以捕捉完整的数据分布。
-
基于似然的方法
-
变分自编码器(VAE)和基于流的模型:能够高效合成高分辨率图像,但样本质量不及GAN。
-
自回归模型(ARM):在密度估计方面表现出色,但由于其计算要求高和采样过程的顺序性,通常限于低分辨率图像。
-
扩散概率模型(Diffusion Probabilistic Models, DM)
-
优点:在密度估计和样本质量方面达到了最先进的结果,其生成能力得益于与图像数据相适应的归纳偏差。
-
挑战:在像素空间中评估和优化这些模型时,存在推理速度慢和训练成本高的问题。
-
两阶段图像合成
-
研究方向:为了克服单一生成方法的不足,研究者开发了结合不同方法优势的两阶段模型。例如,VQ-VAE 使用自回归模型在离散的潜在空间上学习表达性的先验;VQGAN 结合了对抗性和感知目标,使自回归变换器能够处理更大的图像。
-
LDM的优势:潜在扩散模型通过其卷积骨干,在较高维度的潜在空间上渐进地缩放,避免了需要高压缩率的自回归模型训练所带来的高计算成本。
-
LDM的独特贡献
-
权衡和优化:LDMs 允许在不牺牲重构质量的情况下选择最优的压缩水平,从而确保在学习强大的第一阶段模型的同时,不过度依赖感知压缩。
-
能力:LDM的方法在重构和生成能力之间的权衡上优于现有方法,因此在多个维度上都显示出更好的性能。
自编码技术(Autoencoding)
是一种使用人工神经网络进行数据编码的方法,通常用于降维和特征学习。自编码器由两部分组成:编码器(Encoder)和解码器(Decoder)。以下是自编码技术的基本概念和工作原理:
基本结构
编码器:编码器的任务是接收输入数据并将其转换成一个较低维度的潜在表示(latent representation)。这个潜在表示试图捕捉输入数据中最重要的特征。
解码器:解码器的任务是从潜在表示中重构原始输入数据。理想情况下,解码器重构的输出应该与原始输入尽可能相似。
工作原理
训练过程:自编码器通过训练过程学习如何压缩(通过编码器)输入数据到一个潜在空间,然后再从这个空间解压缩(通过解码器)重构输出。训练目标通常是最小化重构误差,即原始输入和解码器输出之间的差异。
损失函数:损失函数(如均方误差)用于评估重构质量,指导模型学习如何更准确地重构输入数据。
应用
数据降维:自编码器可以用于数据降维,类似于PCA(主成分分析)。通过训练找到的潜在空间通常具有较低的维度,可以用于数据可视化或作为其他机器学习任务的输入。
特征学习:自编码器在无监督学习中用于学习数据的有效表示,可以作为特征提取器在多种任务中使用。
去噪:去噪自编码器(Denoising Autoencoder)通过在训练过程中向输入数据添加噪声,然后尝试恢复原始无噪声数据,有效地学习了数据的稳健特征。
异常检测:自编码器在重构过程中对于看不见的、异常的数据表现出较高的重构误差,可以用来识别异常或离群点。
扩散概率模型(DM)的性能和特点
-
密度估计与样本质量:最近,扩散概率模型在密度估计和样本质量上取得了最先进的成果。这些成就表明,DMs能够生成高质量的图像,且在模型的统计表示上表现出色。
-
基于UNet的神经网络骨架:DMs的生成能力部分源于其神经网络骨架的构造(通常是UNet),这种结构与图像数据的归纳偏差自然契合,使得模型能够有效处理图像样本。
训练策略
-
重新加权的训练目标:使用重新加权的目标进行训练时,可以获得最佳的合成质量。这种方法使得DM表现得像一个有损压缩器,允许在图像质量和压缩能力之间进行权衡。
挑战和优化
-
像素空间中的评估与优化问题:在像素空间中评估和优化DMs存在一些问题,包括低推理速度和高训练成本。这些挑战主要是由于需要计算高分辨率图像数据的昂贵梯度。
-
高级采样策略和分层方法:通过高级采样策略和分层方法,可以部分解决推理速度慢的问题,但高训练成本仍是一个问题。
潜在扩散模型(LDM)的提出
-
工作在压缩的潜在空间:为了解决这些问题,提出了潜在扩散模型,这些模型在更低维度的压缩潜在空间中工作,从而降低了计算成本。
-
计算成本和推理速度的优势:通过在压缩的潜在空间中操作,LDMs能够显著降低训练的计算成本,并加快推理过程,几乎不降低合成质量。
两阶段图像合成的研究背景
-
研究动机:为了弥补单一生成模型方法的不足,研究者们将不同生成方法的优势结合起来,通过两阶段的方法开发出更高效、性能更好的模型。
-
具体实例:
-
VQ-VAEs(Vector Quantized Variational AutoEncoders):使用自回归模型在离散的潜在空间上学习表达性强的先验知识。
-
扩展到文本到图像生成:如研究[64]通过在离散的图像和文本表示上学习联合分布来扩展这一方法。
-
条件可逆网络:研究[68]使用条件可逆网络在不同领域之间的潜在空间进行通用转换。
-
VQGANs(Vector Quantized Generative Adversarial Networks):与VQ-VAEs不同,VQGANs在第一阶段采用对抗性和感知目标,使自回归变换器能处理更大的图像。
-
挑战与改进
-
高压缩率的问题:高压缩率需要的自回归模型训练引入了大量可训练参数,这限制了这些方法的整体性能,且较低的压缩率伴随高计算成本。
-
LDMs的优势:
-
渐进缩放:LDMs因其卷积骨干结构,在更高维度的潜在空间上渐进式缩放,避免了高压缩率所需的高计算成本。
-
压缩水平选择的自由:LDMs允许在不牺牲重构质量的前提下选择最佳的压缩水平,从而在学习强大的第一阶段模型和保证高保真重构之间找到最佳平衡。
-
Method
问题描述
-
扩散模型的计算需求:尽管扩散模型允许通过对应的损失项的下采样来忽略感知上不相关的细节,它们仍然需要在像素空间进行昂贵的函数评估,这导致了巨大的计算时间和能源资源的需求。
解决方案
-
压缩和生成学习阶段的显式分离:通过引入压缩学习阶段和生成学习阶段的显式分离,以达到降低计算复杂性的目的。这一分离通过使用自编码模型来实现,该模型学习一个与图像空间在感知上等价但计算复杂度显著降低的空间。
方案的优势
-
计算效率提升:
-
通过离开高维的图像空间,转而在低维空间上进行采样,使得扩散模型在计算上变得更加高效。
-
-
利用UNet架构的归纳偏置:
-
扩散模型从其UNet架构继承的归纳偏置使得它们特别适用于具有空间结构的数据,因此减轻了以往方法中需要的激进的、降低质量的压缩级别。
-
-
通用压缩模型的开发:
-
开发出的通用压缩模型的潜在空间可以用来训练多个生成模型,并且可以用于其他下游应用,如单图像CLIP引导的合成。
-
主要做了什么?
这个方法的核心是改进高分辨率图像合成的过程,使其在计算上更高效。这是通过使用一种特殊的模型——潜在扩散模型(Latent Diffusion Models, LDMs)来实现的。该模型不直接在复杂的像素空间(即图像的原始空间)中操作,而是转移到一个更简单的空间——称为潜在空间。
怎么做的?
-
自编码器学习潜在空间:
-
自编码器:这是一个包含两部分的神经网络,编码器和解码器。编码器的任务是将输入的高分辨率图像转换成一个更简单、更小的表示形式(称为潜在表示)。解码器则尝试从这个潜在表示重构原始图像。
-
学习潜在空间:通过训练自编码器,它学习如何有效地捕捉和表示图像数据的核心信息,同时丢弃那些视觉上不重要的细节(例如一些微小的纹理或噪声),从而简化了数据。
-
-
分离压缩和生成阶段:
-
压缩阶段:在这一阶段,自编码器通过压缩图像数据到一个低维的潜在空间来减少处理数据的复杂性。
-
生成阶段:然后,在这个简化的潜在空间中,使用扩散模型进行图像的生成和合成。因为数据已经被简化,所以生成过程需要的计算资源大大减少。
-
-
利用UNet架构的优势:
-
UNet架构:这是一种特别的网络结构,适合处理图像数据。在潜在扩散模型中使用这种结构,可以进一步提高数据处理的效率和效果。
-
优势和好处
-
计算效率:因为模型工作在简化的数据上,所以处理速度更快,消耗的计算资源更少。
-
能源节约:减少了计算需求,相应地也降低了能源消耗,对环境友好。
-
广泛应用:这种模型不仅可以用于高效的图像生成,还可以扩展到其他图像处理任务,如图像修复、编辑等。
在潜在空间中的生成过程
在使用潜在扩散模型(LDMs)时,上述扩散和逆扩散过程不是直接在高分辨率的像素空间中进行,而是在经过自编码器压缩后的潜在空间中进行:
-
潜在空间的好处:因为潜在空间的维度远低于原始的像素空间,所以整个扩散和逆扩散过程需要的计算资源大大减少。同时,潜在空间中的表示通常已经捕捉到了图像的关键特征,因此在这个空间中进行“去噪”能更高效地恢复出有意义的图像内容。
-
图像的重构:完成逆扩散过程后,我们得到的是潜在空间中的图像表示,最后通过自编码器的解码器部分将其转换回原始的图像空间,得到最终的高分辨率图像。
感知图像压缩
一个基于自编码器的感知压缩模型,用于图像数据的有效编码和重构。这个模型采用了多种损失函数和正则化策略,以提高重构图像的质量和真实性。以下是这段内容的详细解释:
模型结构
-
自编码器:包括一个编码器(Encoder, E)和一个解码器(Decoder, D)。编码器的任务是将输入的RGB图像 x 转换成一个潜在表示 z,而解码器则尝试从这个潜在表示重构原始图像 x~。
-
维度和降采样:编码器通过降采样因子 f 减少图像的尺寸,从而降低了数据的维度。降采样因子 f 是原始图像维度与潜在表示维度之间的比率,实验中探索了 f=2m,其中 𝑚m 是自然数。
损失函数和目标
-
感知损失:使用感知损失来训练模型,这有助于模型关注图像的高级特征而不是仅仅像素级的差异,从而避免了仅依赖像 L2 或 L1 损失可能引入的模糊。
-
基于补丁的对抗目标:结合对抗性损失,强调局部真实性,确保重构的图像在视觉上真实可信。
正则化策略
-
KL正则化:类似于变分自编码器(VAE),对潜在空间 z 施加KL散度惩罚,使其接近标准正态分布。这有助于控制潜在空间的变异性,使模型更加稳定。
-
向量量化正则化:在解码器中使用向量量化层,类似于VQGAN中的量化操作,这有助于模型学习更离散、更有结构的潜在表示。
模型效果和优势
-
二维潜在空间的利用:与之前依赖一维排序的模型不同,这种模型保持了潜在空间 z 的二维结构,更好地利用了图像数据的空间结构,从而能够在较小的压缩率下实现高质量的图像重构。
-
细节保留:相较于以前的工作,这种方法更好地保留了输入图像 x 的细节,提高了重构图像的质量。
总结
这个感知压缩模型通过结合先进的损失函数和正则化技术,在降低图像数据的维度的同时保持了图像的视觉真实性和细节,使其成为高效的图像编码和重构工具。这些特性使得模型特别适合在图像处理和合成等领域的应用,例如在生成模型中作为预处理步骤提高生成效果。
LDMs
扩散模型基本原理
-
基础概念:扩散模型是一种概率模型,设计用来学习数据分布 p(x)。这是通过逐渐去噪一个正态分布变量完成的,相当于学习一个固定马尔可夫链(Markov Chain)的逆过程,其中链的长度为 T。
-
图像合成:在图像合成领域,最成功的扩散模型依赖于变分下界(variational lower bound)的重新加权变体,这与去噪得分匹配(denoising score-matching)相对应。这些模型可以被解释为一系列等权重的去噪自编码器 ϵθ(xt,t),这些自编码器被训练来预测它们输入的去噪版本。
潜在扩散模型(LDMs)
-
生成模型与潜在表示:通过训练的感知压缩模型(由编码器 E 和解码器 D 组成),现在可以访问一个高效的低维潜在空间。与高维的像素空间相比,这个空间更适合基于似然的生成模型,因为它们现在可以专注于数据的重要语义部分,并在一个计算效率更高的低维空间中进行训练。
-
与以往工作的不同:与依赖于自回归、基于注意力的变换器模型在高度压缩的离散潜在空间中的工作不同,我们的模型可以利用图像特有的归纳偏差。这包括使用主要由2D卷积层构成的UNet作为基础,以及使用重新加权的边界来进一步关注感知上最相关的部分。
模型的目标和结构
-
目标函数:重新表述的目标函数为 LLDM:=EE(x),ϵ∼N(0,1),t[∥ϵ−ϵθ(zt,t)∥22]。这里 ϵθ(⋅,t) 是模型的神经网络骨干,实现为时间条件的UNet。
-
训练与解码:由于前向过程是固定的,zt 可以在训练期间有效地从 𝐸E 获得,而从 p(z) 的样本可以通过 D 进行单次传递解码回图像空间。
-
新模型的特点
-
图像特有的归纳偏差:新模型利用了图像数据的一些自然特性,比如空间上的连续性和局部区域的相关性。这种对图像特性的利用,帮助模型更好地理解和重建图像内容。
-
UNet结构:新模型采用了以2D卷积层为主的UNet架构。UNet是一种特别适合图像任务的网络结构,它通过在网络中反复应用卷积操作来捕捉图像的空间层次结构。这样的设计使得模型不仅能够处理图像的高层语义信息,也能精细地处理图像的细节。
-
重新加权的边界:此外,新模型还使用了一种“重新加权的边界”技术来训练网络,这意味着在模型训练时,会特别关注那些对人的感知更为重要的图像部分。这样的策略可以使得重建的图像在视觉上更加真实和自然。
总结
这段文本说明了潜在扩散模型(LDMs)如何有效地结合感知压缩模型和基于扩散的生成过程,来在低维潜在空间中有效地生成高质量图像。这种方法不仅提高了计算效率,而且由于专注于数据的重要部分,能够生成视觉上更令人满意的图像。
条件机制
扩散模型的条件生成能力
-
条件分布的建模:扩散模型原则上可以模拟条件分布 p(z∣y),其中 y 可以是文本、语义地图或其他图像到图像的转换任务的输入。这种条件分布的建模能力使得扩散模型能够通过这些外部输入 𝑦y 控制图像的合成过程。
模型架构的增强
-
条件去噪自编码器:实现条件分布的一种方式是使用条件去噪自编码器 ϵθ(zt,t,y)。这种自编码器根据输入 y 和时间步 t 以及当前的潜在状态 zt 来预测去噪后的数据。
-
UNet骨架与交叉注意力机制:为了使DMs更加灵活,其底层的UNet结构被增强了交叉注意力机制。这种机制适用于学习基于多种输入模态的注意力模型,提高了模型处理不同类型输入的能力。
处理多模态输入
-
域特定编码器:为了处理各种模态的输入 y,引入了一个域特定的编码器 τθ,它将输入 y 投影到一个中间表示 τθ(y)。这个中间表示随后通过交叉注意力层被映射到UNet的中间层。
-
交叉注意力层的实现:交叉注意力层使用查询 Q,键 K,值 V 的机制,其中 Q 是基于 zt 的变换,而 K 和 V 是基于 y 的域特定编码的变换。这样可以有效地将输入 y 的信息集成到图像生成过程中。
条件LDM的训练
-
训练目标:条件LDM的训练通过最小化预测的去噪输出与实际去噪结果之间的差异来实现。这通过目标函数 LLDM 实现,其中 ϵθ 和 τθ 是联合优化的。
-
结论
通过这种设计,扩散模型不仅能够生成高质量的图像,还能根据各种类型的条件输入(如文本或语义信息)灵活地控制生成的图像内容。这种方法大大扩展了扩散模型在图像合成领域的应用,使其能够适应更广泛的应用场景,如文本到图像的合成、语义图像编辑等。
代码复现!!!