计算机视觉研究新方向:自监督表示学习总结(建议收藏)

机器学习算法工程师

共 3887字,需浏览 8分钟

 ·

2020-07-11 04:28

作者&编辑:李中梁为什么需要自监督学习

随着深度模型的兴起,基于监督的图像特征提取方式已经成为主流。然而这种方法需要大量的有标签数据,标注成本过高,在小样本数据集上面临着过拟合等问题。如何减少算法对高质量标签数据集的需求?如何利用大量的无标签图像数据进行特征提取?如何让模型提取的特征具有更加泛化的表达能力?
自监督表示学习算法应运而生。公众号上一篇自监督学习在计算机视觉中的应用为大家介绍了自监督学习的基本概念和一些应用,本篇文章参考Lilian Weng在其博客(lilianweng.github.io)中总结的自监督表示学习在图像,视频和控制领域的进展,将摘选其中图像和视频部分的内容进行分享。内容较多,建议先收藏~

自监督学习在图像任务上的特征表示
  • Distortion(扭曲,变形)

    Exemplar-CNN(Dosovitskiy et al., 2015)《Discriminative Unsupervised Feature Learning with Exemplar Convolutional Neural Networks》用图像中的patch创建数据集:
    1.从包含大量梯度的位置选取“exemplary” patch
    2.每个补丁都通过应用各种随机转换(即、平移、旋转、缩放等)

    所有产生的失真补丁都被认为属于同一个代理类
    3.pretext任务是区分一组代理类(每一个patch就是一个代理类)。
    0da11b413fbed88241abac320ceb833f.webp

Rotation《Unsupervised Representation Learning by Predicting Image Rotations》提出了一种简单的图像旋转分类的代理任务。为了用不同的旋转来识别相同的图像,模型必须学会识别高层次的物体部分,如头、鼻子和眼睛,以及这些部分的相对位置,而不是局部模式。这个接口任务驱动模型以这种方式学习对象的语义概念。
d48f68c0897d7848ef116ece05713fb3.webp

  • Patches


    一幅图像中提取多个patch,并要求模型预测这些patch之间的关系
    relative position《Unsupervised Visual Representation Learning by Context Prediction》让模型预测patch的相对位置
    1.随机采样patch
    2.考虑到第一个patch被放置在一个3x3的网格的中间,第二个patch被采样于它周围的8个相邻的位置
    3.引入一些噪音
    4.该模型被训练来预测第二个patch是从8个相邻位置中的哪一个中选择出来的,这是一个超过8类的分类问题(就是说看第二个patch的相对于第一个patch 的位置是1,还是2,3….8)


    3de4dbb3b124d11cb50ae62f72a0feda.webp

在《Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles》是将9个patch打乱然后让模型将其放回,实际实现时让模型预测其属于每个位置的概率,当然可以用GCN来加速训练。
bbe0408eac2171b365f8d05a659bd2ba.webp

另一种想法是在论文《Representation Learning by Learning to Count》中提出的,将“feature”或“visual primitives”看作一个标量值属性,它可以在多个patch上求和,并在不同的patch之间进行比较。然后通过计数特征和简单的算法来定义patch之间的关系。
具体操作如下:
972a75ea3ac8a09909542c7849eed788.webp

769d5a2d2c8ddcea932ee23edf201c77.webp

简单来说,就是对原始图像进行上采样和分块操作(2*2分块,得到4块),希望上采样后计算出的数目和原图计算出的数目一致,希望地砖分块操作后计算出的数目是原图计算出的数目的4倍。

  • Colorization
    《Colorful Image Colorization》这篇论文为灰度图着色为彩色(在CIE LAB color space)思想也很简单。

  • Momentum Contrast
    《Momentum Contrast for Unsupervised Visual Representation Learning》提出一种新的无监督学习框架:动态字典查找。
    0763ae2ffe0d44db603e50c4ec1e243a.webp
    对quuery(x_q)通过encoder有一个对应的表达q,对于key(x_k)通过momentum encoder有一个对应的表达k,这些k构成一个list字典。假设字典中有一个k和q匹配。在论文中k是通过x的数据增强得来的。使用了InfoNEC contrastive loss 学习 1个positive和K个negative样本:
    f97dc834efb5495fc29dfa09e296df07.webp
    875449a0d55c373df9056ca607361e78.webp

训练伪代码:
f48fa3b90832ae8158fdf11a6d4cd54c.webp

