对比学习——moco
1.moco: Momentum Contrast 动量对比学习.
2.pretext task:代理任务,即在自监督学习中通过图像增强的一些操作制作标签。在对比学习中正样本对儿都是由同一张图像做不同的数据增强而来。
3.设计思路:在对比学习中,每一轮参与优化的负样本越多,学习到的表征特征提取到的正负样本信息更多,表征能力就更强。但是受限于batchsize大小,每一次参与优化的样本数量不能太多,所以moco就提出了将当前轮参与优化的负样本放到队列当中,将batchsize与队列长度解耦,即一个队列可以包括很多batch。这样会遇到新的问题,即如何保证队列内多个batch之间的模型参数相近,本文就提出了动量对比学习的方式,每个batch更新模型参数时不仅依赖当前输入,还要依赖上一个batch的模型参数,使其缓慢平稳的进行参数更新,其中动量使用0.999效果最好。
4.contrastive loss:对比损失,在特征空间或是projection空间去衡量两个表征特征的相似性。info NCE loss见simCLR解析。
5.关于编码器特征学习,其中只有query的编码器是学习的,而队列中key的编码器是通过query赋值的。
6.算法流程:
7.下游任务:linear classification protocol,在分类任务上应用,把网络当成特征提取器,冻住moco的编码器(resnet),加一个mlp分类头,用30的学习率(超级大)进行微调。
8.moco贡献:①与nlp领域类似,给出大规模无监督学习的优越性。②moco相比simCLR,给出一种GPU资源相对较小(8*24G)的对比学习训练方法。