首先了解一下自监督学习与监督学习、非监督学习的关系:

自监督学习需要训练集与测试集么 什么是自监督_sed

 

自监督学习(SSL)是指:

从数据本身产生某种形式的标签并训练神经网络,来解决某些特定任务或学习通用的图像、视频、语言的特征表达。

自监督学习属于无监督学习,其典型的pipeline是给出unlabeled data并设计一个CNN architecture,需要设计一个自监督的proxy task,从图像本身中找出标签,再解决这个task。

在这个过程中CNN可以学到很多东西,并可以transfer到一个目标的任务上,其中最重要的是如何设计proxy task。

自监督学习需要训练集与测试集么 什么是自监督_自监督学习需要训练集与测试集么_02

三种常见的proxy task:

1.现有的proxy task中Image Colorization(图片上色)、Jigsaw Puzzles(乱序拼图)、Image In-painting(抠图补充)这一类的特点就是把图像破坏掉再恢复,其缺陷是可能存在domain差异问题;

2.Rotation Prediction(预测角度)、Instance Discrimination、Counting这一类不需要破坏图像;

3.第三类是利用Motion来学习新的东西,如Motion Prediction(运动预测)、Moving foreground Segmentation、Motion propagation 等。

SSL是如何学习到新的信息:

Image Colorization 利用颜色的prior,利用物体和颜色分布的关联;

In-painting利用了物体类别和其形状纹理的关联;

Rotation Prediction则利用了物体默认朝向和物体类别的关联。

利用Coherence(连贯性),图像具有空间连贯性、视频具有时间、空间连贯性。

利用Structure,例如Contrastive Learning(对比学习)。

 

方法可以分为 3 类:

1. 基于上下文(Context based)

2. 基于时序(Temporal Based)

3. 基于对比(Contrastive Based)

比较特殊的任务有两种:一种是自监督学习和具体任务紧密结合的方法(Task Related Self-Supervised Learning)(Boosting Few-Shot Visual Learning with Self-Supervision_ICCV2019:https://arxiv.org/pdf/1906.05186.pdf),另一种是自监督和半监督学习进行结合(SL: Self-Supervised Semi-Supervised Learning_ICCV2019:https://arxiv.org/pdf/1905.03670)

1.基于上下文(Context Based)

基于数据本身的上下文信息,我们其实可以构造很多任务,比如在 NLP 领域中最重要的算法 Word2vec 。Word2vec 主要是利用语句的顺序,例如 CBOW 通过前后的词来预测中间的词,而 Skip-Gram 通过中间的词来预测前后的词。

而在图像中,乱序拼图(将图像分割,预测每一部分的相对位置或者预测出这是哪一种打乱方式)、抠图补充(上述例子中提的图像着色、图像旋转等任务都是典型的作为pretext的例子。

 

2.基于时序(Temporal Based)

之前介绍的方法大多是基于样本自身的信息,比如旋转、色彩、裁剪等。而样本间其实也是具有很多约束关系的,如利用时序约束来进行自监督学习的方法:视频(video)。

第一种思想是基于帧的相似性 Time-Contrastive Networks: Self-Supervised Learning from Video,对于视频中的每一帧,其实存在着特征相似的概念,简单来说我们可以认为视频中的相邻帧特征是相似的,而相隔较远的视频帧是不相似的,通过构建这种相似(position)和不相似(negative)的样本来进行自监督约束。

另外,对于同一个物体的拍摄是可能存在多个视角(multi-view),对于多个视角中的同一帧,可以认为特征是相似的,对于不同帧可以认为是不相似的。

除了基于特征相似性外,视频的先后顺序也是一种自监督信息。比如ECCV 2016, Misra, I. Shuffle and Learn:unsupervised learning using temporal order verification等人提出基于顺序约束的方法,可以从视频中采样出正确的视频序列和不正确的视频序列,构造成正负样本对然后进行训练。简而言之,就是设计一个模型来判断当前的视频序列是否是正确的顺序。

 

3.基于对比(Contrastive Based)

相关资料:https://ankeshanand.com/blog/2020/01/26/contrative-self-supervised-learning.html

对比约束,它通过学习对两个事物的相似或不相似进行编码来构建表征,这类方法的性能目前来说是非常强的,主要思想是通过构建正样本(positive)和负样本(negative),然后度量正负样本的距离来实现自监督学习。

样本和正样本之间的距离远远大于样本和负样本之间的距离,可以使用点积的方式构造距离函数,然后构造一个 softmax 分类器,以正确分类正样本和负样本。这应该鼓励相似性度量函数(点积)将较大的值分配给正例,将较小的值分配给负例:

通常这个损失也被称为 InfoNCE,后面的所有工作也基本是围绕这个损失进行的。