一步生成图像,为什么像素空间里越训越差? النص الأصلي بالصينية

2026年初,一篇名叫《Drifting Models》的论文搞出了一个挺有意思的生成模型范式。它不像扩散模型那样在推理时一步步去噪,而是把这个"逐步优化"的活儿提前挪到了训练阶段。等训练完,生成图片只需要一步,不用再慢慢迭代。

这事儿听起来挺美好。但很快有人发现一个诡异的现象:如果直接在像素空间里跑这套方法,生成的图片质量差得一塌糊涂。可一旦换成预训练好的特征空间,效果立刻脱胎换骨。

这就有点反直觉了。

一个生成模型的好坏,居然不完全取决于算法本身,而严重依赖于你用什么"眼光"去看待图片?像素就是像素,为什么换个表示方式,结果能差这么多?这篇来自ELLIS Institute Finland和Aalto大学的论文,《Learning Discriminative Geometry for Drifting Models》,就是想把这个谜底挖出来。

**漂移模型到底在干什么**

要理解这个问题,得先弄明白Drifting Models的工作原理。

想象你有一堆真实图片和一堆生成器吐出来的假图片,混在一起扔进一个房间里。现在你要给每一张假图片指一个方向,告诉它"往这边走,你会更像真实图片"。这个方向怎么算?

论文用的办法是核密度估计(KDE)。

KDE:一种不需要假设数据分布形状,直接用样本周围的"邻居"来估算某处概率密度高低的统计方法,样本越密集的地方估计密度越高。

具体操作是,对于空间里的任意一个点,计算它和所有真实样本的加权平均位移(权重由距离决定,越近权重越大),再计算它和所有生成样本的加权平均位移,两者相减,就得到一个"漂移方向":往真实样本那边靠,同时远离周围的假样本。生成器就被要求往这个方向挪一步。

这套逻辑在理论上挺漂亮,背后还能跟Wasserstein梯度流之类的数学工具挂钩。但问题就出在"距离"这个概念上。

如果你直接在像素空间里算距离,那么两张图片像不像,完全取决于每个像素点的RGB值差了多少。这就带来一个麻烦:一只猫换个姿势,像素级别的差异可能比猫和狗的差异还大。

**想象你在一个巨大的仓库里找同类的货物,但你判断"同类"的唯一标准是货物外包装纸的颜色花纹。两件商品哪怕内容物天差地别,只要包装纸相近,你就会把它们归到一类;而两件本质相同的商品,只因为包装纸颜色不同,就被你判定为"完全不同"。这时你做的所有分类决策,其实都是在错误的维度上做判断。**

**如果不换一套判断标准,无论你花多少时间整理,分类结果都不会变好,因为问题根本不在于"整理方法",而在于"用什么指标去衡量相似"。**

像素空间的KDE,本质上就是用这种"包装纸"式的粗糙标准去判断真假图片之间的差异,自然算不出有意义的漂移方向。

**判别性几何:问题的核心**

论文把这个现象归结为一个概念,叫做判别性几何(discriminative geometry)。

判别性几何:某个表示空间里,样本之间的距离关系是否能有效区分"真实"和"生成"这两类样本,距离关系越能体现类别差异,判别性就越强。

预训练编码器(比如在ImageNet上训练好的网络)天然具备较强的判别性几何,因为它们见过海量真实图片,学会了提取语义层面的特征,比如物体形状、纹理类型,而不是纠结于像素的具体数值。用这种表示空间去算KDE,真假样本之间的差异就能被更准确地捕捉到,漂移方向自然更靠谱。

但这里就有个尴尬的事实:原始Drifting Models论文承认,不依赖预训练特征、从零开始训练,这件事到目前为止还没做成。

这篇论文想解决的,正是这个"从零开始"的难题。

**持续表征学习:让几何跟着生成器一起进化**

研究者的思路是,既然固定的像素空间几何不行,那就让这个"衡量相似度的标准"自己学习、自己进化。

