首发:AIWalker
作者:HappyAIWalker
标题&作者团队
Paper: https://arxiv.org/abs/2101.07525
Code: https://github.com/zengarden/...
【导读】本文是Face++的研究员提出的一种自监督方法,它针对现有老师-学生模式自监督方案中BN统计信息更新需要大batch问题,结合老师模型无需梯度传播的机制,提出了一种新颖的MomentumBN。所提方法仅需比较的batch即可取得与原始方案大batch相当的性能;甚至,MomentumBN可以进一步提升BYOL、MoCo等方法的性能。本文值得自监督学习方向的同学研究一番。
Abstract
本文提出一种新颖的Mementum2Teacher方法用于学生-老师模式的自监督学习,所提方法采用momentum方式对网络参数与BN的统计参数进行更新:老师模型的权值参数根据学生模型的权值参数采用momentum方式进行更新,老师模型的BN统计信息则根据自身的历史信息通过momentum方式更新。所提Momentum2Teacher方法极为简单&有效,在batch=128的情形下,所提方法可以在ImageNet的线性评估模式下取得74.5%的精度,且不需要在特定的硬件(如TPU)或者低效的跨GPU操作(比如SyncBN、ShuffleBN)。
本文的主要贡献包含以下几点:
- 提出一种新颖的Momentum2Teacher自监督方法,它具有高效性、硬件友好性(小batch),同时可以取得与大batch相当的性能;
- 所提核心MomentumBN有益于所有学生-老师模式的自监督方法,它可以进一步改善MoCo与BYOL的性能;
- 所提方法在ImageNet(线性评估)取得了74.5%的top-1精度。
Method
在正式介绍本文核心之前,作者做了这样一个实验:统计信息的重要性;然后再引出本文的核心MomentumBN;最后给出Momentum2Teacher方案。
Importance of Stable Statistics
为更好分析学生-老师框架中BN统计信息的重要性,作者采用STL10数据集、BYOL方法作为基线,进行了四组不同BN统计的性能对比,结果见下表。
从上表对比结果我们可以看到以下四点发现:
- SyncBN非常重要。当移除掉SyncBN后,BYOL的性能直接从88.06%下降到了84.16%。这说明了BN中的稳定统计信息的重要性。
- SyncBN会降低训练速度。SyncBN会涉及到跨GPU信息交互,可以看到速度降低高达4倍。
- 同时对学生模型与老师模型添加SyncBN并非必要。仅仅对其中一个添加SyncBN可以分别得到87.80%和87.12%。这说明:老师与学生模型中的BN可以解耦设计。
- 稳定的老师模型非常重要。老师模型中添加SyncBN要比学生模型中添加SyncBN更加(87.80% vs 87.12%)。
Momentum BN
Momentum2Teacher
Implementation
Experiments
前面在STL10数据集上已经验证了所提方案的有效性。接下来,我们将在ImageNet数据集上进行更进一步的分析论证,默认采用ResNet50。
Effectiveness
首先,我们来看一下MomentumBN在BYOL框架中的有效性,结果见下表。从中可以看到:(1) batch=128时,移除掉SyncBN后,BYOL的性能从72.5下贱管道了61.5;(2) 而MomentumBN则可以将其性能提升到72.9;(3) Momentum2Teacher的训练速度与无SyncBN的BYOL相当。
然后,我们再来看一下MomentumBN在MoCoV2框架中的有效性,结果见下表。可以看到:更稳定的统计同样有益于MoCo,验证了MomentumBN的泛化性能,与此同时,MomentumBN可以加速训练。
Small Batch-Size
接下来,我们再来看一下不同batch对于Momentum2Teacher的影响性。
从上面的图示可以看到:Momentum2Teacher的batch可以非常小。当batch=32时,所提方法可以取得了与batch=512的BYOL相当的性能;而BYOL的性能会随batch的减小而训练下降。
State-of-the-art
Transfer Learning
最后,我们再来看一下所提方案训练的模型在下游任务上的性能对比,结果如下,结果非常赞。
全文到此结束,更多消融实验分析建议查看原文。
- END -
推荐阅读
本文章著作权归作者所有,任何形式的转载都请注明出处。更多动态滤波,图像质量,超分辨相关请关注我的专栏深度学习从入门到精通。