本文将介绍图像生成领域的最新进展——潜在扩散模型(Latent Diffusion Models,LDM)及其应用。本文将基于生成对抗网络(GANs)、扩散模型和Transformer的概念。如果你想深入了解这些概念,请随时查看我之前关于这些主题的文章。
也许过去十年计算机视觉和机器学习领域的突破是GANs的发明——一种引入了超越数据现有内容的可能性的方法,为一个全新的领域铺平了道路,这个领域现在被称为生成建模。然而,在经历了一个繁荣期后,GANs开始面临瓶颈问题,大多数方法都无法解决一些困扰对抗方法的瓶颈问题。这并不是个别方法的问题,而是问题本身对抗性的本质。GANs的主要瓶颈包括:
- 图像生成中缺乏多样性
- 模式崩溃
- 学习多模态分布的问题
- 高训练时间
- 由于问题表述的对抗性质,不易训练
还有另一系列基于似然的方法(例如马尔可夫随机场),它们已经存在了相当长的时间,但由于在每个问题上实现和构建的复杂性而未能产生重大影响。其中之一是“扩散模型”——这种方法借鉴了气体扩散的物理过程,并尝试在多个科学领域中建模相同的现象。然而,在图像生成领域,它们的使用最近才变得明显。主要是因为我们现在有更多的计算能力来测试即使是过去不可行的复杂算法。
标准的扩散模型有两个主要的过程领域:前向扩散和反向扩散。在前向扩散阶段,图像逐渐被噪声破坏,直到图像变成完全随机的噪声。在反向过程中,一系列马尔可夫链被用于通过逐步删除每个时间步长中预测的噪声来从高斯噪声中恢复数据。
扩散模型最近在图像生成任务中表现出了显着的性能,并且已经超越了GANs在图像合成等多个任务上的表现。这些模型还能够产生更多样化的图像,并且证明不会遭受模式崩溃的问题。这是因为扩散模型保留了数据的语义结构的能力。然而,这些模型需要极高的计算能力,训练需要非常大的内存和碳足迹,这使得大多数研究人员甚至无法尝试该方法。这是因为所有马尔可夫状态都需要始终在内存中进行预测,这意味着所有时间都存在内存中的大型深度网络的多个实例。此外,由于这些模型往往会卡在图像数据的微小细节上,因此这些方法的训练时间也变得太长(例如需要数天到数月)。然而,需要注意的是,这种细粒度的图像生成也是扩散模型的主要优势之一,因此这是一种自相矛盾的使用方法。
另一个来自NLP领域的非常著名的方法系列是Transformer。它们在语言建模和构建对话AI工具方面非常成功。在视觉应用中,Transformer显示出广泛性和适应性的优势,使其适用于通用学习。它们比其他技术更好地捕捉文本和图像中的语义结构。然而,与其他方法相比,在许多视觉领域中,Transformer需要大量的数据,并且在性能方面也面临瓶颈。
潜在扩散模型
潜在扩散模型是一种最近提出的方法,它利用了GANs的感知能力、扩散模型的细节保留能力和Transformer的语义能力,将所有三者结合起来。作者称之为“潜在扩散模型(LDM)”。LDM已经证明自己比所有先前的模型更加稳健和高效。与其他方法相比,它们不仅内存效率更高,而且能够产生多样化、高度详细的图像,同时保留数据的语义结构。简而言之,LDM是将扩散过程应用于潜在空间而不是像素空间,并将Transformer的语义反馈纳入其中。
任何生成学习方法都有两个主要阶段:感知压缩和语义压缩。
感知压缩
在感知压缩学习阶段,学习方法必须通过去除高频细节将数据封装成抽象表示形式。这一步是建立环境不变性和鲁棒性表示的必要步骤。GANs擅长提供这种感知压缩。它们通过将来自像素空间的高维冗余数据投影到称为潜在空间的超空间中来实现这一点。潜在空间中的潜在向量是原始像素图像的压缩形式,并且可以有效地用于代替原始图像。
更具体地说,自动编码器(AE)结构是捕获感知压缩的工具。AE中的编码器将高维数据投影到潜在空间中,解码器从潜在空间中恢复图像。
语义压缩
在学习的第二阶段中,图像生成方法必须能够捕捉数据中存在的语义结构。这种概念和语义结构是提供图像中各种对象之间的上下文和相互关系保留的关键。Transformer在文本和图像中捕获语义结构方面非常出色。Transformer的泛化能力和扩散模型的细节保留能力的组合提供了最佳的解决方案,使方法能够生成细粒度、高度详细的图像,并保留图像中的语义结构。感知损失
LDM内的自编码器通过将数据投影到潜在空间来捕获数据的感知结构。作者使用了一个特殊的损失函数来训练这种自编码器,称之为“感知损失”[4-5]。该损失函数确保重构被限制在图像流形内,并减少了使用像素空间损失(如L1/L2损失)时存在的模糊度。
扩散损失
扩散模型通过逐渐从正态分布变量中去除噪声来学习数据分布。换句话说,DM采用长度为T的逆Markov链。这也意味着DM可以被建模为一系列“T”去噪自编码器,用于时间步长t=1,…,T。这由下面的方程式中的εθ表示。请注意,损失函数取决于潜在向量而不是像素空间。
图4:潜在扩散模型损失函数解释(来源:作者)
条件扩散
扩散模型是依赖于先验条件的条件模型。在图像生成任务中,先验条件通常是文本、图像或语义地图。为了获取这个条件的潜在表示,使用一个转换器(如CLIP),将文本/图像嵌入到潜在向量“τ”中。因此,最终的损失函数不仅取决于原始图像的潜在空间,还取决于条件的潜在嵌入。
注意机制
LDM的主干是带有稀疏连接的U-Net自编码器,提供跨注意力机制[6]。Transformer网络将条件文本/图像编码为潜在嵌入,然后通过交叉注意力层将其映射到U-Net的中间层。该交叉注意力层实现了注意力(Q,K,V)= softmax(QKT/✔d)V。其中Q,K和V是可学习的投影矩阵[6]。
文本到图像合成
我们使用Python中最新的官方实现_LDM_ v4来生成图像。在文本到图像合成中,LDM使用预训练的CLIP模型[7],为多种模态(如文本和图像)提供通用的基于Transformer的嵌入。然后,将转换器模型的输出输入到_LDM_的Python API中,称为“diffusers”。还可以调整一些参数(例如扩散步骤数量、种子、图像大小等)。
图5:使用LDM和文本输入生成的图像(来源:作者)
图像到图像合成
相同的设置也适用于图像到图像合成,但需要一个输入样本图像作为参考图像。生成的图像在语义和视觉上与参考图像相似。这个过程在概念上类似于基于风格的GAN模型,但它在保留图像的语义结构方面做得更好。
图6:使用图像+文本输入的LDM生成的图像(来源:作者)
结论
我们介绍了图像生成领域中最新的发展——潜在扩散模型。LDM能够在细节上生成多样化背景的高分辨率图像,同时还能保留图像的语义结构。因此,LDM是图像生成领域和深度学习领域的一大步。如果你还在疑惑“稳定扩散模型”是什么,那么它只是使用_CLIP_作为文本编码器,将LDM重新打造成适用于高分辨率图像的模型。
如果你想亲自尝试这种方法,可以使用以下链接中简单易用的笔记本进行操作:
代码:
参考文献:
[1] Jonathan Ho, Ajay Jain, Pieter Abbeel, “Denoising Diffusion Probabilistic Models”, 2020
[2] Alec Radford, Jong Wook Kim, Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal, Girish Sastry, Amanda Askell, Pamela Mishkin, Jack Clark, Gretchen Krueger, Ilya Sutskever,”Learning Transferable Visual Models From Natural Language Supervision”, 2021
[3] Robin Rombach and Andreas Blattmann and Dominik Lorenz and Patrick Esser and Björn Ommer, “High-Resolution Image Synthesis with Latent Diffusion Models”, arXiv:2112.10752, 2021,[4] Richard Zhang、Phillip Isola、Alexei A. Efros、Eli Shechtman、Oliver Wang,“深度特征作为感知度量的非常规有效性”,CVPR,2018年。
[5] Patrick Esser、Robin Rombach、Björn Ommer,“驯服Transformer实现高分辨率图像合成”,CVPR,2020年。
[6] Ashish Vaswani、Noam Shazeer、Niki Parmar、Jakob Uszkoreit、Llion Jones、Aidan N. Gomez、Lukasz Kaiser、Illia Polosukhin,“Attention Is All You Need”,2017年。
[7] Alec Radford、Jong Wook Kim、Chris Hallacy、Aditya Ramesh、Gabriel Goh、Sandhini Agarwal、Girish Sastry、Amanda Askell、Pamela Mishkin、Jack Clark、Gretchen Krueger、Ilya Sutskever,“从自然语言监督中学习可转移的视觉模型”,2021年。
[8] Blattmann等人,《潜在扩散模型》,https://github.com/CompVis/latent-diffusion,2022年。
评论(0)