他们引入了一个叫做持续表征学习(persistent representation learning)的机制。核心想法是训练一个编码器,这个编码器的参数在训练过程中持续保留、持续更新,而不是每次重新构建KDE的时候都从零算起。

持续表征学习:让用于计算KDE距离的编码器网络,在跨越多个训练批次时保留并累积之前学到的判别信息,使表示几何能随着生成器的进化而动态调整,而不是用一套固定不变的标准。

这跟GAN里判别器的训练逻辑有点像,但关键差异在于,这里训练的不是一个输出单一标量的"真假判别器",而是一整套表示空间,这个空间随后被用来构建KDE和漂移场。

具体实现上,论文设计了一个很巧妙的初始化方式:编码器被写成 Eφ(x) = x + Rφ(x) 的残差形式,Rφ初始化为零。这意味着训练刚开始的时候,这个编码器等价于什么都不做,直接输出原始像素。随着训练推进,残差部分Rφ慢慢学出有意义的调整,编码器才逐渐偏离"原样输出",往更有判别力的方向进化。

**这就像给一个新手裁缝一把尺子,一开始这把尺子刻度是空白的,裁缝量出来的尺寸就是布料本身的长度,没有任何加工。随着裁缝接的活儿越来越多,见过越来越多种布料和身形,他开始在尺子上悄悄刻下自己的经验:这种布料会缩水两分,那种版型要多留一指宽。尺子的刻度在变化,但裁缝从第一天起就能正常工作,不会因为"还没学会用尺子"而直接做不出衣服。**

**如果一开始就给裁缝一把乱刻乱画的尺子(随机初始化的编码器),他可能连最基本的测量都做不对,训练一开始就会在错误的方向上越走越远。零初始化残差保证了"起点至少是可用的",这是一个很实际的工程考量。**

论文里有个毒舌的对照实验,专门检验了一件事:是不是只要调一调KDE里那个带宽参数τ,像素空间drifting就能起死回生?

结果是:把τ从0.002一路扫到2,整整三个数量级,FID始终卡在134到376之间,没有一个配置能接近持续表征学习10k步内达到的27.41。这说明问题真不是"没调好参数",是表示空间本身的几何结构有问题,调参救不了。

**密度比损失和漂移回归损失:殊途同归的梯度**

光有"学一个好表示"这个想法还不够,论文还想回答一个更深的理论问题:用KDE算出来的密度比,跟直接构造漂移场去回归,这两种做法之间到底有什么关系?

答案是:在特定条件下,它们是等价的。

论文证明了一个叫做"命题1"的结论:在高斯核、固定编码器参数、不做速度裁剪的前提下,KDE密度比损失对生成器参数的梯度,和漂移回归损失的梯度,是完全相等的。

这个结论听起来有点学术,但它的实际意义很直接:它说明了为什么这篇论文可以把GAN训练里常见的那套"判别器+生成器"框架,和Drifting Models里"构造场+回归"的框架,当成同一件事的两种表述方式来理解。两条看似不同的路,走到生成器更新那一步,其实是同一个方向。

这个等价关系还牵出了另一个重要发现:密度比这个标量函数(论文里叫它"势函数")的局部平滑程度,直接决定了漂移速度的大小。如果这个势函数在某个区域变化特别剧烈(梯度很大),那么对应的漂移速度也会特别大。

**速度裁剪:给疯狂的指南针设个上限**

速度太大会出什么问题?想象一下,你正在往目标地点走,有人突然在你面前塞了一张写着"方向正确,但请以时速300公里冲过去"的纸条。你大概不会乖乖听话,因为这速度太离谱了,一步迈出去大概就摔沟里了。

生成器在训练早期就经常遇到这种情况。因为表示空间还在动态变化中,某些区域的密度比势函数可能异常陡峭,算出来的漂移速度突然暴增,生成器被这个"疯狂指南针"带偏,训练直接失稳。

