🔗
论文地址:https://www.robots.ox.ac.uk/~vgg/research/CoCLR/
Github: https://github.com/TengdaHan/CoCLR
一、背景介绍
-
作者背景: VGG (Oxford Visual Geometry Group) 牛津大学视觉几何组发布于 2020 NeurIPS
-
在图像和视频处理领域,自监督表征学习近两年的成果来自对比学习:给定数据集,目标是区别样本的“变体”和数据集中的其他样本。“变体”可以来自人造的,比如数据增强、也可以来自天然的,比如同一视频的不同片段出现的物体。常用的方法是实体判别,MoCo, SimCLR 都是这个思路,拉近正样本的距离,推远正样本与负样本的距离。因此对比学习非常灵活,不同的正负样本定义规则就会有不同,比如同一个视频里正负两帧都是正样本,其他视频认为负样本。
-
这篇文章提出的问题是:是否实体判别最大化利用数据?没有,原因如下
- 常见对比学习困难正样本无法辨别:通过实验证明,困难正样本的数据(标签)加入能够提高表现。对比单纯使用无监督 InfoNCE 和使用有监督的 UberNCE 的实验结果。
- 文章提出的 CoCLR, 效果比上面无监督 InfoNCE 和使用有监督的 UberNCE 的实验结果都好。采用两种 flow 网络和 RGB 网络交替辅助训练,本质是一种新的抽样方法。
- UberNCE 是什么?
a. 简单理解是给有类标签数据定义的对比损失函数,本质是 InfoNCE。
b. 2020 NeurlIPS 同时期还有一篇论文是 Supervised Contrastive Loss, 提出扩展对比损失函数,允许每个锚点有多个正对。将对比学习适应于完全监督的 setting。
- InfoNCE 与 UberNCE 的区别
- UberNCE 是 InfoNCE 的上限。如果没差别,说明 InfoNCE 很完美,如果差异很大,说明数据还有信息很多没挖掘。
二、CoCLR
本文用的是纯视觉数据,没用文本。谷歌有个CVRL 也是讲 CLR 思路用在视频领域。 TODO
文章的贡献有三:
-
证明加入类别标签的正样本,即有监督对比学习能够提升表现。
-
提出自监督协同训练网络,用一个网络为另一个网络提供正样本标签。
-
通过全面的实验和两个下游任务(分别是动作识别和视频抽取)评估了表征学习的能力
本文不是定义一种新的对比损失,而是提出一种新的抽样方法。两个网络同时在训练,互相帮助,bootstrap, 类似 BYOL。一个网络帮助另一个网络找正样本。论文作者的思路来自于视频/照片具有两种特征:RGB 颜色和主体的光流。下图,左右两张分别在室内和室外打高尔夫,颜色RGB完全不一样,但是动作几乎一样。作者正是想利用这两个特征,互相帮助找正样本。
- 如何从数据集中生成 flow 和 RGB 网络:
-
初始化:两个网络独立,用 InfoNCE,训练 300 epoch
-
交换:用一个网络给另一个网络采样,交替进行,比如用 Flow 网络找到样本的 Top-K 近邻,作为 RGB 网络训练时的正样本。
-
伪代码:介绍 L1 阶段如何更新,即用 optical flow 网络帮 RGB 网络找正样本,包括如何使用类似 MoCo 里的动量更新队列、如何通过(3)式计算 optical flow 网络中的 top K 最近邻。下面是有实现的伪代码,也采用了类似 MoCo 里 momentum-updated history queue,UCF101 queue size = 2048;K400 queue size = 16384
上面伪代码部分的公式 Eq2, Eq3 指代如下
如果到目前为止还是不太清楚 L1, L2 阶段是很正常的,下面作者在实验部分用图2介绍具体是怎么交替计算的。
三、实验
- 训练细节:
- 数据集:UCF101 training set (13k videos spanning 101 human actions) + Kinetics-400 (K400) training set (240k video clips),输入 32 frames
- 特征提取:S3D 结构 + 非线性映射层(后面在下游验证任务上删掉)
- 如何提取主体光流:无监督 TV-L1 算法
- batch size: 32, 4 GPUs, Adam with 10−3 lr and 10−5 weight decay
- 实验结果
表1:
- 测试集的结果都是基于 RGB 网络的(验证都是两者都有)
- cross-entropy 做不了 Linear probe,所以是 -
- CMC: RGB, flow 得到两个 view, 即数据增强的方式换成 RGB 和 Flow 网络, 本质也是 instance discrimination. CMC 是不同物体的正面背面都是同一个正样本。
- K - Top-k NN的取值
- 最后三行是消融实验,使用不同超参K、两个网络同时训练
图2:
- InfoNCE 阶段:两个网络用 InfoNCE 独立训练,初始化
- L1 阶段:Flow 网络为 RGB 网络找 K 个同类,计算损失函数,更新 RGB 网络
- L2 阶段:RGB 网络为 Flow 网络找 K 个同类,计算损失函数,更新 Flow 网络
- L1 + L2 就是一整个 cycle
- UCF101 训练了两个 cycle, 100 epoch/cycle*network, 一个 cycle 有 200 epoch
- K400 训练了一个 cycle,50 epoch/cycle*network, 100 个 epoch
- 与最佳模型比较
- DataSet (duration) - Pretrain 的数据集; Res. - Resolution; 测试数据集:UCF, HMDB;蓝色是仅使用 visual
- Frozen 就是 linear probing,前面预训练的层都固定住
- 2 Stream 是两个网络得到的特征相似度求平均再返回
- 最后一行是先 supervised pretrain, 再在下游 UCF 做 Finetune
- CVRL 是仅用 InfoNCE 的 3D ResNet50,表现很好,所以如果加上 CoCLR 效果可能会更好;分析原因一方面是 CVRL 有更深的结构和更多的参数量,另一方面是有更高的解析度,更多epochs。对比如下表;
参数 | CVRL | CoCLR |
---|---|---|
layers | 49 | 23 |
params | 33.1M | 7.9M |
resolution | 224 | 128 |
epochs | 800 | 400 |
- 下游任务的表现
表3:
这些模型(除了SpeedNet)都是 UCF 上预训练,UCF 和 HMDB上做 retrieval 验证。
四、结论
- 利用视频的辅助视角(optical flow) 可以弥补 RGB 网络使用 InfoNCE 对困难正样本的无力。
- 作者虽然没有通过实验证明,但提出声音或文本可以代替光流 optical flow 为视频片段提供辅助视角
这篇论文应该会是我下周第一次论文分享的内容啦~希望一切顺利!