能否利用生成模型生成的假数据来辅助学习?
到底是可以左脚踩右脚(bootsrap)地实现 weak-to-strong 的不断提升,还是像鸡生蛋、蛋生鸡一样,只不过是徒劳无功?
论文题目:
Do Generated Data Always Help Contrastive Learning?
论文链接:
https://arxiv.org/abs/2403.12448
代码链接:
https://github.com/PKU-ML/adainf
北大王奕森团队针对「数据扩充」(Data Inflation)问题,如对比学习(如 SimCLR、DINO、CLIP)这一常见的自监督学习场景,从理论和实验两方面分析了生成数据对于表示学习能力的影响。
为了控制变量,他们保证生成模型和表示学习都只能使用同一个(无监督)真实数据集进行训练,避免了扩充数据本身带来的收益。
他们发现,在这种情况下,生成数据并不总是对表示学习有帮助,在很多情况下甚至有害。比如,将 DDPM 的数据直接加入 CIFAR-10 训练,反而导致分类准确率下降超过 1%(前人工作 [1] 也有类似发现:用生成数据扩充 ImageNet 后 ResNet-50 的分类准确率下降了 2.69%)。
有两个关键因素影响了生成数据的收益:
真实数据和生成数据的比例
真实数据与生成数据的混合比例在 10:1 附近时达到最优,也就是说,1 个真实数据的「训练价值」约等于 10 个生成数据。这侧面说明了二者的差异。
训练策略的设计
他们发现,在使用生成数据进行训练时,如果维持原有的训练参数,则模型几乎没有提升。相反,如果随着数据集的扩充,而相应降低模型训练所使用的数据增广的强度,则可以获得显著提升。
数据扩充和数据增广都会提升数据多样性但数据增广可能会改变图像的语义信息,当数据扩充提供了足够的数据时,便可以减弱数据增广。