Momentum Contrast for Unsupervised Visual Representation Learning (MoCo)

论文:MoCo
这篇文章是CVPR2020的文章,针对上一篇文章的memory bank所占用的空间较大的问题,这一篇文章提出了改进。该文章主要解决的是无监督视觉表示学习问题。
摘要:作者从将对比学习看做字典查找(dictionary look-up)出发,使用队列(queue)和滑动平均编码器(moving-averaged encoder)构建动态字典。这一做法使得通过构建大容量且协调的字典来实现对比无监督学习成为可能。
方法
将对比学习视为字典查找:给定已经编码的查询集和使用已编码的样本集合作为键值的字典。假设,对于q来说,在字典中只有单个键值k+与其匹配。当q与其正键值k+相似,而与其他键值(负键值)不相似时,对比损失具有较小的值。在本文中使用的是对比损失的一种:InfoNCE,使用点乘对相似度进行度量。对比损失公式1就是本文的目标函数,来训练编码器网络对查询集和键值进行表示。
在这里插入图片描述此外,字典应该是动态的、且键值由随机采样产生,键值的编码在训练过程中进行迭代。字典中的样本被持续更新,当前mini-batch被压入队列,队列中较早的mini-batch则被移除。字典总是代表着所有数据的子集。另外,更新时,使用队列的形式可以使得字典变得很大,但同时也使得使用反向传播更新键值编码器变得困难(每一次都需要对队列中的所有样本进行梯度反向传播)。一个简单的解决方法是直接复制查询集编码器f_q,用于替代键值编码器f_k,同时忽略梯度。但在实际中,这种方法效果不行。作者认为这是由于快速改变的编码器降低了键值表示特征的连续性,为此,提出了动量更新方法。将键值编码器的参数表示为theta_k,查询集编码器的参数表示为theta_q,使用公式2更新theta_k。这样只有θq通过反向传播参数更新,很好的解决了编码器更新的问题。在这里插入图片描述
结果显示,本文方法在7种检测和分割任务上超过了有监督学习方法,因此使用MOCO很好的完成了无监督视觉表示学习问题。

你可能感兴趣的:(Momentum Contrast for Unsupervised Visual Representation Learning (MoCo))