一般机器学习分为监督学习,无监督学习、半监督学习、强化学习。而 self-supervised learning 是无监督学习里面的一种(自监督学习,可以自动构造监督信号进行学习,不需要人工标注,可以认为是无监督学习,主要是希望能够学习到一种通用的特征表达用于下游任务。其主要的方式就是通过自己监督自己,比如把一段话里面的几个单词去掉,用他的上下文去预测缺失的单词,或者将图片的一些部分去掉,依赖其周围的信息去预测缺失的 patch。
自监督学习主要是利用辅助任务(pretext)从大规模的无监督数据中挖掘自身的监督信息,通过这种构造的监督信息对网络进行训练,从而可以学习到对下游任务有价值的表征。(也就是说自监督学习的监督信息不是人工标注的,而是算法在大规模无监督数据中自动构造监督信息,来进行监督学习或训练。因此,大多数时候,我们称之为无监督预训练方法或无监督学习方法,严格上讲,他应该叫自监督学习)
对于自监督学习来说,存在三个挑战:
- 对于大量的无标签数据,如何进行表征/表示学习
- 从数据的本身出发,如何设计有效的辅助任务 pretext
- 对于自监督学习到的表征,如何来评测它的有效性
对于第三点,评测自监督学习的能力,主要是通过 Pretrain-Fintune 的模式
监督学习中的 Pretrain - Finetune 流程:我们首先从大量的有标签数据上进行训练,得到预训练的模型,然后对于新的下游任务(Downstream task),我们将学习到的参数(比如输出