5. 无监督学习 MoCo: Momentum Contrast for Unsupervised Visual Representation Learning
用于视觉表示学习的动量对比。
作者:Kaiming He 以及FAIR的一众大佬
Summary
本文旨在解决无监督视觉表示学习问题。研究者认为对比学习类似于字典查找技术(dictionary look-up),并基于此进行分析。通过引入队列机制与滑动平均编码器相结合的方式设计动态更新的字典模型,并在此基础上提出了一种高效的方法来处理相关任务。实验结果表明,在涉及图像检测与分割的关键场景中,该方法展现出显著的优势与超越性能。
目前,在无监督视觉表示学习领域内已有若干方法借助对比损失(contrastive loss)实现了相关目标,并均被视为构建动态字典的一种有效手段。这种动态字典中的键值均来源于数据采样(通过获取图片或patches)并经由编码网络进行表征。在此框架下,无监督学习旨在训练编码器以实现字典检索过程:其对应的查询表征应与相关键值高度相似,而与其他键值之间则存在显著差异性特征。这一过程可被视为通过最小化对比损失来优化模型参数。
从这一观点出发,作者认为所构建的字典应该具有以下的特点:
- 能够容纳大量数据;
- 在整个训练阶段保持一致性。
其原因在于:
- 在整个训练阶段保持一致性。
- 更大的容量有助于提升字典在连续且高维视觉空间中的采样效果;
- 此外,在表示方面要求字典中的键值应采用相同的或相似的编码特性,并由此确保这些键值与查询集之间的对比呈现连贯性。
然而,在这两方面中目前对比损失方法仅存在一定的局限性。
如图所示, 作者采用数据采样机制构建了一个队列结构: 当前批次编码用于记录特征信息, 而先前批次编码则用于释放存储空间。这种机制使得字典容量不受单批处理规模限制, 具备较大的存储潜力; 同时, 字典中的键值来源于最近几个批次特征融合的结果, 并通过动量衰减滑动窗口计算得来, 这一设计保证了信息的有效持久性。
- 该研究提出了一种基于无监督学习的视觉表示模型——Momentum Contrast(MoCo)。
- 通过类比对比学习机制与查字典过程相似,并将数据存储结构视为队列以实现动量更新。
- 对端到端框架、记忆库以及MoCo方法进行了系统性对比分析。
- 针对ImageNet和Instagram等基准数据集,在大规模数据环境下进行了参数优化和性能评估,并将提取的有效特征应用于多个下游任务进行验证。
Problem Statement
*无监督表示学习在NLP领域展现出显著的成效,例如GPT和BERT模型等,但有监督预训练依然是计算机视觉领域的主流方法。
Methods

1.Contrastive Learning as Dictionary Look-up

2.Momentum Contrast
From the analysis, contrastive learning is a method for dynamically maintaining a discrete vocabulary in high-dimensional continuous input types (such as images). The vocabulary is dynamically maintained, with keys and values randomly sampled during training. Additionally, the key encoder is continuously updated during training. It is assumed that good features can be learned from a dictionary containing a large number of negative samples, with the key encoder maintaining consistency during updates. This core idea forms the basis of the MoCo algorithm. Dictionary as a queue. The essence of this method is to maintain the vocabulary as a data sample queue. This allows for reusing already encoded keys and values from the current mini-batch. Furthermore, the queue enables decoupling between dictionary size and mini-batch size, allowing the dictionary size to be significantly larger than the mini-batch size, effectively functioning as a hyperparameter. Since mini-batches follow first-in-first-out principles, the dictionary always represents a subset of all data.

Relations to previous mechanisms.

这几种方法各自的特点主要体现在如何处理键值信息的方式上,并且在更新机制上也有所不同。
左侧第一种:使用当前mini-batch实时更新查询集编码器和键值编码器;
中间:构造memory bank,所有样本的编码特征都被存储在memory bank中;
右侧:本论文提出的方法,使用动量法实时更新键值编码器的参数。
a method,其中字典大小与mini-batch大小一致,在受限于GPU内存的情况下,优化较大的mini-batch同样面临挑战;某些pretext进行了相应的优化,使得允许使用更大的词汇表,但这种方式在跨场景应用中并不方便
b-method, Memory Bank存储了来自整个数据集的所有样本的特征表示。从Memory Bank中选取样本时无需执行反向传播操作,并且能够支持较大的词汇表规模。每个样本的特征表示仅在其被处理时才会被更新到Memory_bank中,并且这使得每个样本的特征表征具有较高的独特性。同时,在其更新过程中仅涉及到了feature representation的变化,并未影响到encoder部分

3.Pretext Task

Technical details. 本研究采用ResNet架构作为编码器模块,在其输出端获得128维的表示空间用于查询与关键路径(key path)向量提取。 Shuffling BN. 通过实验分析发现,在当前模型架构中引入批归一化层(Batch Normalization)可能会抑制模型从训练数据中学习出有效的特征表征。这一现象可能与批归一化过程中样本间的内部通信(intra-batch communication)泄露而导致的信息泄漏有关

Experiment
ImageNet-1M (IN-1M)、Instagram-1B (IG-1B)10亿图片数据集。
训练:使用ResNet-50,SGD优化器,weight_decay=0.0001,momentum=0.9
对于(1N-1M):设置batch size为256,并行使用8张GPU进行计算;起始学习率为3e-2,在总共进行200轮训练的过程中,在第121至第160轮训练期间降低学习率;整个训练过程耗时约72小时完成
对于(1G-1B):采用 mini-batch 大小为 1024 的并行处理方式,并同时并行使用 64 块 GPU 加速运算;起始学习率为 0.12 并设置为指数衰减策略(每隔 62.5 千步乘以 0.9),总计进行约 1,250,000 步骤的训练任务),预计耗时约 6 天完成

该图展示了端到端模型、记忆库以及MoCo这三种对比损失方案在基于ImageNet的线性分类评估结果中的对比情况。

上图为ImageNet上,MoCo和其它方法在线性分类评价下的对比结果

上图为PASCAL VOC trainval07+12上进行微调的目标检测结果。

上图为 holistic learning framework、large-scale memory banks 和 MoCo 三种对比损失方法在基于PASCAL VOC的目标检测任务中的结果。
相关工作
Pretext tasks. The concept of "pretext" signifies that the task being addressed is not inherently significant, but it serves exclusively as a means to achieve the real intention of establishing an effective data representation.
- loss metrics, commonly employed to analyze the independence of pretext tasks, including but not limited to
- A contrastive loss [1] is designed to assess the similarity between sample pairs within a feature vector space.
- A adversarial loss [2] is formulated to discriminate between probability distributions, while GANs and NCE have well-founded connections.
部分论文引用情况
The low-dimensional embedding was achieved through the learning of an invariant mapping. The method appeared in the proceedings of CVPR in 2006 as (Contrastive Learning).
Generative adversarial nets. In NIPS, 2014.[2]
An unsupervised approach to feature learning through non-parametric instance discrimination was presented at the CVPR conference in 2018.
Notes
本文受到[3]很大启发,在多个方面进行了深入探讨。
[3]的作者在Improving Generalization via Scalable Neighborhood Component Analysis这篇文章中对动量更新Memory Bank的方法进行了详细阐述。
作者在文章实验部分"Shuffling BN"中特别指出:Batch normalization能够有效防止模型学到糟糕的表示形式。
