无标签数据也能训出好模型,问题是它会"塌"
- 关联论文:1911.05371
自监督学习有条优雅分支:不设计代理任务,直接把无标签数据聚类成伪标签,再像监督训练那样用交叉熵训网络。不需要人标任何标签,看起来很美。但它有一个致命病:所有样本被分到同一个类,交叉熵在"标签全同"时恰好最优,于是没有梯度信号,训练崩塌。
更隐蔽的是半塌缩——一个巨大的"背景簇"吞掉大量样本,其余簇极小。这在任何无标签设置下都是通病:真实数据本来就长尾,但在 ImageNet 这种已接近均衡的集合上,这种不均衡完全是模型自己的失败产物,却得不到任何惩罚。
为什么重要
SeLa 的贡献不是又一个 SOTA 数字,而是换了一个提问方式。此前同类工作(如 DeepCluster)用 k-means 出硬标签,靠反复重聚类缓解塌缩——这是打补丁。SeLa 先证明了一件不舒服的事:朴素交叉熵的全局最优解,就是让每类分到的样本数与该类当前预测概率成正比。也就是说,不均衡不是偶然踩到的坏点,而是目标函数的真实最优解。既然如此,加惩罚项就是和最优解拔河。
于是它换了赛道:把这个问题重新表述成一个带等分约束(equipartition)的最优传输问题,让均衡性成为解的数学性质,而不是外挂的软约束。坏解直接从可行域里消失了。
核心机制
目标是最大化伪标签分布与数据索引分布之间的互信息,然后重述为 OT:
min_Q <Q, C> − λ·H(Q) # Q 为 N×K 软分配,C 由特征相似度构成
s.t. Q ≥ 0
Q·1_K = (1/N)·1_N # 每个样本总质量固定
1_NᵀQ = (1/K)·1_K # 等分约束:每类恰好 N/K 个样本
第二行是全文唯一的创新点:硬性要求每类分到 N/K 个样本。因为是硬等式而非惩罚项,交换论证立刻给出最优软分配的形式,目标函数在可行域内良定义,没有劣化的全局最优可掉进去。求解用 Sinkhorn-Knopp 快速变体,交替归一化行和列——这一步才是让方法能在百万级图像上跑起来的关键工程环节。
训练循环是 E-step / M-step:每个 epoch 用当前特征做一次 Sinkhorn 得到均衡伪标签,再用硬伪标签做标准交叉熵更新。
证据边界
论文 v3 表格里可引用的数字要说清配置:ImageNet linear probe top-1,SeLa[3k×10] 为 AlexNet 46.7、ResNet-50 61.5(Table 4)。常被转述的"+2% / +10%"是自标注头数 T 从 1 增到 10 的增益(Table 3),不是相对某个外部基线的提升——这个口径必须写对。
作者在仓库 README 中另给出:原版 R50 10×3k 为 61.5,换用更强增强(Aug++)达 68.8,MoCo-v2 + k-means(K=3k) 为 71.1。这三个数不可混引,后两个须标注"作者在仓库 README 自测"。把 61.5 当作算法本体的收益,就会把增强的红利记到 SeLa 头上。
还有两条必须留意:论文的 Sinkhorn 正则项写作 λ = 25(引 Cuturi 2013),原文未使用 ε 符号,不要在同一句里当成两个量;abstract 声称的"超过监督式 Pascal VOC 检测基线"具体对应哪一行基线,回查表格脚注前不宜当作硬结论。
工程局限
等分约束本身是强假设:每类恰好 N/K 个样本,只在类别天然均衡的数据上成立。论文 §4.5 + Table 8 确实有人工构造的不均衡实验,且结论是"不依赖每类等量",Sinkhorn 变体在各指标上都优于 K-means;但真实长尾分布下,簇与真实类别的语义对齐仍未被验证。硬等分搬到明显长尾的数据上,会强制少数类吸收大量错误样本——落地前建议改成带权边际 1_NᵀQ = w。
另外三点:K 是簇数不是类数,Table 2 显示 K 从 1k 到 3k 涨(42.1→44.7),5k/10k 反而回落;不跑 self-labelling 等于白训,#opts=0 时只有 13.4,80 次时才有 40.9,且时刻按 t_i=((i/(M-1))²) 非均匀排布;成本瓶颈是显存不是通信——等分是数据集级约束,官方 README 明确要求留够显存缓存激活,而单次 Sinkhorn 耗时论文与 README 都没给。
标题变体
- 伪标签会塌?把均衡性写成约束而不是惩罚项
- SeLa:一个最优传输问题,解掉了自监督聚类的病
- 不需要人标标签的视觉训练,难点从来不在算法
小红书卡片文案
无标签数据聚类成伪标签,再当监督训练——听起来很美,实际会塌。
SeLa 的思路特别值得抄:它不靠加惩罚项跟塌缩拔河,而是先证明"朴素交叉熵的最优解就是不均衡",然后把问题重述成带等分约束的最优传输问题。坏解直接从可行域里消失了。
通用模式:软惩罚不管用时(塌缩、不均衡、模式崩溃),优先考虑把不变量提升为可行域的硬边界。
落地前先做一次最低成本判定:抽样看你的类别分布。明显长尾的话,硬等分会主动引入噪声标签,得先改成带权边际。