点击下方卡片,关注“CVer”公众号
AI/CV重磅干货,第一时间送达
本文转载自:Smarter
先看一下阵容,何恺明+Ross Girshick!!!
目前该工作已收录于CVPR 2021
A Large-Scale Study on Unsupervised Spatiotemporal Representation Learning
论文:https://arxiv.org/abs/2104.14558
代码:https://github.com/facebookresearch/SlowFast
一句话总结
时空的Self-Supervised采样同一个视频的positive pair时间跨度越长效果越好,优化目标比momentum encoder影响要小,训练时间、backbone、数据增强和精选数据对于得到更好性能至关重要。
以下先说一下本文的设计,然后回顾一下4种Self-Supervised方法,最后看一下精彩的对比实验(做对比实验只服FAIR,实验详尽,有理有据)。
01
Persistent temporal feature learning
在一段时间跨度内,假设视频的视觉内容是时间连续的。FAIR的目标是希望同一个视频的不同clips判断为相似。于是FAIR提出了persistent temporal feature learning的方法来学习时空的无监督特征。
persistent temporal feature learning具体做法是从一个batch的无label视频中分别采集clips,然后送入encoder产生q,其中同一个视频中采集的clips认为是positive pair,尽可能的判断为相似,不同视频中采集的clips认为是negative pair,尽可能的判断为不相似。(上面图片的第二行就是同一个视频采样3个clip的例子)
其中encoder是时空ConvNet,默认为ResNet-50(3D ResNet-50),是SlowFast Networks的slow分支,去掉了temporal pooling的操作,然后接了一个MLP projection head。输入的clips是由t个连续的RGB frames堆叠形成的,维度为 ,其中T是每个视频划分的视频段数量,S是尺寸大小。给定B个视频,如果每个视频采集 个clips,那么总共clips数量为 个。
02
SimCLR/MoCo/BYOL/SwAV
下面简单回顾一下SimCLR、MoCo、BYOL和SwAV四种Self-Supervised方法。首先将positive定义为集合 ,negative定义为集合 。
那么InfoNCE loss可以表示为
其中q和k分别为query和key, 为温度系数, 。
SimCLR
SimCLR使用其他视频clips的embeddings作为negatives。如(a)图所示,右边分支同时送入positives和negtives。
MoCo
MoCo引入了mentum encoder,右边分支的encoder参数通过左边分支的encoder参数滑动更新。同时,MoCo将右边分支encoder得到的postives/negatives的embedding通过一个memory queue保存然后迭代更新queue。
BYOL
BYOL和MoCo相似,但是去除了memory queue,右边分支不传入negatives,左边分支增加了一个MLP predictor,并且右边分支不进行梯度更新。
SwAV
SwAV引入了prototypes,同时在右边分支增加一个Sinkhorn-Knopp (SK),将postives进行转换,和prototypes进行对比学习。
03
Experiments
Datasets
解释一下Kinetics-400、IG-Gurated、IG-Uncurated和IG-Uncurated-Short四个数据集的含义有什么不同。
Kinetics-400使用了约240k个训练视频,包括400个行动分类。IG-Cureated是修正后的Instagram视频数据集,和K400类别相似。IG-Uncurated从Instagram视频中随机选取。IG-Uncurated-Short只包含IG-Uncurated中的短视频。数据集的视频时间统计如上图所示。
下面的实验结果通过两种方式来进行评估。一种是先frozen encoder,然后用linear classifier来判断Top-1的acc。另一种是先通过finetuning视频数据集然后计算acc。
Persistent temporal learning
如table2所示,当cllips数量为1时,SimCLR和SwAV的精度大幅度下降。更多的clips,可以改善精度。并且有无negatives不太影响精度,说明negatives不是的关键。但是有momentum encoder(MoCo、BYOL)和没有momentum encoder(SimCLR、SwAV)大概有4%的差距。
table3说明,增加训练epoch,也可以持续改善精度。
Timespan between positives
table4说明不同视频数据集下,视频时间越长效果越好,即长视频获得了更好的全局采样。其中IG-Uncurated-1M视频时长超过36s时会出现轻微衰退的现象。
Backbone architectures
table5说明更深的网络可以得到更好的精度,另外, 从(8x8->16x4)精度也有提升。R2+1D和S3D-G在K400上精度下降,在UCF101上精度上升,可能是因为UCF101是小数据集,容易产生过拟合,R2+1D和S3D-G模型更小过拟合程度更轻。
Uncurated data and video duration
1.在IG-Curated数据集上预训练后MoCo比BYOL效果更好。
2.MoCo和SwAV在不同数据集上预训练后,随着epoch增加,效果会更好。
3.BYOL和SimCLR在IG-Cureated比IG-Uncurated上预训练后好约1%。
4.BYOL和SimCLR在IG-Uncureated-Short上预训练后效果更好。可能长视频对于BYOL和SimCLR来说没有什么收益。
5.BYOL在更大的epoch下,会出现衰退现象。可能是因为没有针对性调整参数。
Data augmentations
上面两个table表明合适的数据增强可以获得更好的精度。
Alternative downstream tasks
从上面两个table可以看出,下游任务中,MoCo和BYOL的表现更为稳定。最后使用BYOL在几个视频数据集上超过之前的方法。也证实了momentum encoder对于时空无监督学习的重要性。
04
总结
这详尽的实验,orz。感觉每次看恺明的文章,打眼一看就这,看完就orz,真牛逼。虽然只是做实验,但是确实提供了一些有指导性的结论,方便后面的人follow。
最后该文章留了两个值得思考的大坑,一个是positive pair时间间隔,另一个是momentum encoder。
论文PDF和代码下载
后台回复:0501,即可下载上述论文PDF
后台回复:CVPR2021,即可下载CVPR 2021论文和代码开源的论文合集
后台回复:Transformer综述,即可下载最新的两篇Transformer综述PDF
重磅!Transformer交流群成立
扫码添加CVer助手,可申请加入CVer-Transformer 微信交流群,方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。
一定要备注:研究方向+地点+学校/公司+昵称(如Transformer+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
▲长按加小助手微信,进交流群
▲点击上方卡片,关注CVer公众号
整理不易,请给CVer点赞和在看