Rethinking Pre-training and Self-training论文阅读笔记:关于预训练和自训练的炼丹心法

《Rethinking Pre-training and Self-training》提出了著名的NAS-FPN-EfficientNet-L2骨干网络架构。作为PASCAL VOC 2012语义分割数据集上的SOTA模型,它在single-scale inference的设置下达到了test集的90.5% mIOU,可谓性能强劲。虽然提出了SOTA模型,但这篇文章最主要的贡献还是对预训练和自训练在目标检测和语义分割两个下游任务的深入讨论。作者通过大量实验全面探索了预训练和自训练的优劣得失和使用技巧,可谓一篇质量上佳的炼丹内功心法。

原文链接:https://arxiv.org/pdf/2006.06882.pdf

       总的来说,文章在Kaiming He的Rethinking ImageNet Pre-training基础上做了很多进一步的实验观察和讨论分析。作者发现预训练方法会给模型性能带来怎样的影响与训练时采用的数据增强强度、数据集大小以及预训练质量均存在很强的关联性,从结论上讲,实际训练采用的数据增强手段越强、数据集规模越大都会使预训练权重带来的增益变低,使用足够强的数据增强和足够多的训练数据甚至会使预训练权重对最终的下游任务性能带来损害;但作者观察到自训练则完全不会出现预训练方法所存在的问题,也就是说自训练在预训练无法带来增益的情况下仍然能够保持对下游任务的正面影响,即自训练几乎“总是能涨点”。此外,作者观察到虽然某些情况下预训练权重总是会损害模型的性能,但使用质量更好的预训练权重可以减缓这一负面影响。

       就我个人的理解而言,这篇文章对实际的调参过程主要具有以下两点指导作用:

(1)关于预训练,预训练权重其实在目前常规的网络训练中仍然起到重要的作用。虽然文章着力探讨了预训练权重正面影响可能下降甚至变为负面的那些情况,但对应的实验都设置在比较不常见的条件下。举例来说,文章讨论数据增强对预训练的影响时,采用了四种不同的数据增强方法S1-S4,注意S2-S4均采用了Google Brain团队提出的可学习数据增强方法AutoAugment和RandAugment,这些方法目前还都建立在多阶段训练、耗费巨大算力的基础上;而在使用常规数据增强S1的实验中,COCO数据集上的目标检测任务使用ImageNet预训练权重比随机初始化要表现得更好,特别是使用noisy student方法预训练的ImageNet++权重,在使用S1的条件下性能表现远远超出随机初始化。注意COCO数据集本身是一个比较大规模的数据集(包含200k+张有标签图片),在大数据集上预训练权重的影响本身就会降低,但从原文正文的图1和附录的图3可以看到,COCO目标检测数据集上至少需要比S2(AutoAugment-v1)更强的数据增强方法才能使预训练权重的效果弱于随机权重初始化,这在实际炼丹过程中是比较少见的。

 

       对于语义分割而言,现有数据集的大小都远远小于COCO目标检测数据集,就PASCAL VOC 2012而言,原生的训练集图片只有1464张,加上粗糙的扩充训练图片也才刚好达到10k的数量,需要指出扩充训练图片的标签并非为手工标注而是通过轮廓方法生成,因此实际上是非常粗糙的。文中通过实验明确指出,当数据增强手段足够强时,加入PASCAL扩充训练集甚至会损害模型的最终性能,如原文表格8所示:

       因此,在语义分割任务中,手工标注难以获得、目标数据集的规模普遍较小,在这些实际情况下预训练权重对模型的最终性能几乎起到了决定性的作用。如原文附录表格11所示。可以看到使用ImageNet预训练权重的模型性能比随机初始化高出几十个百分点,可以说没有预训练权重的加持,现有的语义分割网络几乎不能在PASCAL这样的小数据集上训练到收敛。

       此外,文章在末尾讨论到预训练方法之所以在某些情况下失效的可能原因。作者认为造成预训练方法可迁移性不佳的主要原因是预训练任务与目标下游任务之间存在一定的不匹配(mismatch)。举例来说,ImageNet预训练权重一般从分类任务训练而来,在学习更抽象、更高级的、更适合于分类任务的representation的过程中,那些对目标检测有利的关于位置的定位表征能力很可能被抛弃,因此造成预训练权重的迁移性不佳。

(2)关于自训练,自训练几乎是一种“即插即用”的通用涨点手段,但真正用好自训练方法需要一些“tricks”。文章多处阐明自训练具有更加鲁棒的给模型带来增益的能力,在这里不再赘述。文章中使用的自训练其实就是比较原始的机器学习方法的自训练方法,即先用目标数据集的可用标签训练一个教师模型,然后用教师模型对无标签数据源生成伪标签,最后采用真实标签和伪标签对学生模型进行联合训练。这里提出几个比较需要注意的点,第一个是自训练学生模型的权重初始化问题。

文中的原始实验设置采用了一模一样的教师网络架构和学生网络架构,且采用已训练的教师网络权重初始化训练学生网络,这样的方法不仅能够提升学生网络的最终性能,还能加速学生网络的收敛,使需要迭代训练的次数大幅降低,如原文图附录的表格10所示,采用教师模型权重初始化学生模型具有双重好处。需要指出教师模型和学生模型不一定需要使用完全相同的架构,学生模型完全可以设置得比教师模型更复杂,但尽量保留教师模型的特征提取backbone等基本结构,但训好一个更复杂的学生模型可能要一些调参的过程。第二点是自训练可能会出现的训练不稳定问题,即加入伪标签训练学生模型时可能会出现训练崩溃、无法收敛的情况。针对这种情况,文中提出了Loss Normalization方法进行自训练。具体方法是在最终损失函数中加入类似于动量的滑动平均,训练时记录当前真实标签损失和伪标签损失的滑动平均值并对伪标签损失进行归一化。实验证明这种方法能够很好地解决自训练不稳定的问题。

       最后一点是关于自训练的无标签数据源选取的问题,一般来说,目标数据源和无标签数据源之间的domain gap越小,自训练的效果就越好。文章给出了选取语义分割自训练数据源的一些实验结果,如原文附录表格14所示。可以看到ImageNet、COCO和PASCAL aug的自训练效果逐次升高,说明PASCAL扩充数据集与PASCAL原生训练集最为接近,COCO次之,而最通用的ImageNet与PASCAL反而存在最大的domain gap。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值