Your Dissimilarities Define You: Complementary Learning Exploiting Class Diversities¶
会议: CVPR 2026
论文: CVF Open Access
代码: https://github.com/katdimitris/Complementary-Dissimilarity-Loss
领域: 表示学习 / 监督分类正则化
关键词: 互补学习, 类别相异性, Neural Collapse, one-cold 目标, 监督正则
一句话总结¶
针对交叉熵在样本被正确分类后非目标类梯度消失、丢掉"类别之间有多不像"这条信息的问题,本文提出 Complementary Dissimilarity Loss (CDL):用"目标类置 0、非目标类按相异性分配概率质量"的 one-cold 目标显式监督所有非目标类,保持不消失的梯度,主动把表示推向可控的 Neural Collapse,在闭集 / 开集 / 小样本 / 域泛化四类任务上即插即用地稳定涨点。
研究背景与动机¶
领域现状:监督分类几乎都建立在交叉熵(CE)+ one-hot 目标之上。为缓解过自信和过拟合,又衍生出 Label Smoothing(LS)、MaxSup、Complement Objective Training(COT/CCE)等正则项,以及一系列自蒸馏(self-KD,如 OLS、USKD、Zipf's LS)方法,它们都试图把一部分概率质量从目标类挪到非目标类上。
现有痛点:one-hot 目标只关心"这个样本是哪一类",一旦样本被正确分类、目标 logit 远超其余,softmax 的指数归一化就让所有非目标类的梯度指数级衰减——模型对"这个样本最不像哪些类"完全不再学习。LS 这类方法虽然往非目标类撒了均匀的概率,但(a)压低了目标类概率、人为缩小了类间 margin,(b)对置信度高、相异性大的类同样存在梯度消失。也就是说现有方法捕捉的是"相似性"(看起来像哪些类),却忽略了"相异性"(明确不像哪些远距离类)。
核心矛盾:CE 的监督目标天然只在"还没分对"时有效,分对之后梯度趋零,而 Neural Collapse(NC,类内特征坍缩到一点、类均值排成 Simplex ETF、末层退化为最近类心分类器)这种"好几何"只在过参数化模型训练到零训练误差之后、作为长时间拟合的副产品偶然出现,并没有被显式优化。
本文目标:把"类别相异性"做成一个梯度不会随正确分类而消失的显式监督信号,从训练早期就主动塑造表示几何,并对 NC 走向哪种几何形态有可控的把握。
切入角度:作者引入"对立类(opposite-class,O-class)"的概念——类 \(k\) 的对立类 \(\bar{C}_k = X \setminus C_k\) 是特征空间里"所有不属于 \(k\) 的东西",包括其他已知类、未知类甚至随机噪声。一个真实样本 \(x \in C_c\) 同时落在所有非目标类的对立类里,于是"它属于哪些 O-class"恰好编码了"它不像哪些类"。
核心 idea:用 one-cold 目标(目标类置 0、非目标类按相异性先验分配概率)代替 one-hot/soft 目标,构造一个与 CE 正交、可叠加的 CDL 损失,显式监督"什么是它不像的"。
方法详解¶
整体框架¶
方法不改网络结构、不加额外分支,只是在原有 CE 损失上叠一个互补损失项。给定网络输出 logits \(z = f_\theta(x)\),CE 照常作用在 \(z\) 上保证"分对";同时把同一组 logits 取负 \(\bar{z} = -z\) 作为"O-class logits",过 softmax 得到 O-class 预测分布 \(\hat{\bar p}\),再用一个目标类为 0、非目标类按相异性先验归一的 one-cold 目标分布 \(\bar p\) 去监督它。两路相加构成最终目标:
其中 \(\gamma\) 控制相异性信号的强度。整个机制的核心在于三件事:怎么定义 one-cold 目标分布、用什么先验填它、以及为什么取负 logits 能让梯度不消失并把表示推向 NC。下面三个关键设计依次讲清。
关键设计¶
1. O-class 与 one-cold 目标:把"不像什么"写成可监督的概率分布
痛点是 one-hot 把所有非目标类一律压到 0,等于宣称"非目标类之间没有区别",相异性信息被抹平。本文反过来:对样本 \((x, y=c)\),目标类 \(c\) 的 O-class 成员概率为 0(它本来就属于 \(c\)),其余 \(K-1\) 个非目标类的 O-class 成员概率为 1(它确实不属于它们)。光知道"不属于 \(k\)"还不够,作者进一步问"从 \(k\) 的对立类里随机抽一个点,它属于类 \(c\) 的概率有多大",定义相异性先验
\(\rho_{c|k}\) 越大说明 \(c\) 与 \(k\) 越不像(\(c\) 在 \(k\) 的"补集"里占比越重)。把 O-class 成员似然(式 4)与该先验相乘、在非目标集上归一,得到 one-cold 目标分布:
它给目标类分配 0 概率、把单位质量按相异性铺到非目标类上——这正是"one-cold"(一个冷点)名字的由来,与 one-hot(一个热点)刚好互补。
2. Complementary Dissimilarity Loss 与两种先验:均匀 vs 自蒸馏
有了目标分布 \(\bar p\) 和预测 \(\hat{\bar p}\),CDL 就是二者的交叉熵 \(\mathcal{L}_{CD} = -\sum_k \bar p_k \log \hat{\bar p}_k\)。先验 \(\rho_{c|k}\) 怎么填决定了想塑造哪种几何,作者给了两个变体。均匀先验假设没有额外信息、每个非目标类同等地"不像",即 \(\rho^{uni}_{c|k}=1/(K-1)\),代入后得到
它抑制虚假的类间依赖、鼓励非目标 logit 收敛到一个共同常数,从而把类几何推向对称的 Simplex ETF。自蒸馏先验(self-KD)则让先验从模型自己的预测里自适应地长出来:每个 epoch 收集正确分类样本的温度缩放 O-class 预测的均值 \(\tilde\rho_{c|k}=\frac{1}{|S_c|}\sum_{x\in S_c}\hat{\bar p}_k(x;\tau)\),再与均匀先验插值 \(\rho^{self}_{c|k}=(1-\alpha)\rho^{uni}_{c|k}+\alpha\tilde\rho_{c|k}\)(首个 epoch 无历史,退化为均匀)。这样模型能把训练中发现的"哪些类彼此更像/更不像"的非对称关系反哺进目标分布,刻意偏离严格 ETF 以保留真实的类间结构。两者无需外部教师,self-KD 仅靠自身预测迭代精化相异性先验。
3. 取负 logits 复用 + 非消失梯度:把 CE 分对就躺平的地方接着优化
最妙的工程点是怎么把 CDL 接到现有 CE 上而不打架。作者不另设一组参数,而是直接令 O-class logits \(\bar z = -z\)——目标类在 \(z\) 上越大、在 \(\bar z\) 上就越小(O-class 成员概率趋 0,符合 \(\bar p_c=0\)),预测对齐天然成立,任何基于 CE 的损失都能"原样套用到取负的 logits 上",零侵入。关键收益体现在梯度上:CE 对非目标 logit 的梯度是 \(\partial \mathcal{L}_{CE}/\partial z_k = p_k\),当样本分对、\(p_k\to 0\) 时梯度消失;而 CDL\(_{uni}\) 对非目标 O-class logit 的梯度是 \(\partial \mathcal{L}^{uni}_{CD}/\partial \bar z_k = \bar p_k - \frac{1}{K-1}\),即使样本已分对依然非零。理论上(定理 1)CE 把非目标 logit 拉平的速率随 margin \(m\) 指数衰减(系数 \(\frac{\eta}{e^m+K-1}\)),而 CDL\(_{uni}\) 以与 margin 无关的常数系数 \(\frac{\eta}{K-1}\) 持续收缩非目标 logit 的离散度 \(\sigma\)。结果是:目标类概率 \(p_c\) 仍能收敛到 1(不像 LS/MaxSup 那样人为压低目标类、损失 margin),同时所有非目标 logit 被推向同一常数 \(z_{const}\),从训练早期就主动促成可控的 NC,而非靠超长训练撞运气。
损失函数 / 训练策略¶
最终损失为 \(\mathcal{L} = \mathcal{L}_{CE} + \gamma\,\mathcal{L}_{CD}\),\(\gamma\) 控制相异性强度(单独用 CDL 时常取 \(\gamma=1.0\),与强正则叠加时取 \(\gamma=0.1\sim0.5\))。self-KD 变体额外有插值权重 \(\alpha\in[0,1]\) 和温度 \(\tau\)。该目标与任意 CE 系损失(LS、COT、focal、ASL 等)以及自蒸馏方法(OLS 等)正交可叠加,不改架构、不增推理开销。
实验关键数据¶
主实验(闭集分类)¶
在 CIFAR-100 / TinyImageNet 上把 CDL\(_{uni}\) 叠到 9 种 CE 系基线上,3 个 seed,几乎全面降低错误率:
| 数据集 / 模型 | 基线(CE) | +CDL\(_{uni}\) | 强基线 COT | COT+CDL\(_{uni}\) |
|---|---|---|---|---|
| CIFAR-100 / RN18 | 24.98 | 23.92 | 24.52 | 23.21 |
| CIFAR-100 / DN121 | 25.06 | 24.19 | 23.70 | 22.27 |
| TinyImageNet / RN18 | 36.80 | 35.61 | 35.40 | 34.74 |
| TinyImageNet / DN121 | 38.71 | 36.49 | 37.60 | 35.11 |
ImageNet 上(ResNet,错误率↓)CDL 同样稳定提升,且模型越大收益越大:
| 配置 | RN50 Top-1 | RN50 Top-5 | RN101 Top-1 | RN101 Top-5 |
|---|---|---|---|---|
| CE | 23.72 | 7.08 | 22.78 | 6.50 |
| CE + CDL\(_{uni}\) | 22.61 | 6.24 | 21.46 | 5.68 |
| LS | 22.72 | 6.44 | 21.59 | 5.99 |
| LS + CDL\(_{uni}\) | 22.51 | 6.24 | 21.33 | 5.74 |
| OLS + CDL\(_{self}\) | 22.31 | 6.20 | 21.07 | 5.81 |
CDL\(_{uni}\) 给 CE 在 RN50/RN101 上分别降 Top-1 错误 1.11% / 1.32%;叠到 MaxSup/LS 上还能再降 0.2~0.53%。在 DeiT-Small(关掉 MixUp/CutMix)上 CE+CDL\(_{uni}\) 把错误率从 25.61 降到 23.12(降 2.49%,优于第二名 MaxSup 0.39%),说明在 Transformer 大规模训练上同样有效。
自蒸馏与多任务泛化¶
self-KD 变体对比专门的自蒸馏方法(CIFAR-100 / TinyImageNet 错误率↓):
| 方法 | CIFAR-100 RN34 | CIFAR-100 MobV2 | TinyIN RN34 | TinyIN MobV2 |
|---|---|---|---|---|
| CE | 24.00 | 28.51 | 36.39 | 39.20 |
| OLS | 22.62 | 27.91 | 35.04 | 39.11 |
| USKD | 23.83 | 28.82 | 36.87 | 38.58 |
| CE+CDL\(_{self}\) | 22.44 | 27.52 | 34.81 | 38.88 |
在另外三类任务上一致涨点:开集识别(OSCR↑),CIFAR-100(K=100/U=100)这种更难设定上 CDL\(_{self}\) 比 CE 提 +3.66、比 ARPL 提 +2.18;小样本(1-shot 错误率↓),CUB 上 CDL\(_{self}\) 比 CE 平均降 +3.98、比 CDL\(_{uni}\) 再降 +1.64;域泛化(PACS 错误率↓),给 MixUp 叠 CDL\(_{uni}\) 平均降 1.38(DG 上属于显著提升)。
关键发现¶
- 梯度不消失是涨点根因:Fig. 2 的梯度场直观显示 CE 在已分对区域梯度趋零、躺平,而 CDL\(_{uni}\) 在整个特征空间保持有效下降方向;理论上 CE 的拉平速率随 margin 指数衰减,CDL 是常数速率。
- CDL 主动强化 NC:ResNet-50 训 250 epoch,增大 \(\gamma\) 让 NC1–NC4 四个指标全面下降;NC2+NC3 同时最小化意味着类均值自身排成 Simplex ETF,正是 CDL\(_{uni}\) 想诱导的对称几何。CDL\(_{self}\) 则可在保持低 NC1(强可分性)的同时刻意偏离严格 ETF,捕捉非对称类关系。
- 越难的任务收益越大:开集 CIFAR-100(100 个已知类)这种硬设定上 CDL 相对增益最明显,说明显式建模相异性在类别多、易混淆时最有用。
- 正交可叠加:在 9 种损失上都能涨,证明它提供的相异性信号是这些现有方法都没利用到的、互补的信息。
亮点与洞察¶
- "建模 what a sample is NOT"是一个被忽视的监督维度:one-hot 只说"是什么"、soft target 说"像什么"、本文 one-cold 说"不像什么",三者互补;把"对立类"形式化成概率分布后,相异性就变成可显式优化的目标,思路很干净。
- 取负 logits 这一招零侵入又解决梯度消失:不加参数、不改架构,仅 \(\bar z=-z\) 就让任意 CE 系损失原样复用,且把 CE"分对即躺平"的地方接着优化——工程上几乎免费,是最容易迁移的 trick。
- 把 Neural Collapse 从"训练副产品"变成"可控目标":均匀先验导向对称 Simplex ETF、自蒸馏先验导向反映真实类关系的非对称几何,给"我想要哪种表示几何"提供了一个旋钮(\(\gamma\)、\(\alpha\)、\(\tau\)),这点对表示学习很有启发。
- 相异性先验可自蒸馏自举:self-KD 变体不需要外部教师,用自己的预测均值迭代精化先验,把"模型逐渐发现哪些类更不像"这件事闭环进训练。
局限性 / 可改进方向¶
- 额外超参与调度成本:\(\gamma\)、self-KD 的 \(\alpha\) 和 \(\tau\) 都需要调,且 self-KD 要每 epoch 缓存正确分类样本的 O-class 预测、维护各类先验,工程上比纯 CE 多一层状态管理。
- 理论结论有局部性假设:定理 1 的 \(\sigma\) 收缩速率结论建立在 \(\sigma\le r\)、\(m\ge m_0\) 的局部条件和小步长 \(O(\eta\sigma^2)\) 余项上,是否在整个训练轨迹上严格成立、对优化器/学习率调度有多敏感,正文未充分展开(细节在附录)。
- 收益绝对值偏小但稳定:很多设定上的提升在 0.2~1.3% 量级,靠"哪儿都能稳定涨一点 + 越难越涨"取胜;在简单、类少的任务上相异性信息本就稀薄,增益有限(开集小规模设定上传统方法仍有竞争力)。
- 相异性先验的语义来源较弱:均匀先验等于不区分远近类,self-KD 先验来自模型自身、存在自证偏差;若能引入外部语义/层级先验(如标签树、文本嵌入相似度)填 \(\rho_{c|k}\),相异性建模可能更准。
相关工作与启发¶
- vs Label Smoothing / MaxSup:LS 把概率均匀撒到非目标类、人为压低目标类概率从而缩小 margin,且对相异类仍梯度消失;本文目标类概率仍收敛到 1(不损 margin),非目标类梯度与 margin 无关地保持有效,且可塑造特定几何而非全局偏置。
- vs COT / CCE(补集熵):它们最大化非目标预测的熵、把非目标推向均匀,但只压最自信的那个非目标 logit,对相异类梯度依旧弱;本文显式针对"被忽略的相异类",且与它们正交可叠加(实验里叠 COT 反而是强组合)。
- vs OLS / USKD / Zipf's(自蒸馏 self-KD):这些方法都在"利用类别相似性"上做文章、构造软目标监督非目标 logit,但不建模相异性;CE+CDL\(_{self}\) 在分类、NC1 可分性、开集上一致优于它们,说明相异性是与相似性互补的另一半信息。
- vs Neural Collapse 研究线:以往工作把 NC 当作 CE 长时间训练后的涌现现象来分析;本文把诱导 NC(甚至指定 ETF / 非 ETF 几何)变成可显式、可控的训练目标。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ "建模不像什么"的 one-cold 目标 + O-class 形式化是少见且自洽的新监督维度
- 实验充分度: ⭐⭐⭐⭐⭐ 闭集/开集/小样本/域泛化四类任务、CNN+ViT、9 种损失叠加、含 NC 指标与梯度理论,覆盖很全
- 写作质量: ⭐⭐⭐⭐ 概念与公式推导清晰、图示到位;超参与附录依赖较多,正文略密
- 价值: ⭐⭐⭐⭐ 即插即用、零推理开销、跨任务稳定涨点,且给表示几何提供可控旋钮,落地友好