AI生成核心揭秘:潜在空间技术深度解析
AI生成核心揭秘:潜在空间技术深度解析
未知变量潜在空间:点燃AI图像与视频创作的想象之源
上个月,GPT-4o的图像生成能力着实火了一把,尤其是它生成的“吉卜力”风格图片,在网络上引发了热烈讨论,再次将生成式AI推向了风口浪尖。
在这波热潮背后,有一个关键技术功不可没,那就是潜在空间(Latent Space)。它就像是生成模型的“引擎”,为图像、视频乃至更多内容的创作提供了源源不断的动力和无尽的想象空间。
最近,知名研究者Andrej Karpathy也关注到了这个领域,并转发了Google DeepMind研究科学家Sander Dielman的一篇深度博客文章。这篇文章深入探讨了生成模型(涵盖图像、音频、视频等)是如何巧妙利用潜在空间来提升生成效率和作品质量的。
Sander Dielman自2015年加入DeepMind以来,深度参与了众多明星项目,包括大名鼎鼎的WaveNet、AlphaGo,以及近期的Imagen 3和Veo等,研究领域横跨深度学习、生成模型和表征学习(Representation Learning),是一位经验丰富的专家。
在他的文章中,Dielman生动地将潜在变量比作**“数据的精髓”**。他解释道,通过将复杂的高维数据(如图像像素、音频波形)压缩到低维的潜在空间中,模型可以更高效地学习和生成新内容。文章还细致地比较了变分自编码器(VAEs)、生成对抗网络(GANs)和扩散模型(Diffusion Models)这几类主流生成模型,清晰地展示了潜在变量在帮助这些模型生成逼真内容时所扮演的核心角色。
Dielman还结合自身参与的项目进行举例说明。例如,他参与开发的WaveNet,正是利用潜在变量技术,成功实现了高质量的语音合成,并已广泛应用于谷歌的众多产品中。他还以VQ-VAE为例,阐述了离散化的潜在空间如何显著提升图像生成的效率。
总而言之,这篇文章既有理论的严谨,又不乏直观的洞见,对于希望深入理解生成模型工作原理的读者来说,是一份不可多得的参考资料。
核心方法:两步走的训练策略
要在潜在空间里训练好生成模型,通常需要分两步走:
训练自编码器(Autoencoder):
- 首先,我们需要训练一个自编码器。它本质上是一个神经网络,由两个部分组成:编码器(Encoder)和解码器(Decoder)。
- 编码器的任务是将输入的原始信号(比如一张图片)压缩,映射到一个低维的潜在表征(Latent Representation),也就是我们所说的潜在空间中的一个点或向量。
- 解码器的任务则正好相反,它负责将这个潜在表征“解压缩”,尽可能无损地还原成原始的输入信号。
- 这一阶段的目标是让自编码器学会如何在压缩和解压过程中,最大限度地保留原始信号的关键信息。
在潜在表征上训练生成模型:
- 一旦自编码器训练完毕,我们就可以利用它的编码器部分,将整个训练数据集的原始信号都转换成对应的潜在表征。
- 接下来,我们直接在这些潜在表征上训练一个生成模型。目前比较主流的选择是自回归模型(Autoregressive Models)或扩散模型(Diffusion Models)。
- 需要特别注意的是,在第二阶段训练生成模型时,第一阶段训练好的自编码器参数会被“冻结”,不再更新。这意味着生成模型学习过程中产生的梯度,不会反向传播到编码器中去。
- 自编码器的解码器部分在第二阶段的训练中并不活跃,但它在生成新内容时至关重要。因为生成模型最终输出的是潜在空间中的向量,我们需要借助解码器,才能将这些向量转换回我们能看懂的图像、音频等形式。
下面这张图清晰地展示了这种两阶段训练方法。图中带有「∇」符号的网络表示在该阶段其参数正在被学习(通常使用基于梯度的优化方法);而带有雪花符号「❄️」的网络则表示其参数被冻结,不再改变。
图示:潜在生成模型的两阶段训练流程
理解训练中的损失函数
在这两个训练阶段中,会用到几种不同的损失函数(Loss Functions),它们在图中用红色标出,各自扮演着不同的角色:
重建损失(Reconstruction Loss):
- 为了确保编码器和解码器能够忠实地还原输入信号,需要多种损失函数来约束解码器的输出(重建信号)与原始输入之间的相似度。
- 常见的重建损失包括:
- 回归损失(Regression Loss): 比如常用的均方误差(MSE)或平均绝对误差(MAE),直接衡量重建像素/样本与原始像素/样本的差异。
- 感知损失(Perceptual Loss): 这类损失通常借助另一个预训练好的、参数冻结的神经网络(如图像识别模型)来提取输入和重建信号的“感知特征”。它不只关心像素级别的精确匹配,更关注两者在人眼看来是否相似,尤其是在保留高频细节方面效果显著。对于图像任务,LPIPS是一个流行的选择。
- 对抗损失(Adversarial Loss): 借鉴生成对抗网络(GAN)的思路,引入一个判别器网络(Discriminator)与自编码器一起训练。判别器的目标是区分“真实”的输入信号和“重建”的信号,而自编码器则努力生成让判别器“真假难辨”的重建信号。这种损失有助于提升重建结果的真实感(realism),即使代价是与原始输入的像素级差异略有增加。为了训练稳定,对抗损失通常在训练初期会被暂时禁用。
瓶颈损失(Bottleneck Loss):
- 为了限制潜在表征的信息容量,防止它“死记硬背”输入信息,有时会直接在潜在向量上施加额外的损失函数。这就像在自编码器的中间加了一个瓶颈,故称瓶颈损失。不过,并非所有模型都使用它。
生成模型损失(Generative Model Loss):
- 在第二阶段,训练生成模型时,会使用其自身的特定损失函数,这与第一阶段的损失函数是分开的。
- 对于自回归模型,通常是负对数似然损失(Negative Log-Likelihood Loss)。
- 对于扩散模型,则是特定的扩散损失(Diffusion Loss)。
下图更详细地展示了第一阶段训练过程,明确标示了通常参与其中的各个网络组件及其作用。
图示:第一阶段训练(自编码器学习)的详细网络结构
需要说明的是,这里描述的是一个通用的框架。在具体的应用场景中,比如处理音频或视频时,这个“配方”常常会有各种各样的变体和调整。但我尝试总结的是在当前大多数实际应用中比较常见的核心要素。
追本溯源:潜在空间方法的演进历程
如今生成模型领域的两大主流范式——自回归模型和扩散模型——最初其实都是直接应用于“原始”的数字感知信号上的,比如图像的像素(pixels)或音频的波形(waveforms)。
- 早期的PixelRNN和PixelCNN模型,就是逐个像素地生成图像。
- WaveNet和SampleRNN则是逐个采样点地生成音频波形。
- 在扩散模型方面,开创性的工作也是直接在像素级别生成图像。类似地,早期的音频扩散模型如WaveGrad和DiffWave也是直接生成波形样本。
然而,研究者们很快发现,直接在原始信号上操作面临巨大的扩展性挑战(scalability issues)。主要原因可以归结为一点:感知信号中充斥着大量我们无法察觉的“噪声”或冗余信息。
换句话说,一个信号所包含的总信息量中,只有一小部分真正影响我们的主观感知(看起来怎么样,听起来怎么样)。因此,如何让生成模型更“聪明”,把有限的计算资源(模型容量)集中用于建模这部分真正重要的、影响感知的信息,就变得至关重要。如果我们能做到这一点,就能用更小、更快、成本更低的模型,生成同样高质量(甚至更高质量)的内容。这正是引入潜在空间的初衷。
潜在自回归模型:VQ-VAE的突破
图像自回归模型领域的一个里程碑式进展,来自于VQ-VAE(Vector Quantised Variational Autoencoder)这篇论文。它提出了一种非常实用的策略:通过在自编码器中引入一个矢量量化(Vector Quantization)瓶颈层,让神经网络能够学习到**离散的(discrete)**潜在表征。
具体做法是:
- 使用一个包含多个下采样(downsampling)阶段的卷积编码器,将输入图像转换成一个空间网格(grid)状的向量集合。这个网格的分辨率通常比原图低很多(例如,宽高各缩小4倍,空间位置减少16倍)。
- 然后,这些向量通过一个矢量量化瓶颈层,被“强制”映射到码本(codebook)中预定义的一组离散向量上。
有了这种离散的潜在表征,我们就可以训练一个类似PixelCNN的模型,在潜在空间中逐个生成这些离散的潜在向量,而不是在像素空间逐个生成像素。这样做的好处是:
- 大大减少了生成所需的步数(因为潜在空间的维度远低于像素空间)。
- 更重要的是,在潜在空间计算似然损失(likelihood loss),可以有效避免模型将大量精力浪费在建模那些人眼无法察觉的噪声和冗余细节上。这相当于采用了一种更侧重于感知相关信息的损失函数,因为很多与感知无关的细节在压缩到潜在向量时就被过滤掉了。(关于这一点,可以参考作者关于典型性(typicality)的另一篇博客文章)。
VQ-VAE论文展示了在ImageNet上训练的模型生成的128x128分辨率图像,达到了当时只有GANs才能企及的水平。
离散化对于VQ-VAE的成功至关重要,因为当时的自回归模型在处理离散输入时表现更好。但也许更深层的原因在于,这种潜在表征保留了空间结构(spatial structure),使得研究者可以很方便地将现有的基于像素的模型(如PixelCNN)稍作修改就应用过来。在此之前,传统的变分自编码器(VAEs)通常将整张图像压缩成单个潜在向量,这种表征缺乏拓扑结构。而现代潜在表征的网格结构,恰恰**镜像(mirrors)**了原始输入信号(如图像)的网格结构,生成模型的网络架构(如卷积层、循环层或注意力层)可以有效利用这种结构来提升效率。
后续的VQ-VAE 2将图像分辨率提升到了256x256,并通过扩大模型规模和采用多层级的潜在网格(以层级化结构组织),显著提升了图像质量。
紧接着,VQGAN横空出世,它巧妙地将GAN的对抗学习机制与VQ-VAE架构结合起来。这使得潜在空间的下采样因子可以从4倍大幅提升到16倍(意味着空间位置比原始像素输入减少了惊人的256倍),同时解码器依然能够生成清晰逼真的重建图像。对抗损失在这里发挥了关键作用,它鼓励解码器生成看起来真实的输出,即使这些输出与原始输入的像素级匹配度不那么高。
可以说,VQGAN成为了近五年来感知信号生成建模领域飞速发展的核心技术之一。它的影响力不容小觑——作者甚至认为,GANs之所以能在2024年的NeurIPS大会上获得“时间考验奖”(Test of Time Award),VQGAN论文提供的“助攻”功不可没。正是VQGAN让GANs即便在被扩散模型几乎全面取代了媒体生成基础任务之后,依然保持着其重要性。
值得注意的是,我们在前面“核心方法”部分提到的许多技术元素,实际上很多都在VQGAN这篇论文中被构思或整合了。虽然如今主流的生成器(generator)通常不再是自回归模型(像Parti、xAI最近的Aurora模型以及OpenAI的GPT-4o是少数例外),量化瓶颈也被其他技术所替代,但其他核心思想依然沿用至今。特别是回归损失、感知损失和对抗损失的组合,虽然看起来有些复杂繁琐,却异常“顽强”地存活了下来。在快速迭代的机器学习领域,这种持久性相当罕见——也许只有万年不变的Transformer架构和Adam优化器能与之媲美!
(补充一点:虽然离散表征对于早期大规模潜在自回归模型的成功至关重要,但近期在连续潜在空间(continuous latent spaces)中进行自回归建模也取得了一些不错的效果。)
潜在扩散模型:强强联合
随着潜在自回归模型在2010年代后期逐渐成熟,以及扩散模型在2020年代初期的异军突起,将这两种方法的优势结合起来,成为了一个自然而然的演进方向。就像许多“英雄所见略同”的创新一样,在2021年下半年,arXiv上涌现出了一系列探讨这个主题的论文。
其中最广为人知的,当属Rombach等人的论文《High-Resolution Image Synthesis with Latent Diffusion Models》。他们基于之前的VQGAN研究成果,将自回归的Transformer模型替换为基于UNet架构的扩散模型。这项工作奠定了后来大名鼎鼎的Stable Diffusion模型的基础。同期也有其他相关研究,虽然规模较小或针对非图像数据,但也进行了类似的探索。
不过,这种基于潜在空间的方法并非一开始就成为主流。早期的商业文生图模型,如DALL-E 2和Imagen 2,采用的是所谓的**分辨率级联(resolution cascades)**策略:
- 一个基础的扩散模型直接在像素空间生成一张低分辨率图像。
- 然后,一个或多个上采样(upsampling)扩散模型再基于这张低分辨率图像,逐步生成更高分辨率的输出。
直到Stable Diffusion问世并取得巨大成功后,业界才普遍转向基于潜在空间的方法,包括后来的DALL-E 3和Imagen 3。
自回归模型和扩散模型在训练方式上有一个关键区别在于所使用的损失函数。
- 自回归模型的训练相对直接,通常就是最大化数据的似然(likelihood)(尽管也有其他尝试)。
- 扩散模型的训练则更为复杂,其损失函数涉及到对所有**噪声水平(noise levels)的期望进行优化,而不同噪声水平的相对权重会显著影响模型最终学到什么。有观点认为,可以将典型的扩散损失理解为一种感知加权(perceptually weighted)**的损失函数,因为它倾向于更关注那些在感知上更为显著的信号成分。
乍一看,这似乎让两阶段方法显得有些多余。因为扩散损失本身似乎就在做类似的事情——过滤掉与感知无关的信号内容,避免浪费模型容量。但实践表明,这两种机制其实是高度互补的,原因如下:
- 感知机制在不同尺度上的差异:尤其是在视觉领域,我们感知小尺度细节(如纹理)和大尺度结构的方式似乎存在根本不同。建模纹理和精细细节可能需要特殊处理,而对抗性方法(在自编码器阶段引入)可能更擅长处理这类问题。下文会详细讨论这一点。
- 计算效率:训练大型、强大的扩散模型计算成本极高。通过在更紧凑的潜在空间中操作,可以避免直接处理庞大、笨重的原始输入表征(如高分辨率图像),从而显著减少内存需求,加速训练和采样过程。
早期确实有一些工作尝试过端到端(end-to-end)的方法,试图联合学习潜在表征和扩散先验模型,但这种方法并未流行起来。尽管从工程角度看,避免多阶段训练带来的序列依赖性是理想的,但潜在空间方法在感知效果和计算效率上带来的巨大优势,使得这些额外的“麻烦”是值得的。
为什么需要两阶段训练?潜在空间的优势
正如前面提到的,感知信号中充斥着大量我们无法察觉的冗余信息。因此,确保生成模型能够高效利用其计算资源,专注于建模那些真正影响感知的核心信息至关重要,这直接关系到模型的成本效益。
两阶段方法的核心价值正在于此:
- 提取更紧凑的表征:通过自编码器,将高维、冗余的原始信号压缩成低维、精炼的潜在表征。
- 聚焦感知相关内容:在压缩过程中,理想情况下会过滤掉大部分与感知无关的噪声和细节。
- 在精炼表征上建模:生成模型不再直接处理原始信号,而是在这个更紧凑、信息更集中的潜在表征上进行学习和生成。
这样做的好处是,我们能够让相对较小的生成模型,发挥出远超其规模的生成效果。
“大多数感知信号中的信息在感知上并不重要”——这个洞察其实并不新鲜。它也是**有损压缩(lossy compression)**技术(如JPEG用于图像,MP3用于音频)背后的核心思想。这些压缩算法正是利用了信号中的冗余性,以及我们人类感知系统对低频信息比高频信息更敏感等特性,才能用更少的数据量来表示原始信号,同时尽量不影响我们的主观感受。(当然还有其他感知效应,比如听觉掩蔽(auditory masking),但频率敏感性的不均匀性是最关键的因素之一。)
那么,一个自然的问题是:我们为什么不直接在这些现成的有损压缩格式(如JPEG、MP3的编码结果)之上构建生成模型呢?
这并非完全不可行,确实有一些研究尝试过利用这些传统压缩算法或其部分组件。但机器学习研究者们通常更倾向于“用魔法打败魔法”——看看能否通过学习的方式,设计出比这些“手工设计”的压缩算法更好的表征,用于生成任务。
这不仅仅是研究者的“执念”,背后其实有充分的理由。与单纯追求极致压缩率(越小越好)的压缩任务不同,生成建模的目标还引入了额外的约束:某些表征形式比其他形式更容易被生成模型学习和建模(easier to model)。
关键在于,理想的潜在表征需要在压缩信息的同时,保留一定的结构性(structure),这种结构性可以被生成模型利用(例如,通过赋予模型适当的归纳偏置(inductive biases))。这就带来了一个在**重建质量(reconstruction quality)和潜在表征的可建模性(modelability)**之间的权衡,我们将在下一节深入探讨。
潜在表征与感知尺度的关系:纹理 vs. 结构
潜在表征有效的另一个重要原因是,它们能够利用我们感知系统在**不同尺度(scales)**上运作方式不同的特点。
- 在音频领域,这一点比较直观:信号幅度的快速变化(高频)产生音高(pitch)的感知,而较慢时间尺度上的变化(如鼓点)则可以被单独辨别出来。
- 在视觉领域,类似现象也存在,只是不那么广为人知:颜色和强度的快速、局部波动被感知为纹理(texture)。
作者曾在Twitter上对此进行过解释,这里转述其核心思想:
可以将世界看作由**“结构”(Structure,或称为“物体” Things)和“纹理”(Texture,或称为“材质” Stuff)**组成的。
想象一张“狗在田野里”的图片。
- 草地的纹理(材质)是高度随机、细节丰富的(高熵),但我们通常不关心每一根草的具体形态。我们只需要识别出“这是一片草地”即可,不会去数草叶。即使草的纹理具体实现方式略有不同(比如换一片草地,或者同一片草地不同时刻的光照),我们通常也难以察觉,除非将两张图直接叠加对比。
- 而狗(物体)则不同,尤其是像狗的眼睛这样的关键结构,任何微小的改变都会立刻被我们注意到。
一个好的潜在表征,应该能够抽象掉(abstract away)纹理的细节,但尽可能保留结构的精确信息。
这样做的好处是:
- 自编码器在重建图像时,草地纹理的具体实现可以与原始输入有所不同,而不会显著影响我们对重建图像“保真度”的主观评价。这使得自编码器可以“丢弃”大量关于纹理具体实现的模式信息,用更简洁的方式在其潜在空间中表示“这里有草地纹理”这个概念。
- 这反过来也使得在潜在空间中进行生成建模变得更容易。生成模型现在只需要学习“何时何地应该有草地纹理”,而不需要精确复现该纹理的所有复杂细节和无穷变化。
图示:一张狗在田野中的图片。上半部分的天空像素(蓝色区域)熵值很低,相邻像素非常相似,易于预测。下半部分的草地(绿色区域)熵值很高,纹理复杂,使得附近的像素难以预测。
正是因为两阶段方法带来了如此显著的效率提升(包括训练速度、推理速度和成本),我们似乎愿意容忍它引入的额外复杂性——至少目前是这样。这种效率提升不仅让训练过程更快、更便宜,更关键的是,它能极大加速采样(sampling)过程,即生成新内容的速度。对于像扩散模型这样需要多次迭代前向传播才能生成一个样本的模型来说,这种成本降低尤其受欢迎。
权衡之道:重建质量 vs. 可建模性
深入理解有损压缩和潜在表征学习之间的差异非常有价值。虽然两者都可以利用机器学习,但目前广泛使用的多数有损压缩算法(如JPEG, MP3)并未采用机器学习。这些传统算法通常基于率失真理论(Rate-Distortion Theory),该理论量化了压缩程度(率 Rate,即压缩后的数据量大小)与允许的解压缩信号与原始信号的偏差程度(失真 Distortion)之间的关系。
对于用于生成模型的潜在表征学习,我们可以将这个经典的权衡扩展一下,引入**可建模性(Modelability)或可学习性(Learnability)**的概念。它描述的是,一个生成模型要捕捉并学习这种潜在表征的分布,有多困难。
这就形成了一个三方的**率-失真-可建模性(Rate-Distortion-Modelability)权衡。这与Tschannen等人在表征学习背景下讨论的率-失真-有用性(Rate-Distortion-Usefulness)权衡密切相关。(在机器学习语境下,另一种扩展此权衡的流行方式是率-失真-感知(Rate-Distortion-Perception)**权衡,它明确区分了像素级的重建保真度和主观的感知质量。为避免过于复杂,本文将失真视为在感知空间中测量的量,而非输入空间。)
为什么可建模性会与失真(或者说重建质量)产生冲突呢?乍看之下并不明显。
要理解这一点,可以思考有损压缩算法的工作原理:它们利用信号中已知的结构性(structure)来减少冗余。在这个过程中,这些结构通常会从压缩后的表征中被移除,因为解压缩算法被设计为能够(近似地)重建它们。
然而,输入信号中的这种结构性,恰恰也是现代生成模型(如卷积网络、Transformer)赖以高效工作的基础。这些模型通过**架构上的归纳偏置(architectural inductive biases)**来利用信号的特性,例如平移不变性/等变性、特定的频率谱特征等。
想象一下,如果我们有一个“完美”的压缩算法,能够极其高效地移除输入信号中几乎所有的冗余。那么,剩下的压缩信号将几乎是无结构的(structureless)、类似白噪声的随机数据。这将使得生成模型极难捕捉和学习这种压缩信号中仅存的变异性。如果我们的目标仅仅是压缩,那完全没问题。但如果我们的目标是生成建模,这就行不通了。
因此,我们必须在压缩效率和保留结构之间找到一个平衡点。一个好的潜在表征学习算法,应该:
- 检测并移除部分冗余。
- 同时保留足够多的信号结构,让生成模型有章可循,能够利用这些结构来更有效地学习和生成。
一个典型的反面例子是熵编码(Entropy Coding),如JPEG/PNG中的霍夫曼编码或H.265中的算术编码。它本身是一种无损压缩技术,但也常作为许多有损压缩方案的最后一步。熵编码通过为频繁出现的模式分配更短的代码来减少数据量。它不丢失信息,但会破坏原有的结构。输入信号的微小变化可能导致熵编码后的序列发生巨大变化,使得对熵编码序列进行建模变得异常困难。
相比之下,我们用于生成模型的潜在表征,倾向于保留大量的信号结构。下图展示了从几张图片中提取的Stable Diffusion潜在表征的可视化(来自EQ-VAE论文)。即使只看这些潜在表征(经过主成分分析映射到RGB通道),我们仍然可以大致识别出图像中的动物。它们看起来就像是带有扭曲颜色的、低分辨率的、略带噪声的图像。
图示:从几幅图像中提取的Stable Diffusion潜在表征的可视化(来自EQ-VAE论文)。潜在空间的前三个主成分被映射到颜色通道。即使在潜在空间,图像中的动物仍然依稀可见,表明编码器保留了大量原始信号的结构。
这就是为什么作者喜欢将现代图像潜在表征视为**“高级像素”(fancy pixels)**——它们捕捉了一些普通像素无法捕捉的额外信息,但在很大程度上仍然表现得像像素一样,保留了网格结构和一定的空间相关性。
可以说,这些潜在表征相当低层次(low-level)。传统的变分自编码器(VAE)将整张图像压缩成单个特征向量,通常能得到可以进行语义操作(比如改变表情、姿态)的高层次(high-level)表征。而现代用于图像生成建模的潜在表征,实际上更接近像素层面。它们具有更高的容量(capacity),并继承了输入的网格结构(只是分辨率降低了)。网格中的每个潜在向量可能抽象掉了一些低层次的图像特征(如纹理),但它并不直接捕捉图像内容的语义(semantics)。这也是为什么大多数这类自编码器在训练时并不需要额外的条件信号(如文字描述),因为这些条件信号主要约束的是高层次结构(当然也有例外)。
控制潜在空间的容量:下采样、通道数与量化
对于具有网格结构的潜在空间,有两个关键的设计参数共同决定了其容量(capacity),即它能容纳多少信息:
- 下采样因子(Downsampling Factor): 指潜在表征在空间(或时间)维度上相对于原始输入的缩小倍数。例如,下采样因子为8,意味着潜在网格的长和宽都缩小了8倍,总的空间位置减少了64倍。
- 通道数(Number of Channels): 指潜在网格中每个位置的向量维度。原始RGB图像每个像素有3个通道,而潜在向量通常有更多通道(如8个、32个甚至更多)。
如果潜在表征是离散的(如VQ-VAE),那么**码本大小(Codebook Size)**也至关重要,因为它直接限制了每个潜在向量能够表示的信息位数。
(除了这些结构参数,正则化策略也扮演着重要角色,我们将在下一节讨论它们的影响。)
举个例子:
- 输入:一张256x256像素的RGB图像(总像素数 256 * 256 = 65,536;总数值量 65,536 * 3 = 196,608)。
- 编码器:可以采用带步幅(stride)的卷积层堆栈,或者使用补丁大小(patch size)为8的Vision Transformer(ViT)。
- 输出(潜在表征):一个32x32大小的网格,每个位置是一个包含8个通道的连续潜在向量(总潜在向量数 32 * 32 = 1,024;总数值量 1,024 * 8 = 8,192)。
- 计算:
- 空间下采样因子 = 256 / 32 = 8。空间位置减少了 8 * 8 = 64倍。
- 每个潜在向量有8个分量,而每个像素只有3个分量(RGB)。
- 总体上,潜在表征的张量元素数量(总数值量)比原始图像要少。作者喜欢将这个比例称为张量尺寸缩减因子(Tensor Size Reduction factor, TSR),以区别于单纯的空间或时间下采样因子。在这个例子中,TSR = 196,608 / 8,192 = 24。
图示:展示上述例子中输入和潜在维度关系的示意图。
如果我们保持总的TSR不变,可以通过调整下采样因子和通道数来进行权衡:
- 例如,将下采样因子增加到16(潜在网格变为16x16),同时将通道数增加到32(16 * 16 * 32 = 8,192),TSR仍然是24。
对于给定的TSR,通常存在多种**(下采样因子,通道数)**组合,它们在重建质量方面表现可能差不多,尤其是在处理视频时,时间和空间的下采样因子可以分开控制。
然而,如果我们改变TSR本身(比如只增加下采样因子而不相应增加通道数,或者反之),通常会对重建质量和可建模性产生显著影响。
从纯数学角度看,如果潜在变量是**实数值(real-valued)**的,网格大小和通道数量似乎不应该那么重要,因为理论上单个实数就能编码无限信息(Tupper自指公式巧妙地证明了这一点)。但实际上,有几个因素限制了潜在表征中单个分量能有效携带的信息量:
- 有限精度:我们使用**浮点数(floating-point numbers)**来表示实数,其精度是有限的(如32位单精度)。
- 噪声注入:许多模型(如VAE)在编码过程中会添加少量噪声,这进一步限制了有效精度,因为噪声会掩盖掉一些低位信息。
- 神经网络学习非线性函数的局限性:虽然神经网络是通用函数逼近器,但它们天然倾向于学习相对平滑、简单的函数。将大量信息高度非线性地压缩到少数几个数字中,对神经网络来说非常困难。虽然有方法(如傅里叶特征)可以帮助学习更复杂的非线性函数,但这可能会破坏信号结构,反而对可建模性不利。因此,使用更多分量(即更大的TSR或更优的结构)来表示信息通常是更好的权衡。
对于离散潜在表征,情况类似:
- 离散化(如VQ-VAE的码本)为信息内容设定了一个硬性上限(每个潜在向量最多表示log2(码本大小)比特的信息)。
- 能否有效利用这个容量,取决于编码器的表达能力和量化策略的效果(例如,是否能均匀地使用所有码字,实现高码本利用率(codebook utilization))。
- 目前最常用的仍然是VQ-VAE中的原始VQ瓶颈,但近期出现了一些改进方法,如通过“旋转技巧”提供更好梯度估计的方法,以及一些无需显式学习码本的替代方案,如有限标量量化(FSQ)、无查找量化(LFQ)和二进制球面量化(BSQ)。
总结来说,选择合适的TSR至关重要:
- 更大的潜在表征(通常意味着更小的TSR,即压缩率较低)可以带来更好的重建质量(更高的率,更低的失真)。
- 但这可能会对可建模性产生负面影响,因为需要建模的信息位更多了,对生成模型的能力要求也更高。
在实践中,这个权衡通常需要通过经验性地反复试验(empirical tuning)来找到最佳点。这可能是一个成本高昂的过程,因为目前还没有可靠且计算成本低的可建模性代理指标(proxy metrics for modelability)。因此,需要反复训练足够大的生成模型才能得到有意义的比较结果。
Hansen-Estruch等人最近对潜在空间容量及其各种影响因素进行了广泛的探索(其关键发现已在文中明确标出)。目前的一个趋势是,为了处理更高分辨率的图像和视频生成,研究者们倾向于增加空间下采样因子,并相应地增加通道数以保持(或适度调整)TSR(例如,LTX-Video中的32倍、GAIA-2中的44倍,以及DCAE中的64倍空间下采样)。
精雕细琢:梳理与塑造潜在空间
前面我们讨论了潜在表征的容量(capacity),即应该包含多少信息。同样重要的是,要精确控制原始输入信号中的**哪些信息(which bits)应该被保留在潜在表征中,以及这些信息是如何呈现(how they are presented)**的。
作者将前者称为**梳理(curating)潜在空间(决定保留什么信息),后者称为塑造(shaping)**潜在空间(决定信息如何组织和表示)。这种区分虽然微妙,但很重要。
已经有许多**正则化策略(regularisation strategies)**被设计出来,用于塑造、梳理和控制潜在表征的容量。这里主要关注连续潜在表征的情况,但许多考虑因素同样适用于离散情况。
VQGAN的两种正则化思路:VQ-reg vs. KL-reg
Rombach等人在其Latent Diffusion论文中,针对连续潜在空间提出了两种正则化策略,这两种策略都源于对VQGAN的改造:
VQ 正则化 (VQ-reg):
- 基本沿用了VQGAN的设计,但将量化步骤(quantization step)视为解码器的一部分(而不是编码器的一部分)。
- 这样,编码器的输出就是连续的潜在向量,但在训练解码器时,这些向量会先经过量化再输入解码器。
- 这种做法巧妙地保留了VQGAN结构的大部分优点(该结构在自回归模型上效果很好),同时量化步骤像一个“安全阀”,间接限制了连续潜变量携带过多信息。
KL 正则化 (KL-reg):
- 完全移除VQGAN中的量化操作。
- 取而代之,引入了类似标准变分自编码器(Variational Autoencoder, VAE)中的KL散度惩罚项(KL divergence penalty)。
- 这个惩罚项旨在鼓励潜在表征的分布接近一个预设的先验分布(通常是标准高斯分布 N(0, I))。
对KL正则化的反思:
KL正则化是传统VAE架构的核心。它构成了**证据下界(Evidence Lower Bound, ELBO)**的两项之一,而最大化ELBO是训练VAE的标准方法(间接最大化数据似然)。
然而,关键在于:只有当KL项前面没有引入缩放超参数(或者说缩放系数为1)时,ELBO才是数据似然的一个严格下界。但在实际应用中,为了保证训练稳定性和获得良好的重建质量,KL正则项几乎总是被赋予一个非常小的权重因子(通常比重建损失小几个数量级)。这基本上切断了它与变分推断原始理论的直接联系。
为什么需要这样做?因为未经缩放的KL项约束力过强,会极大地压缩潜在空间的有效容量,导致重建图像质量严重下降(变得模糊)。为了“实用”,大家普遍选择大幅降低它的权重。
(题外话:在某些更关注潜在空间语义可解释性或解耦(disentanglement)特性,而非极致重建效果的任务中,研究者反而会增加KL项的权重,比如在 β-VAE 中。)
作者认为(这部分带有主观色彩),当前关于KL项作用的讨论中存在不少“迷思”。例如,人们普遍认为KL项能引导潜在变量分布趋向高斯分布。然而,在实际使用的极小权重下,这种效果微乎其微。即使在“真正的”VAE中(KL权重为1),所有样本的潜在表征汇总起来形成的**聚合后验分布(aggregate posterior)**也很少呈现标准高斯形态。
因此,作者看来,“VAE”中的那个“V”(Variational,变分)如今在很大程度上已经名存实亡,其存在更多是历史原因。或许称这类模型为**“KL正则化自编码器”(KL-regularised autoencoders)**更为贴切,更能反映当前的实践。
在这种设定下,KL项的主要作用更像是:
- 抑制潜在变量分布中的离群点(outliers)。
- 在一定程度上约束其数值尺度(scale)。
换句话说:尽管KL项常被解释为限制潜在变量容量的机制,其在现实中的作用,更多是轻微地**塑造(shape)**潜在变量的分布——而且这种塑造作用远没有想象中那么强。
重建损失的“三件套”及其影响
前面提到的重建损失“三件套”——回归损失、感知损失和对抗损失——对于最大化重建信号的(感知)质量至关重要。
但更值得思考的是,这些损失项如何影响最终学到的潜在表征本身,特别是在内容筛选(curation)方面(即潜在表征学会编码哪些信息)?我们在第3节(为什么需要两阶段?)讨论过,在视觉领域,一个好的潜在空间应该能在一定程度上抽象掉纹理信息。这些损失是如何帮助实现这一点的?
做一个思维实验:如果我们去掉感知损失和对抗损失,只保留回归损失(比如MSE),就像传统的(非条件)VAE那样。通常会导致**模糊(blurry)**的重建结果。
原因在于:
- 回归损失(如MSE)在衡量误差时,对所有类型的信号内容(不同频率、不同结构)一视同仁。
- 在自然图像中,能量主要集中在低频部分(根据幂律分布,频率越高,能量越小)。
- 因此,最小化MSE的模型会更倾向于精确匹配低频信息,而相对忽略能量占比小但对感知很重要的高频信息(如边缘、纹理)。
- 这就导致了我们主观感受到的“模糊”。
图片来源:VQGAN论文。对比仅使用回归损失训练的DALL-E VAE(中)和同时使用感知与对抗损失的VQGAN(右),可以看出后两者带来的显著锐度和细节提升。
由于纹理主要由这些高频成分构成,而只用回归损失的模型几乎忽略了它们,最终得到的潜在空间不仅没有实现纹理抽象,反而是直接**抹去了(erased)**大部分与纹理相关的信息。从感知质量的角度看,这是一种很差的潜在空间。
这就凸显了感知损失和对抗损失的重要性:它们迫使模型在潜在表征中编码足够的纹理信息,以便解码器能够重建出包含纹理、看起来更真实的图像。
那么,既然回归损失有这些缺点,需要其他损失来“弥补”,我们能不能干脆完全去掉回归损失呢?事实证明,这通常也不可行。
原因在于,感知损失和对抗损失(尤其是后者,通常基于另一个需要训练的判别器网络)的优化过程更为复杂,更容易陷入病态的局部最优解。在训练过程中,相对简单的回归损失扮演着一种**“稳定器”或“正则化器”**的角色,持续为优化过程提供一个基础的、指向正确方向的信号,避免模型跑偏。
目前已经有许多研究在尝试采用不同形式或组合的重建损失。以下仅列举部分文献中的实例,展示该方向的多样性:
- DCAE 模型:整体配方与VQGAN类似,但将L2回归损失(MSE)替换为L1损失(MAE)。依然保留了LPIPS感知损失和PatchGAN判别器。不同之处在于采用了多阶段训练,仅在最后阶段启用对抗损失。
- ViT-VQGAN 模型:结合了两种回归损失(L2损失和logit-Laplace损失),并使用了StyleGAN判别器以及LPIPS感知损失。
- LTX-Video 模型:引入了一种基于离散小波变换(DWT)的“视频感知损失”,并提出了其独特的对抗损失策略,称为reconstruction-GAN。
可见,就像调制鸡尾酒一样,在这个“配方”问题上,每位研究者都有自己偏好的组合与尝试!
分离任务:表征学习 vs. 重建
到目前为止,我们讨论的各种设计选择(如损失函数、正则化策略)不仅影响最终的重建质量,也深刻地影响着所学习到的潜在空间的性质。其中,重建损失实际上承担了双重任务:既要保证解码器输出高质量的结果,又要间接塑造潜在空间的特性(通过反向传播影响编码器)。
作者认为,这种“一石二鸟”的做法可能并非最优。原因在于:
- 为生成建模学习一个良好且紧凑的表征;
- 将这个表征解码回原始输入空间;
这两者其实是目标不完全一致的两个任务。而现代自编码器通常被期望能同时做好这两件事。
虽然实践证明这种做法效果不错,并且简化了流程(毕竟自编码器训练已经是整个系统中的第一阶段了,再增加复杂度大家都不希望,尽管多阶段训练自编码器也并非没有先例),但它确实**混淆(confounds)**了两个任务。某些对一个任务有利的设计,可能对另一个任务并不理想。
作者曾在一篇早期论文中探讨过这个问题(当时解码器采用自回归架构,如今已不主流)。他们提出使用一个独立的、非自回归的辅助解码器(auxiliary decoder),专门负责为编码器提供学习信号(即塑造潜在空间)。
而主解码器(main decoder)则只负责优化重建质量,其产生的梯度不反向传播到编码器。这样,主解码器可以专注于追求极致的重建效果(例如使用更强大的架构或特定的损失),而辅助解码器则可以专注于塑造一个更适合后续生成模型学习的潜在空间。整个系统(编码器、主解码器、辅助解码器)仍然可以联合训练,增加的训练复杂度有限。辅助解码器在训练完成后即可丢弃。
图示:带有两个解码器的自编码器结构。主解码器(Main Decoder)仅用于重建,梯度不回传至编码器(虚线表示)。辅助解码器(Auxiliary Decoder)专注于塑造潜在空间,它可以采用不同的架构或优化不同的损失函数。
尽管那篇论文中关于像素空间自回归解码器的具体想法已过时,但作者坚信将表征学习与重建任务分离的这个核心思想在今天仍然具有现实意义。
一个精心设计的辅助解码器(例如,优化不同的损失函数,或采用与主解码器不同的架构)可能为表征学习提供更有效的训练信号,从而最终带来更好的生成建模效果。
最近,Zhu等人也得出了类似的结论(见其论文第2.1节)。他们使用K-means对DINOv2(一种强大的自监督学习模型)提取的特征进行离散化建模,并结合一个单独训练的解码器来重建图像。在生成建模中复用(re-use)通过自监督学习(SSL)得到的表征,这种思路在音频建模领域早已相当普遍——这或许是因为音频领域的研究者们本来就习惯于训练声码器(vocoder),即将某种预定义的中间表征(如梅尔频谱图)转换回波形信号。
通过正则化提升“可建模性”:引入V-information
对潜在变量的容量(capacity)进行限制、对其分布进行塑造(shaping)、以及对其内容进行梳理(curating),都会影响其最终的可建模性(modelability):
- 容量:决定了潜在变量中包含多少信息。容量越高,生成模型就必须越强大才能完全捕捉它。
- 塑造:对于高效建模至关重要。相同的信息可以用多种方式表示,有些表示方式比其他方式更容易建模。例如,对潜在变量进行适当的**缩放(scaling)和标准化(normalization)**对于扩散模型的稳定训练和良好性能至关重要。此外,潜在变量的高阶统计特性和相关性结构也很重要。
- 梳理:影响可建模性,因为某些类型的信息(如结构性信息)比其他类型的信息(如随机噪声)更容易建模。如果潜在变量编码了大量输入信号中不可预测的噪声成分,那么它们自身的可预测性也会降低,使得生成模型难以学习。
下面这条有趣的推文展示了这一点如何影响Stable Diffusion XL的VAE(自编码器):(推文内容大意是,SDXL VAE的潜在变量分布存在一些问题,导致某些区域难以被后续的UNet(扩散模型)有效建模,影响生成质量)
作者将此与Xu等人提出的V-information概念联系起来。V-information扩展了传统的互信息(Mutual Information)概念,将计算约束(computational constraints)考虑在内。简单来说,一条信息的“可用性”取决于观察者(在这里是生成模型)辨别和利用该信息的计算难度。如果一条信息需要一个非常强大的神经网络才能提取,那么对于这个观察者来说,输入信号中包含的V-information量就低于使用一个简单线性探测器就能提取的情况——即使两者在绝对信息量(比特数)上可能相同。
显然,我们希望最大化潜在表征的V-information量,以便最大限度地降低后续生成模型理解和建模这些潜在表征所需的计算复杂度。前面提到的Tschannen等人描述的率-失真-有用性权衡也指向了同样的结论:一个“有用”的表征(对下游任务,如生成建模,有用)应该是易于被利用的。
那么,既然之前讨论过KL惩罚项对于“高斯化”或平滑潜在空间的作用可能并不如想象中那么大,我们还能做些什么来让潜在表征更容易被建模呢?
以下是一些已被探索的正则化策略,旨在提升潜在表征的“可建模性”或“V-information”:
使用生成先验(Generative Priors):
- 与自编码器共同训练一个(通常是轻量级的)潜在生成模型(如小的扩散模型或自回归模型)。
- 将这个潜在生成模型的生成损失也反向传播到编码器中。
- 目标是直接鼓励编码器产生更容易被该生成先验模型学习的潜在表征。
- 相关工作如 LARP 或 CRT。
- 这种方法需要仔细调整损失权重,因为生成损失和重建损失的目标是相互冲突的(潜在表征完全不编码任何信息时最容易建模,但重建质量为零!)。
使用预训练表征进行监督(Supervision from Pre-trained Representations):
- 鼓励自编码器产生的潜在表征能够预测某个已知的、高质量的预训练表征(例如,强大的自监督学习模型如 DINOv2 提取的特征)。
- 目标是让潜在表征吸收这些高质量表征的良好特性(如语义信息、鲁棒性等)。
- 相关工作如 VA-VAE, MAETok, 或 GigaTok。
鼓励等变性(Equivariance):
- 使得输入信号的某些变换(如缩放、旋转、平移)能够导致潜在表征发生相应的、可预测的变换。
- 例如,输入图像旋转90度,其潜在表征也相应地“旋转”90度。
- 这有助于潜在空间学习到更平滑、更结构化的表征,因为模型被迫理解这些变换的规律。
- 相关工作如 AuraEquiVAE, EQ-VAE, 和 AF-VAE。
- 作者在第4节中使用的EQ-VAE论文中的图(可视化Stable Diffusion潜变量)就展示了这种等变性约束对潜在空间空间平滑度产生的显著积极影响。Skorokhodov等人基于对潜在空间**谱分析(spectral analysis)**也得出了相同结论:等变性正则化使得潜在谱(latent spectrum)与像素空间输入的谱更相似,从而提高了可建模性。
这只是众多可能的正则化策略中的一小部分,它们都试图以某种方式增加潜在向量的V-information含量,使其对后续的生成模型更加“友好”。
新趋势:使用扩散模型作为解码器
有一类特殊的、用于学习潜在表征的自编码器值得单独讨论:**解码器部分采用扩散模型(diffusion decoder)**的自编码器。
传统的解码器通常是一个前馈网络(feed-forward network),通过一次前向传播直接输出像素(或样本)值,并且常常需要对抗训练来提升真实感。
而一种越来越流行的替代方案是,使用扩散模型来完成从潜在表征到原始信号的解码任务。这样做不仅会影响最终的重建质量,还会影响所学习到的潜在表征的类型。
近期的一些研究,如SWYCC, ϵ-VAE, 和 DiTo,从不同角度探索了这种方法:
- 理论更优雅:使用扩散解码器学习的潜在特征,提供了一种更具原则性、理论基础更扎实的**层级化生成建模(hierarchical generative modeling)**方法。
- 训练更简单:这类模型可以仅使用MSE损失进行训练,无需复杂的对抗训练,简化了训练流程并提高了鲁棒性(毕竟调优对抗损失是出了名的棘手)。
- 质量可能更高:将扩散模型的**迭代细化(iterative refinement)**原理应用于解码过程,有可能提升最终输出的质量。
这些论点都有其道理,但作者也指出了扩散解码器的一个显著弱点:计算成本及其对**解码延迟(latency)**的影响。
作者认为,目前大多数商业部署的扩散模型都是潜在扩散模型(即在潜在空间操作)的一个关键原因就是为了效率:紧凑的潜在表征使我们能够避免在原始输入空间进行耗时又昂贵的迭代细化。在潜在空间执行迭代采样过程,然后在最后通过一次(快速的)前向传播(通过解码器)回到输入空间,速度要快得多。
从这个角度看,在解码阶段重新引入输入空间的迭代细化,在很大程度上违背了采用两阶段方法的初衷。如果我们要付出这样的计算代价,那为什么不直接采用一些旨在扩展单阶段(端到端)生成模型(如直接在像素空间操作的扩散模型)的方法呢?
反驳与调和:扩散蒸馏
你可能会反驳:难道我们不能使用各种**扩散蒸馏(diffusion distillation)**技术(如Consistency Models, Progressive Distillation等)来大幅减少扩散解码器所需的采样步数吗?
确实可以。在解码器这种强条件(highly conditioned)设定下(因为有潜在表征作为强力指引),扩散蒸馏被证明非常有效,甚至可以实现单步(single-step)采样。条件信号越强,获得高质量蒸馏结果所需的步数就越少。
**DALL-E 3的一致性解码器(Consistency Decoder)**就是一个很好的实践案例:
- 他们复用了Stable Diffusion的(预训练)潜在空间和编码器。
- 训练了一个新的基于扩散的解码器来替代原有的对抗解码器。
- 然后通过一致性蒸馏,将这个扩散解码器精简到仅需两步采样。
- 虽然在延迟上,两步采样仍然比原始的单步对抗解码器要慢,但输出的视觉保真度得到了显著提升。
图示:DALL-E 3基于Stable Diffusion潜在空间训练的一致性解码器(右),相比原始解码器(左),在视觉保真度上有显著提升,但代价是解码延迟增加。
Music2Latent是这种方法的另一个例子,它应用于音乐音频的声谱图(spectrogram)表征。他们的自编码器带有一个一致性解码器,并且是端到端训练的(不同于DALL-E 3复用预训练编码器)。该解码器能够一步生成高保真输出。这意味着解码过程又回到了只需要一次前向传播,与对抗性解码器相当。
FlowMo是另一款带有扩散解码器的自编码器,它使用一个**后训练(post-hoc training)阶段来鼓励解码器产生模式坍塌(mode-seeking)**行为。如前所述,对于解码潜在表征这个任务来说,丢失一些模式(多样性降低)并专注于真实性,实际上是可取的,因为它需要更少的模型容量,并且通常不会对感知质量产生负面影响。对抗性损失天然倾向于导致模式坍塌,而标准的扩散损失则不会。FlowMo的两阶段训练策略使得扩散解码器能够模拟这种行为——尽管它仍然需要大量的采样步骤,因此计算成本远高于典型的对抗解码器。
一些更早期的关于扩散自编码器的研究,如Diff-AE和DiffuseVAE,更侧重于学习类似老式VAE的高层次语义表征,这些表征通常没有拓扑结构(即单个向量表示整个输入),并且更关注可控性(controllability)和解耦(disentanglement)。DisCo-Diff则介于两者之间,它利用一系列离散潜在表征来增强扩散模型,这些离散潜变量可以通过一个自回归先验模型进行建模。
小结:
消除对抗训练的必要性无疑简化了训练流程,因此扩散自编码器是一个有趣且日益流行的研究方向。然而,在推理延迟方面,要与高效的对抗性解码器竞争仍然是一个巨大挑战。作者认为,我们还没有准备好完全放弃对抗解码器。他期待着未来能出现一种新的方案:既不需要对抗性训练,又能在视觉质量和推理延迟上与当前的对抗解码器相媲美!
网格结构:无处不在的统治者
我们用来表示感知模态(视觉、听觉等)的数字信号,通常都具有网格结构(grid structure)。这是因为它们是底层物理信号经过**均匀采样(uniform sampling)**和量化得到的。
- 图像:二维像素网格。
- 视频:三维体素网格(空间二维 + 时间一维)。
- 音频信号:一维样本序列网格。
“均匀采样”意味着相邻网格位置之间存在固定的间隔(空间距离或时间间隔)。
从统计学角度看,感知信号在时间和空间上也往往表现出近似平稳性(approximate stationarity),即信号的统计特性(如均值、方差)在不同位置或时间点上大致相似。
均匀采样和平稳性共同造就了丰富的拓扑结构(topological structure)。我们在设计处理这些信号的神经网络架构时,充分利用了这种结构:
- 通过广泛的**权重共享(weight sharing)来利用信号的不变性(invariance)和等变性(equivariance)**等特性。
- 这些特性通过卷积(convolution)、**循环(recurrence)**和(带有相对位置编码的)**注意力(attention)**机制来实现。
毫无疑问,对网格结构的利用是我们能够构建如此强大的机器学习模型的关键原因之一。因此,一个自然且明智的做法是:在设计潜在空间时,也保留这种网格结构。我们最强大的神经网络架构(CNNs, RNNs, Transformers)在设计上就依赖于这种结构,因为它们最初就是为了直接处理这些具有网格结构的数字信号而构建的。如果潜在表征具有相同的结构,这些网络就能更有效地处理它们。
保留网格结构还为学习这些潜在空间的自编码器带来了显著优势:
- 由于平稳性,模型只需要学习**局部(local)**的信号结构。
- 因此,自编码器可以在**较小的图像块(patches)**或输入信号片段上进行训练。
- 如果我们施加适当的架构约束(例如,限制编码器和解码器中每个位置的感受野(receptive field)),那么在小块上训练好的模型将能够**开箱即用(out-of-the-box)地泛化(generalize)**到比训练时更大的网格(例如,生成更高分辨率的图像)。
- 这有可能大大降低第一阶段(自编码器训练)的成本。
网格结构的代价:效率低下
然而,凡事有利有弊。我们之前讨论过,感知信号是高度冗余(redundant)的。不幸的是,这种冗余在信号中的分布并不均匀(non-uniformly distributed)。
- 信号的某些部分可能包含大量感知上重要的细节(信息密集)。
- 而其他部分则可能几乎不包含任何有用信息(信息稀疏)。
回到我们之前用过的“田野里的狗”的例子:
- 考虑一个以狗的头部为中心的100x100像素区域。
- 再考虑一个位于图像右上角、只包含纯蓝天空的100x100像素区域。
图示:田野里的狗的图像,突出显示了两个信息密度差异巨大的100x100像素块。
如果我们构建一个继承了输入二维网格结构的潜在表征来编码这幅图像,那么必然会**使用完全相同的容量(相同数量的潜在向量和通道)**来编码这两个信息密度迥异的图像块。
如果我们让潜在表征的容量足够丰富,能够捕捉到狗头所有相关的感知细节,那么我们将浪费大量的容量去编码那块几乎没有信息的、同样大小的天空区域。
换句话说,保留规则的网格结构,会显著降低潜在表征的编码效率。
这就是作者所说的**“网格统治一切”(The Grid Rules Everything Around Me)**:
- 我们用神经网络处理网格结构数据的能力已经非常成熟和优化。
- 偏离这种规则结构会增加复杂性,使建模任务变得更加困难,并且对现有硬件(如GPU)的并行计算能力利用不充分。
- 因此,大家通常选择坚持使用规则的网格结构。
- 但这在编码效率方面,实际上是相当浪费的,因为它无法根据视听信号中感知显著信息的不均匀分布进行自适应调整。
对抗网格统治:Transformer与新结构
Transformer架构实际上相对更适合对抗这种“网格统治”:
- 虽然我们通常将其视为序列模型,但它本质上是为处理**集合(set-valued)**数据而设计的。
- 任何将集合元素相互关联的附加拓扑结构(如序列顺序、网格位置)都是通过**位置编码(positional encodings)**来表达的。
- 这使得相比于强依赖固定邻域的卷积或循环架构,Transformer在偏离常规网格结构方面更为灵活和实用。
几年前,作者和同事就曾探索过使用**可变速率(variable-rate)**的离散表征进行语音生成的想法(即信息密集区域用更多token,稀疏区域用更少token)。
最近,在两阶段生成模型的背景下,放松潜在空间的固定拓扑结构似乎重新受到了关注,出现了一些新的探索方向:
- 从二维网格到一维序列:
- TiTok 和 FlowMo 从图像中学习**序列化(sequence-structured)**的潜在表征,将网格维度从二维降到一维。
- 大型语言模型(LLMs)的成功证明了我们拥有极其强大的序列建模能力,因此将图像(或其他模态)也表示为序列是一个合理的目标结构。
- 自适应长度/分辨率:
- One-D-Piece 和 FlexTok 也采用类似的一维序列方法,但引入了嵌套的dropout机制,在潜在序列中创造出一种**由粗到细(coarse-to-fine)**的结构。
- 这使得序列的长度能够根据每个输入图像的复杂度以及重建所需的细节级别进行自适应调整。
- CAT 也探索了这种自适应性,但仍然保留了二维网格结构,只是自适应地调整其分辨率。
- 完全抛弃网格:Token袋:
- TokenSet 更进一步,使用了一种生成**“token袋”(bag-of-tokens)**的自编码器,完全摒弃了任何预设的网格或序列结构。
- 利用现有结构进行抽象:
- 除了CAT之外,上述大部分方法学习到的潜在空间,在语义层级上比我们之前主要讨论的“高级像素”要更高(more high-level)。就抽象层次而言,它们可能介于“高级像素”和老式VAE的单一矢量值潜在空间之间。
- 例如,FlexTok 的一维序列编码器,实际上需要一个现有的、基于二维网格结构的低级编码器的输出作为输入。它是在现有的低级潜在空间之上,构建了一个额外的抽象层。
- TiTok 和 One-D-Piece 也利用现有的二维网格结构潜在空间作为其多阶段训练方法的一部分。
- 语言作为高级潜在表征:
- 一个相关的思路是:直接复用语言模型(或其内部表征)作为图像(或其他模态)的高级潜在表征。
- 离散Token模式组合:
- 在离散潜在表征的背景下,一些工作借鉴了自然语言处理中的tokenisation思想,研究网格中常见的token模式(patterns)是否可以组合成更大的子单元(sub-units),以提高效率。
- DiscreTalk 是语音领域的一个早期示例,它在底层的VQ token之上使用了SentencePiece算法。
- Zhang等人的BPE Image Tokenizer是这一思路的较新体现,它在VQGAN产生的token之上,使用了一种增强的**字节对编码(Byte Pair Encoding, BPE)**算法。
这些新方法都在尝试打破或改进传统网格结构的限制,以期获得更高效、更灵活或更高层次的潜在表征。
其他模态的潜在变量:音频与语言
到目前为止,我们的讨论主要集中在视觉领域(图像和视频),只是偶尔提及音频。这是因为:
- 学习图像的潜在特征是我们已经相当擅长的事情。
- 近年来,使用两阶段方法的图像生成模型已经得到了广泛的研究和商业化应用。
- 我们在感知损失方面拥有成熟的研究体系(如LPIPS),以及大量的判别器架构(如PatchGAN, StyleGAN Discriminator),使得对抗训练能够有效关注感知相关的图像内容。
对于视频,我们仍然处于视觉领域,但引入了时间维度,这带来了一些新的挑战:
- 简单地逐帧提取图像的潜在特征来获得潜在视频表征是可行的,但这可能导致时间上的不连续性或伪影(例如闪烁)。
- 更重要的是,这种方法无法有效利用时间上的冗余性(相邻帧通常非常相似)。
- 作者认为,我们用于时空潜在表征学习(spatio-temporal latent representation learning)的工具还远不够完善。
- 目前,对于如何有效利用人类对**运动(motion)**的感知来提高视频潜在表征的效率,理解还不够深入(尽管传统的视频压缩算法早已广泛利用运动估计来提高效率)。
音频领域也是如此:
- 虽然两阶段方法(例如,先编码到某种潜在表征,再用声码器解码回波形)已被广泛采用,但对于如何针对音频模态进行最佳的修改和设计,似乎尚未达成广泛共识。
- 如前所述,在音频领域,更常见的做法是复用通过**自监督学习(SSL)**在大量无标签音频数据上预训练得到的表征(如HuBERT, WavLM等)。
那么语言呢? 语言并非典型的“感知”模态,但两阶段方法(学习一种更紧凑或更高层的语言潜在表征)能否提高大型语言模型(LLMs)的效率呢?
事实证明,这非常困难。主要原因在于:
- 语言本质上比感知信号更难压缩。语言作为一种高效的沟通工具,其发展过程本身就在不断消除冗余。
- 虽然语言中确实存在冗余(香农曾著名地估计英语的冗余度约为50%),但这与感知信号的冗余度不在一个数量级上。图像、音频和视频可以在感知质量损失相对较小的情况下,被压缩几个数量级(几十倍甚至上百倍)。而语言则不可能在不丢失重要语义信息或细微差别的情况下,进行如此大幅度的有损压缩。
目前用于语言模型的Tokeniser(如BPE, SentencePiece)通常是无损的(或者说近似无损)。因此,它们生成的token通常不被视为严格意义上的“潜在token”(尽管Byte Latent Transformer在其动态tokenisation策略中确实借鉴了这种框架思想)。
然而,语言中相对较低的冗余度并没有阻止人们尝试学习有损的、更高层次的语言表征(例如,句子级别或段落级别的嵌入向量)。用于感知信号的技术可能无法直接照搬,但研究者们已经探索了几种其他方法来学习这类表征,通常用于信息检索、文本分类、语义相似度计算等任务,而非直接用于无条件生成。
终局之战:端到端学习 vs. 两阶段方法
当深度学习浪潮兴起时,一个主流的理念是:我们将尽可能用**端到端学习(end-to-end learning)**取代过去那种手工设计特征+机器学习模型的多阶段流程。联合学习所有处理阶段,可以让各个部分相互适应、协同工作,从而最大化系统性能,同时从工程角度简化流程。
这或多或少也正是计算机视觉和语音处理领域(在识别、分类等任务上)最终发生的事情。从这个角度来看,颇具讽刺意味的是,当今在感知信号生成领域,主流范式却又回到了两阶段方法(自编码器+潜在空间生成模型)。虽然这两个阶段本身通常都是通过学习得到的,但这并非严格意义上的“端到端”!
如今在各种产品中部署的文本到图像、文本到视频和文本到音频模型,绝大多数都使用了某种形式的中间潜在表征。
一个值得思考的问题是:这种现状是暂时的,还是会持续下去?
毕竟,两阶段训练确实引入了额外的复杂性。除了理论上的“优雅”之外,端到端学习还可以帮助确保系统的所有部分都与单一的、最终的目标(例如,生成高质量、符合条件的输出)完美对齐。
作者的观点(带有争议性):两阶段方法将持续存在一段时间。
主要论据还是效率:
- 在原始输入空间进行迭代细化(如像素级扩散)速度慢且成本高昂。
- 作者认为这种情况在可预见的未来可能不会改变——尤其是考虑到我们还在不断追求更高质量、更高分辨率和/或更长时长的生成内容。
- 我们不太可能轻易放弃潜在空间方法在训练效率和采样延迟方面带来的巨大优势。
- 目前尚无可行的替代方案被证明能够在大规模应用中超越两阶段方法。
这是一个颇具争议的观点,因为一些研究人员似乎认为现在是时候转向端到端方法了。但作者个人认为,现在还为时过早。
那么,我们何时才能准备好回归单阶段(端到端)生成模型呢?
像简单扩散(Simple Diffusion), Ambient Space Flow, Transformers(直接在像素/token上操作), 和 PixelFlow 这样的方法已经证明:即使在相对较高的分辨率下,端到端方法在原理上是可行的,只是目前成本效益不高。
但硬件(GPU/TPU等)正以惊人的速度不断改进和提升。因此,作者推测,我们最终会达到一个临界点(tipping point):即相对低效的端到端输入空间模型,在经济上变得比工程复杂性日益增加的潜在空间模型更具优势。
至于这个临界点何时到来,则取决于具体模态(图像、视频、音频的要求不同)、硬件发展的速度以及相关研究的进展,因此作者不愿做出具体的预测。
回顾历史与展望:
过去,我们需要潜在向量来确保生成模型专注于学习感知相关的信号内容,忽略那些视觉上不显著的熵(冗余信息)。回想一下,直接在输入空间计算似然损失在这方面表现很差,而切换到在潜在空间中测量似然,显著改善了基于似然的模型(如自回归模型)的结果。
可以说,这种情况在某种程度上已经不再是主要障碍了。因为我们现在已经找到了方法,可以在感知上重新加权(perceptually re-weight)自回归和扩散模型的似然损失函数(即使它们在输入空间操作),从而消除了扩展性的一个重要瓶颈。
尽管如此,潜在空间模型在计算效率上的优势,仍然一如既往地重要。
第三种替代方案:分辨率级联
作者最后简要提到了分辨率级联(resolution cascades)方法(先生成低分辨率,再逐步上采样)。这种方法不需要学习显式的潜在表征,但仍然将生成任务分解为多个阶段。一些早期的商业模型(如DALL-E 2, Imagen)曾使用这种方法,但它似乎已经不再受欢迎。作者认为,这可能是因为不同阶段之间的任务分工不够理想——上采样模型承担了过多的“创作”工作(而不仅仅是增加细节),这使得它们更容易在各个阶段积累错误,导致最终生成质量或一致性不如潜在空间方法。





















