转自:https://zhuanlan.zhihu.com/p/108906502
1. 什么是自监督学习?
自监督学习主要是利用辅助任务(pretext)从大规模的无监督数据中挖掘自身的监督信息,通过这种构造的监督信息对网络进行训练,从而可以学习到对下游任务有价值的表征。
2.如何评测自监督学习的效果?
评测自监督学习的能力,主要是通过 Pretrain-Fintune 的模式:首先从大量的无标签数据中通过 pretext 来训练网络,得到预训练的模型,然后对于新的下游任务,和监督学习一样,迁移学习到的参数后微调即可。所以自监督学习的能力主要由下游任务的性能来体现。
2. 自监督学习的主要方法
自监督学习的方法主要可以分为 3 类:基于上下文(Context based)、基于时序(Temporal Based)、基于对比(Contrastive Based)。
2.1 基于上下文(Context based)
基于数据自身的上下文信息可以构造很多任务。
- NLP领域,最重要的算法Word2vec其中的一种,可以基于上下文构造pretext;另外BERT的MASK LM,随机扣掉一些词,然后预测扣掉的词,让模型读懂句子;
- 图像领域,以拼图的方式构造pretext,比如将一张图分成9个部分,然后通过预测这几个部分的相对位置来产生损失;以抠图的方式构造pretext,随机将图片的一部分删掉,用剩余的部分预测扣掉的部分,类似BERT的MASK LM;预测图片的颜色,比如输入图像的灰度图,预测图片的色彩,只有模型读懂图片的语义信息才能知道各部分对应的颜色,比如天空是蓝色的,草地是绿色的;
- 数据增广Data Augmentation,以数据增广的方式寻找自监督上下文。ICLR 2018的工作是给定一张输入的图片,我们对其进行不同角度的旋转,模型的目的是预测该图片的旋转角度,这种朴素的想法却能带来巨大的增益;
自监督学习也可以与下游的具体任务集合一起训练,已成为一个新的趋势。
2.2 基于时序(Temporal Based)
在某些场景,不同样本间也有约束关系,比如基于时序约束。
- 视频领域,最能体现时序约束的就是视频,在视频中,相邻的帧特征是相似的,非相邻的帧的特征通常不相似,利用该思想可以构造pretext;另外,同一个物体的拍摄是可能存在多个视角(multi-view),对于多个视角中的同一帧,可以认为特征是相似的,不同帧认为是不相似的。
- NLP,BERT训练的其中一个任务Next Sentence Prediction 也可以看作是基于顺序的约束;
2.3 基于对比(Contrastive Based)
第三类自监督学习的方法是基于对比约束,它通过学习对两个事物的相似或不相似进行编码来构建表征,即通过构建正样本(positive)和负样本(negative),然后度量正负样本的距离来实现自监督学习。核心思想样本和正样本之间的相似度远远大于样本和负样本之间的相似度,类似triplet模式。对比的思路构建比较多样,是目前自监督学习的一个热点。比如上面提到的基于时序的方法就有涉及对比约束。
- ICLR 2019 的 DIM:具体思想是对于隐层的表达,可以通过构造全局特征(编码器最终的输出)和局部特征(编码器中间层的特征)的对比约束来设计pretext,模型需要分类全局特征和局部特征是否来自同一图像;
所以基于对比约束的自监督方法主要围绕如何选取正负样本, 比如利用多模态(多视角)的信息来构造样本,一个样本的多个模态为正样本,其他样本的模态为负样本。