最近一直在做图像分类相关工作,由于没有人力专门去做标注,因此只是大概标注了1w多张图片,其他还有17w张图片没有标注,其实整体图片数量都有点少,大概思路就是先无监督学习图像的representation然后再有监督情况下fine tuning一下或者直接用半监督去学习,半监督尝试noise-student的方法,但是效果不是很好,前一种方法使用swav跑过一版还不错,最近看到这篇文章也同样尝试了一下,因为整体标注质量不高,导致测试指标也不是很稳定,就不说具体指标了,从整体训练效果来看和swav差不太多,可能稍微会稳定一些,最后顺便把这篇文章记录一下
概述
文章主要包括三部分贡献:
- 提出self-supervised representation learning方法在linear evaluation下取得了state-of-the-art效果并且不需要使用negative pairs
- 在semi-supervised和transfer场景同样取得了state-of-the-art的效果
- 在改变batch size和image augmentations情况下,训练效果相比contrastive learning的方法会更加稳定
Methodology
BYOL的目标就是学习representation,主要创新点包括两个,主要内容如下图所示:
- 提出online_network和target_network两个网络互相对比学习
- online_network包括三部分representation/projection/prediction(相比其他算法加projection的原因是实际训练发现如果直接用representation+prediction去对比的话,训练会collapse)
details
- target_network更新这块并不是通过loss bp来进行的,是通过将online parameter进行exponential moving average得到的,这种做法也是为了避免collapse,因为如果target_network和online_network parameter一样的话,很容易就输出同一个vector这样就无法进行学习了,如果target_network随机一个值又会导致准确度不足,因此采用这种方法可以持续保证online_network能够学习到有用信息,又不至于collapse,具体更新公式为
- target_network和online_network结构不一样,target_network没有prediction这部分,loss实际是要求target_network和online_network的输出一致,这块我的理解是结构不一样同样是为了避免collapse,同时能够随着学习过程,使得prediction的作用渐渐消失,大部分的知识都在projection和representation里面,相当于representation学习一些important feature,projection学习不同的augmentation的transform的知识,具体loss如下图所示
实验
- Linear evaluation on ImageNet,能够看到使用不同的ResNet结构BYOL效果都是最好的,但是这里面没有把swav放进去对比,去看了下swav的文章实验结果和这篇文章不太对的上估计是超参数和具体配置有区别吧,实验具体数据如下图所示
- Semi-supervised training on ImageNet,这个上面的实验数据和swav文章能对上,对比来看在1%label数据top-1上面效果两者差不多,但是在10%label数据的top-1上面没有swav效果好,当然相比列出来的实验方法都要更好一些,具体数据如下图所示:
- Transfer to other classification tasks,只在几个数据集不是最好,但是大部分数据集上仍然效果最好,这一块和swav文章数据集差别较大,无法横向对比,具体数据如下图所示:
- Transfer to other vision tasks,在VOC2012 semantic segmentation task上和NYU v2 depth prediction上对比了和其他算法效果,同样表现最好,具体数据如下图所示:
Ablation Study
- batch size的影响,可以看到一般contrastive method对batch size比较敏感,一般batch size较小的话效果下降非常明显,但是BYOL相对影响少很多,尤其在batch size>=256的时候基本没有影响,具体数据如下图所示
- Image augmentations的影响,可以看到contrastive learning对color distortion非常敏感,基本不加这个效果下降非常多,但是BYOL明显小很多,在其他一些augmentation的去除下效果下降同样明显小于contrastive learning,因此可以看到BYOL在对image augmentation上鲁棒性明显更强
- Bootstrapping的影响,主要通过对target_network的parameter学习来验证,当
等于0的时候,这个时候网络不更新,等于1的时候parameter和online_network一样,可以看到这两种情况下最后效果都非常差
- contrastive methods的影响,通过对SimCLR和BYOL进行目标函数变形后得到统一的form,将其拆为相同image经过augmentation以后要相同的前半部分和不同image经过augmentation不相同的后半部分,如下所示,能够看到SimCLR里的
=1,而BYOL里的=0,如果对两种方法进行改造后可以看到BYOL在=0效果最好,而SimCLR如果=0基本无法学习,而SimCLR如果加上一个target_network同样能够改善效果
- near-optimal predictor的影响,文章最后探讨了可以把target network去掉同样不会导致训练collapse的方法,做法是将predictor near-optimal,具体做法是1)如果说如果将predictor更新推迟一个batch,top-1 准确率是52.5%;2)如果单独调大predictor的learning_rate,top-1准确率可以达到66.5%;3)如果同时增大predictor和Projector的learning_rate,top-1准确率又会直接降到25%,以此说明保持predictor near-optimal对防止collapse的重要性