调研内容

人脸识别,无监督特征学习(simclr moco byol) metric learning

对比学习

对比学习(Contrastive Learning)是自监督学习的一种,需要从无标注的图像数据中学习特征表示,并用于下游任务中。其指导原则是:通过自动构造相似实例和不相似实例,学习一个表示学习模型,通过这个模型,使得相似的实例在投影空间中比较接近,而不相似的实例在投影空间中距离比较远。

MoCo(Momentum Contrast for Unsupervised Visual Representation Learning

Untitled

其中图(a)是最简单粗暴,直接end-to-end,batch size的大小取决于GPU容量大小。图(b)设计了一个memory bank保存数据集中所有数据的特征,使用的时候随机从memory bank中采样,然后对采样进行momentum update,这样可以认为多个epoch近似一个大的batch,但是这种方法存在一个问题,就是保存数据集中所有数据特征非常的占显存。

Untitled

MoCo提出了将memory bank的方法改进为dictionary as a queue,意思就是跟memory bank类似,也保存数据集中数据特征,只不过变成了queue的形式存储,这样每个epoch会enqueue进来一个batch的数据特征,然后dequeue出去dictionary中保存时间最久的一个batch的数据特征,整体上来看每个epoch,dictionary中保存的数据特征总数是不变的,并且随着epoch的进行会更新dictionary的数据特征同时dictionary的容量不需要很大,精髓!

什么是memory bank

要想明白本文的创新点和出发点,我们首先要看一下以往无监督对比学习如何做的:

一.end-to-end模式:

其中红色框对应的正样本对特征q1和k1,蓝色框对应的是负样本特征;两个特征提取器是使用的相同的参数。

输入一个batch之后,batch中的每一个样本都要当作一次正样本

该模式存在的一个问题,就是负样本的数量受到batch size大小的限制,在没有庞大GPU集群的支持下,负样本的数量是不会特别多的。这也是memory bank的创新点之一,解决负样本数量的问题。