论文的解法很直接,给漂移速度设一个硬上限,叫做速度裁剪(velocity clipping)。

速度裁剪:对计算出的漂移速度向量做一次径向投影,如果它的长度超过预设阈值Vmax,就把它等比例缩短到刚好等于Vmax,方向完全不变,只是把步子放小。

**这就像给一辆刚拿到驾照的新手司机配了一个限速装置。不管油门踩多猛,车速永远不会超过60公里每小时。方向盘打多少度完全由司机自己决定,系统不干涉方向,只是确保无论路况多复杂,车子都不会因为瞬间加速过猛而失控打转。**

**如果没有这个限速,新手司机在高速弯道突然遇到陡坡,油门信号被瞬间放大,车子可能直接冲出护栏。速度裁剪的意义不在于让车开得更快,而在于保证"表示空间还在剧烈变动"这个混乱阶段里,生成器不会因为某一步的梯度突然炸裂而彻底崩掉。**

论文做了一个消融实验来验证这个设计,测了五个不同的Vmax取值,从1一直到0.0005。结果显示,不加任何速度约束时,CIFAR-10上的IS是7.50,FID是27.41;而加上Vmax=0.005的裁剪后,IS涨到7.80,FID降到21.57,是五个取值里表现最好的一档。更有意思的是,他们还试了另一种常见的稳定化手段,直接对编码器做谱归一化(spectral normalization,GAN训练里常用来约束判别器的Lipschitz常数的技术),结果反而让FID变差到31.82。这说明直接管住"输出的速度",比管住"产生速度的那个函数本身",效果更好。

**机制验证:用一个玩具实验看清楚到底发生了什么**

为了让这套理论不只是停留在纸面上,论文还设计了一个很干净的玩具实验。他们造了一个32维的数据空间,其中只有2维是真正有意义的"语义信息"(8个环形排列的高斯分布),剩下30维全是纯粹的噪声干扰。

这个设置的用意很明显:真实世界的图片里,绝大多数像素级别的变化(光照、背景杂物、拍摄角度)其实都是"噪声维度",真正决定图片内容的"语义维度"往往只占很小一部分。

实验结果(论文里的图1)显示,在原始空间(包含噪声维度)里算出来的漂移场,方向杂乱无章,东一榔头西一棒子;而用持续表征学习之后的空间计算同样的漂移场,方向整齐地指向目标的环形结构。论文还量化了这个差异:用余弦相似度衡量估计出的漂移场和"理想情况"(只用2个语义维度算出的参考场)之间的对齐程度,持续表征学习训练到后期,对齐度能达到0.8左右,而原始空间始终徘徊在0.1到0.3之间。

这个对比直接证明了判别性几何这个概念不是空想出来的,它是真实存在、可以量化测量的东西。

**图像数据上的验证:MoCo-v2的三级对照**

玩具实验说明了原理,真实图片上还得验证一次。论文在CIFAR-10上对比了三种表示方式:直接用原始像素、用冻住不动的MoCo-v2编码器、以及让MoCo-v2的最后一个残差块跟着持续表征学习一起动起来。

MoCo-v2:一种自监督对比学习方法,不需要任何人工标注,让模型通过判断"两张裁剪自同一张图的子图是否相似"来学习图像特征,训练好之后常被拿来当通用的图像表示提取器用。

结果非常清晰:像素空间的KDE判别准确率一直卡在接近50%,也就是说,这个判别器基本等于瞎猜,真假图片对它来说长得一样。冻住的MoCo-v2立刻把判别准确率拉高,FID也跟着明显下降。而让这个编码器的最后一层也动起来、跟着持续表征学习一起训练,判别准确率和FID都进一步改善。

这组实验把前面讲的理论串成了一条完整的因果链:表示空间的判别力,KDE能不能分清真假,生成样本的质量,这三件事是层层递进、互为因果的。