同样《A Simple Framework for Contrastive Learning of Visual Representations》中也提出了一个简单的框架用于对比学习。它通过潜在空间的对比损失,最大限度地提高相同样本的不同增强视图之间的一致性,从而学习视觉输入的表示。
训练伪代码:
8831764d983d304a9955021301cbef1f.webp
《CURL: Contrastive Unsupervised Representations for Reinforcement Learning》借鉴了SimCLR的想法用于强化学习。
d62d70eff9274593a99864318801d8ae.webp

自监督学习在视频任务上的特征表示
  • Video-Based
    视频中包含连续的,语义相近的帧,且框架的顺序描述了一定的推理规则和物理逻辑;例如,物体的运动应该是平稳的,重力是向下的。
    一个常见的工作流程是,用无标签的视频对一个模型进行一个或多个pretext任务的训练,然后将该模型的一个中间特征层输入对动作分类、分割或目标跟踪等下游任务进行finetune。

  • Tracking
    物体的运动由一系列视频帧来跟踪。在近距离的画面中,同一个物体在屏幕上被捕捉的方式通常差别不大,通常是由物体或相机的微小运动触发的。因此,对同一物体学习的任何跨越近帧的视觉表征都应该在潜在特征空间中是接近的。在这个想法的启发下,Wang & Gupta, 201《Unsupervised Learning of Visual Representations using Videos》)提出了一种通过跟踪视频中移动的物体来实现视觉表征的无监督学习的方法。
    具体做法:在一个小的window中(30帧)追踪一个patchX,有个和X接近的patchX+,还有一个随机选取的patchX-。这个loss像triple loss
    6832ec10fecf627cc0a3d69ff7bd8055.webp

749923ca0b91aa02dcefdea72f942177.webp

patch的获取:
f8c44c8fecc7f595872fba3ab34dda43.webp

  • Frame Sequence(帧序列)
    视频帧是按时间顺序自然放置的。

    研究人员提出了几个自我监督的任务,他们期望良好的表现应该学习帧的正确顺序。《Shuffle and Learn: Unsupervised Learning using Temporal Order Verification》中提出的pretext任务为:判断一段视频序列的顺序是否正确,这样模型可以获得追踪物体和推理的能力。
    具体做法为:


    54abae40f0dd55c473bbe3a568b76bc5.webp

bc88e9d08dc77e727ad90669ed8fdd85.webp

类似的,《Self-Supervised Video Representation Learning With Odd-One-Out Networks》中也提出了一种基于视频序列的无监督学习方法“odd-one-out learning”。要从N+1个序列帧中挑选出某一个古怪的帧。
还有研究给模型播放正序或者倒序的视频,让其预测时间的方向 arrow of time(正或负)为了预测时间箭头,分类器应该同时捕获低级物理和高级语义。提出的T- cam(时间类激活映射)网络接受T组,每个T组包含若干个光流帧。每个组的conv层输出被连接起来并输入到二元逻辑回归中以预测时间箭头。这个pretext任务可以提高动作分类下游任务的性能。
37e37299abfd11df44f090a45cdb8309.webp

  • Video Colorization
    《Tracking Emerges by Colorizing Videos》提出视频着色可以作为一个自监督问题,在此基础上得到丰富的特征表达且对视频分割和无标签的区域追踪很有效果。
    和图片的照射着色的自监督问题不同,视频着色是将基于一张已知的帧对另外一张帧着色。由于帧相近,具有时间相干性,因此他们之间的像素距离也相近,模型被设计用来跟踪不同帧中相关的像素。
    5f0281f9ac1ff55267bff8bf29d06058.webp
    2a6119e129ad8cf7c6518edbe3854b79.webp

参考文献

- https://lilianweng.github.io/lil-log/2019/11/10/self-supervised-learning.html#video-based

与我交流
github: https://github.com/keloli

blog:https://www.jianshu.com/u/d055ee434e59




往期回顾之作者李中梁

【1】  【TPAMI重磅综述】 SIFT与CNN的碰撞:万字长文回顾图像检索任务十年探索历程(上篇)

【2】  【TPAMI重磅综述】 SIFT与CNN的碰撞:万字长文回顾图像检索任务十年探索历程(下篇)

【3】  超快速!10分钟入门Keras指南

【4】  老衲这里有七条炼丹经验传授与你

【5】  Dropout VS BN: 别在你的网络中使用Dropout

【6】  理解Batch Normalization(含实现代码)

【7】  Keras使用进阶(Ⅰ)

【8】  Python编程神器Jupyter Notebook使用的28个秘诀

【9】  6篇论文带你了解AI+新冠肺炎最新研究进展

【10】 是时候了解下无监督学习了!

【11】 自监督学习在计算机视觉中的应用

机器学习算法工程师
                                            一个用心的公众号
 
f340f028522b6b90a26e3d59a56e800b.webp
浏览 30
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报