introduce
提出了一个简单却有效的思想:在 扩散模型(Diffusion Models)中引入“表示正则化”机制,提升生成质量。核心贡献:一个新的损失项:Dispersive Loss(发散损失),可以无缝加入现有的扩散模型训练流程中,几乎不带来额外开销。
核心问题:为什么扩散模型需要“正则化 latent 表示”?现状:
- 当前 扩散模型的训练目标 主要是 回归(regression)目标,比如重建原图(denoising),关注的是输出误差;
- 缺少对“中间表示”的约束:没有让模型学到有结构、可分的表示空间(latent space);
- 相比之下,表示学习(representation learning)领域(如 MoCo, SimCLR)特别重视 特征之间的结构性、判别性,可以迁移到各种任务中。
本文提出:Dispersive Loss —— 无需正样本对的“发散式正则”
目标: 让扩散模型在训练时,其 中间层的隐藏特征更加“分散”,即每个样本的表示更具区分性,而非“堆在一起”冗余。
类比:
- 对比学习(Contrastive Learning):用“相似对拉近,非相似对拉远”的方式学习表示;
- 本文不需要构造“正样本对”,也不影响回归训练流程,只让表示“远离”彼此即可,从而达到增强判别力的目的。
- 左侧是标准扩散模型架构(如 DiT、SiT);
- 在中间某个 block(如 Transformer block)插入一个额外的 Dispersive Loss;
- 只对当前 batch 的表示计算一个“互斥/远离”损失;
- 不需要额外的数据、模型、编码器,完全 plug-and-play。
Dispersive Loss 的数学原理: 记一个 batch 的中间表示为: {z1,z2,…,zB},zi∈Rd。Dispersive Loss 的目标是让这些表示“彼此分散”,即互相“远离”。 可以理解为:鼓励所有样本在特征空间中“向外发散”,避免表达冗余。
方法 | 是否需正样本对? | 是否需额外数据? | 额外模型/参数? | 会影响采样? |
---|---|---|---|---|
Contrastive Loss | 是 | 是(增强视图) | 有 | 有影响 |
REPA (2023) | 否 | 外部模型特征 | 有 | 不影响 |
Dispersive Loss (本文) | 否 | 无 | 无 | 不影响 |
Methodology
Dispersive Loss
目标:鼓励生成模型中间层的特征表示在 hidden space 中“分散开”(即:不要互相太像),提升表示多样性。
- LDiff(xi):扩散模型原本的损失,如去噪重建损失;
- LDisp(X):本论文新增的 dispersive loss(整个 batch 上定义);
- λ:权重系数,控制正则化强度。
实现关键点:
- 无 projection head、无数据增强、不改原始采样逻辑;
- Dispersive Loss 仅使用已有的中间层表示(如 Transformer 第 k 层输出);
- 对比 Contrastive Loss:不需要“正样本对”或额外视图,避免干扰 regression 任务。
InfoNCE-Based Variant of Dispersive Loss
对比学习中的 InfoNCE loss 形式为:
- zi,zi+:正样本对(如图像的两个增强视图);
- D(⋅,⋅):相似度距离函数(如负余弦相似度);
- τ:温度参数;
- 分子:拉近正样本;
- 分母:远离所有样本(包括负样本)。
转换为等价形式:第一项是对齐(alignment),第二项是发散(dispersion)。
Dispersive Loss 推导(只保留第二项):(4)
进一步推广为对 batch 中所有样本对 (zi,zj) 求期望:(6)强调“让所有样本对彼此远离”,即:从全局角度增强特征区分度。
距离函数 D 可选:
L2 形式在实现上更简单直接(见 Algorithm 1):
Other Variants of Dispersive Loss
- Hinge Loss 变体:只保留对负样本距离的 margin 约束(防止过近);
- Covariance Loss 变体:源于 Barlow Twins。将 batch 的特征矩阵视为 D×N 维度,计算其协方差矩阵,鼓励 off-diagonal 为 0(即通道之间不相关):强调特征维度正交性,适合防止 channel 冗余。
Diffusion Models with Dispersive Loss
实践流程: 只需两步:
- 指定模型中的中间层(如 Transformer 第 k 层)作为 Dispersive Loss 的作用点;
- 在该层提取表示 Z,计算 loss,加入主损失中:Algorithm 2
- pred:扩散模型输出;
- tgt:真实噪声或 denoising 目标;
- Z:中间表示(如 token);
- lamb:权重。
与 MAETok 的目标一致:让 latent 表示更加 compact 而非冗余。
Experiments
Setup
模型:主要测试两种模型:
- DiT(Diffusion Transformer),标准的扩散模型;
- SiT(Score-based implicit Transformer),一种 flow-based 对照模型。
数据:ImageNet,256×256 分辨率;
编码器:使用 [33] 中的 VAE tokenizer 将图像压缩为 32×32×4 的 latent;
采样方法:Heun ODE sampler,250 步(与 [31, 26] 一致);
训练细节: 训练 80 个 epoch; 默认不使用 classifier-free guidance (CFG) [17]; λ = 0.5(正则化损失权重),τ = 0.5(温度超参)
Main Observations on Diffusion Models
Dispersive vs. Contrastive:两者对比
表格 2 对比了 Dispersive Loss 的各个变体 与其对应的 Contrastive Loss(对比损失)。应用 contrastive loss 时,需要为每个样本生成两个视图(形成正样本对):
- (i) 独立噪声:对两个视图分别采样噪声;
- (ii) 受限噪声:两个视图之间的噪声幅度差异不超过 0.005。
为了公平性,只对第一个视图施加 denoising loss,避免训练步数翻倍。结果:
- 独立噪声的 contrastive loss 无效,甚至可能损害性能;
- 受限噪声的 contrastive loss 有时有效,但仍不如 Dispersive Loss 稳定;
- Dispersive Loss 不需要设计两视图逻辑,效果更强、更稳定、更易部署。
Variants of Dispersive Loss:多种形式的有效性
- 四种 Dispersive Loss 均优于 baseline、;
- l2 距离的 InfoNCE 变体表现最佳,FID 降低 4.14,改善 11.35%;
- 虽然 contrastive 学习中偏好 cosine 相似度,但此处未归一化特征表示,l2 可拉大差异,从而增强正则作用;
- 因此,l2-InfoNCE 被选为默认选项。
Block Choice for Regularization:在哪一层使用效果最佳?
表格 3 探讨将 Dispersive Loss 应用在 SiT 模型中不同 Transformer Block 上的影响:
- 任一位置应用均优于 baseline;
- 作用于所有 block 效果最佳;
- 单独作用于某个 block(如 Block 3)也有显著传播效应。
图 3 展示:仅在 Block 3 使用 Dispersive Loss 会显著提高该层的表示范数,并间接影响后续层。
超参数 λ 和 τ 的影响
表格 4 探讨了两个超参数对结果的影响:
- 不同配置下的 FID 均优于 baseline(36.49);
- τ(温度)非常鲁棒,不像传统 contrastive 学习那样对 τ 极其敏感;
- λ 的变化(即正则强度)对性能也没有灾难性影响。
Dispersive Loss 对不同模型大小的效果
图 4 展示 DiT 和 SiT 的四种规模(S, B, L, XL):
- 所有模型规模上均有提升;
- baseline 越强,提升幅度越大;
- SiT 的提升幅度比 DiT 更显著(尽管 baseline 也更强);
- L 模型比 S/B 更受益,但 XL 模型改善趋于饱和(可能因已足够强)。
SiT-XL/2 模型的深入实验(表格 5)
复现 SiT 原论文训练设定(含 CFG 与否、采样方式不同)。在更长训练、不同采样器(ODE vs. SDE)下:
- Dispersive Loss 始终有效,即使 baseline 训练得更充分;
- 最后一行使用 SDE、训练 1200 epoch,仍优于原论文 1400 epoch。
系统层面对比 REPA(表格 6)
结论:REPA 效果略好,但代价高;本方法自包含,部署更容易、扩展性更强。
One-step Generation Models
Dispersive Loss 可推广到一步式生成模型。
- 表格 7 左:在 MeanFlow 上测试,结果继续提升;
- 表格 7 右:与其他一步生成模型比较,结合 Dispersive Loss 的 MeanFlow 达到新的 state-of-the-art。
解读
核心思想: 不用正负对比,不搞数据增强,用一种简单、无干扰的正则化方式(Dispersive Loss)让扩散模型学到更“分散”“有区分度”的中间特征,从而生成更清晰、更有细节的图像。
背景:扩散模型学得越来越好,但也越来越容易过拟合,特别是模型越大时,中间特征会变得“粘”在一起,表达能力下降。 以往常用的 对比学习(Contrastive Loss) 可以强制模型区分不同样本。但问题是:
- 它需要一张图的两个不同视角(正样本对);
- diffusion 本身就有“加噪-去噪”机制,视角不一致;
所以,对比学习反而干扰了扩散模型的学习目标。
解决方法:Dispersive Loss = 没有正样本对的“对比正则”
作者的思路是: 不再找正样本,也不再对比。只要求:中间特征彼此之间“离得远”,这就叫 Dispersive Loss。
- 直接作用在模型内部(如 transformer block);
- 不需要改数据,不引入额外模型;
- 不改变 diffusion loss 本身,可直接 plug-and-play。
三种 Dispersive Loss
对比损失 | Dispersive Loss 版本 | 直觉 |
---|---|---|
InfoNCE | 只保留“样本间越不同越好”的项 | 中间特征之间拉开距离 |
Hinge | 保留 margin 惩罚 | 样本不能太接近 |
Covariance | 保留 off-diagonal 项 | 让不同维度间 decorrelate |
最强的效果来自 InfoNCE+l2 距离 的版本。