**主要结果:从"几乎不可用"到"能打平GAN"**

把这套方法放到三个标准数据集上跟原版Drifting Models(论文里称之为"standard drifting",直接在像素空间操作)比较,差距是数量级的。

| 数据集 | 方法 | IS ↑ | FID ↓ |

|---|---|---|---|

| SVHN | Standard drifting | 2.91 | 61.56 |

| SVHN | 本文方法 | **3.24** | **2.88** |

| SVHN | SNGAN | 3.04 | 13.16 |

| CIFAR-10 | Standard drifting | 3.18 | 124.94 |

| CIFAR-10 | 本文方法 | **8.69** | **12.81** |

| CIFAR-10 | SNGAN | 7.22 | 28.59 |

| CIFAR-100 | Standard drifting | 3.46 | 113.14 |

| CIFAR-100 | 本文方法 | **8.52** | **20.61** |

| CIFAR-100 | SNGAN | 7.96 | 30.33 |

SVHN上FID从61.56降到2.88,相当于缩小了95%以上。CIFAR-10上从124.94降到12.81,缩小了约90%。论文摘要里说的"82%至95%的FID降幅",指的就是这组对比。

更值得玩味的是,这个方法甚至在三个数据集上都超过了SNGAN,一个经典的、靠谱的对抗生成网络基线。这说明持续表征学习带来的收益,不是那种"只是把原来的烂模型救活了一点"的小修小补,而是真正打到了一个能和成熟方法掰手腕的水平。

论文还专门测了一下"同样训练时间下谁更快"这个实际问题,因为持续表征学习多了一个编码器的前向反向传播,每一步确实更费时间。但即便考虑这部分额外开销,在同样5小时的训练预算下,本文方法达到的FID是21.57,standard drifting是124.94,差距依然悬殊。多花的那点计算时间,换来的收益完全划得来。

**消融实验:哪个部件在真正起作用**

论文还做了一组很诚实的拆解实验,专门回答"到底是哪个设计在起作用"。

他们比较了四种配置:完全不用任何持续化组件、只持续化表示编码器、只持续化一个标量判别器(类似GAN里常见的那种)、以及两者都用。结果相当出人意料,单独持续化表示编码器效果最好,而引入一个持续化的标量判别器反而让结果显著变差,FID一度冲到500以上。两者混用也没有改善,反而更乱。

这个结果其实挺值得琢磨。它暗示了一件事:在这套KDE驱动的漂移框架里,"学习一个好的距离度量空间"和"学习一个直接给出真假判断的标量判别器",并不是等价的任务,哪怕理论上它们背后都可以关联到同一个密度比。表示空间要服务于后续的核密度估计、提供有意义的样本间关系;而一个标量判别器只给出一个数字,丢失了样本之间的相对结构信息,这个数字对漂移场的构造来说,可能反而是一种噪声。

另一组消融专门拆分"持续表征学习"和"速度裁剪"各自的贡献。数据显示:什么都不加时IS是2.94、FID是150.49;只加速度裁剪IS涨到3.44、FID降到126.33,改善有限;只加持续表征学习IS跳到7.50、FID降到27.41,这是最大的那一跃;两者都加,IS到7.80、FID到21.57,锦上添花。

数字说得很明白:持续表征学习是那个真正扭转战局的主力,速度裁剪是辅助性的稳定器。

**这篇论文放在更大的脉络里**

这个研究并不是孤立出现的。它站在三条已有研究线的交汇点上。

一条线是Drifting Models本身,2026年初才刚提出的新范式,目前还有不少后续工作在跟进,比如Turan等人把高斯核漂移场和基于分数的扩散模型之间的关系讲清楚,Zhang等人把漂移模型扩展到预训练表示空间用于一步蒸馏(但明确说"从零训练"这件事还没解决,这正是本文要填的坑)。

