SimCLR V2论文速览——笔记

原讲解视频地址

真诚的向大家推荐这个UP主,论文讲述的方法清楚,脉络清晰,听君一席话胜读十年书。

论文题目:Big Self-Supervised Models are Strong Semi-Supervised Learners(SimCLR v2)

论文地址:http://arxiv.org/abs/2006.10029

代码:https://github.com/google-research/simclr

前序讲解论文:SimCLR

真谛:换了更大的模型,取得了更好的performance。(作者肯定不会这么说,所以增加了知识蒸馏的部分。)

在非监督的环境下,训练好一个大的模型,然后按照有监督的方法进行finetune,得到强的分类器。然后用这个分类器教小的网络,这样我们就可以使用低成本将大量没有标记的数据,还有训练好的大的网络的知识,灌入小的网络中。

目录:1.Methodology 2.Results & conclusion

1. Methodology

本文提出的模型分为三个部分。

(1)首先是将SimCLR作为backbone,将没有标记的样本放入大的CNN中(这个CNN就是用于做pretrain,并没有做具体的优化)相对于原作而言 1.增大了CNN 2. 作者加入了几层hidden layers到projection MLP中。对比学习部分使用的依旧是contrastive loss,与原作一样的loss函数。经过这一步我们可以得到unsupervised pretraining。

(2)加入label。针对image classification任务做fine-tuning。这一步是标准的有监督的学习。这一步之后我们可以得到一个很强的classifier,也即是teacher network。

(3)然后使用teacher network教一个尺寸比较小的,专门用来做classification的网络。具体来说就是teacher network在unlabeled data上生成Pseudo label,并作为ground truth。输入给student network。

具体在知识蒸馏这一步我们使用什么样的loss呢?

图1 loss

是典型的cross enropy。里面的概率也是与softmax非常接近的,其中的temperature是超参。不仅仅可以用teacher network中产生的label,也可以输入gt(ground truth)让student network判断。结合知识蒸馏的loss和gt的loss,就可以构成一个完整的loss。\alpha就是这两项的trade off。

2. Result

图2 结果图

模型越大效果越好,label使用的效率越高。

图3 结果图

随着projection head的层数增加效果会逐渐变好。(尤其是在label较少的情况下。)

从哪里开始fine-tune?

实验验证,从第一层hidden layer开始比直接从representation开始效果好。但是如果使用的样本很多,还是从representation开始效果好。

图4

distillation 使用unlabel的data可以提升准确率。(distillation起到了重要的作用)

图5

附录有许多有意思的发现,可以读读。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容