1. 论文基本信息
-
论文标题:Momentum Contrast for Unsupervised Visual Representation Learning
-
作者:Kaiming He Haoqi Fan Yuxin Wu Saining Xie Ross Girshick
-
发表时间和期刊:2020;CVPR
-
论文链接:Momentum Contrast for Unsupervised Visual Representation Learning (arxiv.org)
2. 研究背景和动机
-
研究背景:无监督学习在NLP中取得极大的成功(正如GPT以及BERT),其目标就是学到可以迁移的好特征。但是在视觉中有监督得到方式仍是主导的,其原因可能在于二者的信号空间不同:NLP 的离散单词更具语义性,CV的连续、高维信号不好构建字典。近年来的对比学习方法可以看作是构建一个动态的字典:字典中有一系列的key,无监督学习训练一个encoder来执行“字典查找”,即给定一个query,找到与之最匹配的key并尽可能远离不匹配的key,学习的目标可以是最小化一个contrastive loss。
从把对比学习看成字典查找这一视角来看,构建的字典要有这两个特性:
(1)字典足够大,这样学到的特征才更好;
(2)在训练过程中尽可能保持一致性,如下图所示,假设query为q,与之匹配的key为k+,字典中其他为k0、k1....kn,那么k+与其他key应该是由类似的encoder表征出来的,否则假设字典的 key 是由不同的编码器得到的,query q做字典查询时,很有可能找到和query使用同一个or相似编码器生成的key,而不是语义相似的key
-
研究动机:给CV的无监督对比学习构建一个大 (by queue)+ 一致 (momentum encoder) 的字典,这两点也是文章的主要贡献所在。
3. 主要贡献
- queue 数据结构: 剥离 字典的大小 和 显卡内存的限制,让字典的大小 和 模型每次做前向传播的 batch size 的大小分开字典很大(成千上万),意味着要输入很多很多的图片,显卡内存吃不消。具体是当前 mini-batch 入队,最早进入队列的 mini-batch 出队。
队列的大小 = 字典的大小,每次做 iteration 更新并不需要更新字典中所有 key 元素的值。 - momentum encoder:使用 queue,只有当前 mini-batch 的特征是由当前的编码器得到的;之前的 key 是由不同时刻的编码器抽取的特征,如何保持 consistent 呢?momentum encoder 由当前时刻的 encoder 初始化而来,公式如:
基于 large + consistent dynamic dictionary,MoCo 可以很好的无监督学习视觉特征
4. 方法和模型
(1)以字典查找的方式看待对比学习
(2)动量对比(Momentum Contrast)
(3)代理任务
如下图所示,对比之前的方法,(a)中存在字典数量受到硬件水平限制的问题,(b)中解决了字典不能太大的问题,但是又导致了一致性的变化;
5. 实验和结果略~
6. 讨论和未来工作
MoCo在一系列的任务和数据集上效果很好 positive results。但是1000倍数据集数量的增加, MoCo性能的提升不高:可能是大规模数据集可能没有完全被利用,可以尝试开发其它的代理任务 pretext task除了 instance discrimination 代理任务,类似 NLP 的代理任务 masked auto-encoding(也就是Kaiming两年后的MAE)。MoCo 激励学者研究 “MoCo 学出来的特征和有监督学习学出来的特征有什么区别?还能从什么方向提高对比学习?”
7. 个人理解和反思
这篇文章讲了对比学习,是一种自顶向下的写法,即假设你对对比学习已有一定的知识储备。从写法上看,首先,第三章节中提出方法之前,引入过渡段再次说明研究动机,承上启下,写作方法值得借鉴。
其次,在实验部分中提出了几点贡献,一定要做针对这几点贡献的消融实验,才能证明提出的贡献的有效性,这点同样很重要。