另一条线是GAN研究里关于判别器表示的讨论。KDD-GAN用学习到的表示做判别,Projected GAN用固定预训练特征做判别,这两篇论文分别代表了"学"和"固定"两种路线之争,本文可以看作是把这场争论搬到了Drifting Models的语境里,并且给出了明确的实验证据:在这个框架下,"学"赢了。

第三条线是Wasserstein梯度流的理论工具,Gretton等人用这套数学语言把高斯核漂移和KL散度的最优传输联系起来,为漂移模型提供了理论地基,但他们的分析留下了一个悬而未决的问题:有限批次下具体怎么构造这个漂移场、它诱导出的生成器更新规律性如何,这正是本文要往前推一步的地方。

**写在后面**

读这篇论文的时候,有个地方让我愣了一下:速度裁剪的最佳取值竟然是Vmax=0.005,而不是0.5或者1这种"看起来更合理"的数字。论文附录里给了一张速度分布图,显示在裁剪发生之前,大部分漂移速度的中位数大概在0.70左右,这意味着0.005这个阈值其实压得相当狠,大部分原始漂移速度都要被硬生生砍掉。这跟我们一般的直觉有点冲突:你会觉得,既然大多数速度都超过了这个阈值,那是不是说明这个约束"管得太宽"了?但实验数据不骗人,就是这个狠狠压下去的阈值效果最好。这说明在表示空间还处于剧烈进化的训练早期,哪怕是看起来"正常"的漂移速度,也可能携带了大量还没稳定下来的噪声信息,宁可牺牲一些效率,也要把步子迈小一点。

另一个让我多想了一会儿的细节是关于那个"持续标量判别器反而拖后腿"的消融结果。这其实暗示了一个更普遍的问题:在生成模型里,"判别"这个任务本身的表示形式,可能比我们以为的更重要。一个只输出单一数字的判别器,和一整套能刻画样本间相对关系的表示空间,看起来都在做"区分真假"这件事,但它们携带的信息量完全不是一个层级的。这或许能解释为什么近些年不少生成模型的进展,都发生在"怎么定义相似度"这个看似基础、实则暗藏玄机的问题上,无论是对比学习、度量学习,还是这篇论文里的KDE驱动表示学习,本质上都是在跟同一个问题较劲。

论文自己也坦白了没解决的事:从零学出来的表示,终究还是不如直接套用ImageNet预训练的编码器效果好。这说明单纯靠训练过程中的动态自我进化,还没能完全追上那些见过上百万张真实图片积累下来的先验知识。这个差距值得继续追问,是训练步数不够,还是这套残差式编码器的架构本身容量有限,又或者是生成器和表示编码器之间的博弈动态,天然就存在某种上限?

Q&A

Q1:Drifting Models是什么,它和扩散模型有什么区别?

A:Drifting Models是一种生成模型范式,核心是把扩散模型里"推理时逐步去噪"的过程挪到了训练阶段完成,训练时反复构造真假样本之间的漂移场并让生成器回归,训练完成后只需一步就能生成样本,不用像扩散模型那样迭代多步采样。

Q2:为什么在像素空间直接做Drifting Models效果很差?

A:因为像素空间里样本之间的距离主要反映的是像素数值差异,而不是真正的语义相似度,导致核密度估计算出来的真假判别力很弱,漂移方向不准,论文实验显示即便调节核带宽三个数量级,FID仍卡在134到376之间无法改善。

Q3:持续表征学习具体是怎么提升生成效果的?

A:持续表征学习让一个编码器跨批次持续更新参数,不断学习更能区分真假样本的表示空间,使漂移场的计算基于更有判别力的几何结构,论文实验显示这一改动把CIFAR-10上的FID从124.94降到12.81,是效果提升的主要来源。

作者声明:作品含AI生成内容
举报/反馈
مشاركة عبر: ويبو Qzone
مهتم بالتعاون بشأن هذا المقال؟
سنعاود الاتصال بك خلال يوم عمل واحد
اترك رسالة