参考文章:https://blog.csdn.net/sdu_hao/article/details/104515917
什么是自监督学习
自监督学习主要是利用辅助任务(pretext)从大规模的无监督数据中挖掘自身的监督信息,通过这种构造的监督信息对网络进行训练,从而可以学习到对下游任务有价值的表征。(也就是说自监督学习的监督信息不是人工标注的,而是算法在大规模无监督数据中自动构造监督信息,来进行监督学习或训练
自监督和监督的区别
对于监督学习,我们希望使用更少的标注样本就能够训练一个泛化能力很好的模型,因为数据很容易获取,但是标注成本却是非常昂贵的。监督学习利用大量的标注数据来训练模型,模型的预测和数据的真实标签产生损失后进行反向传播(计算梯度、更新参数),通过不断的学习,最终可以获得识别新样本的能力
无监督学习不依赖任何标签值,通过对数据内在特征的挖掘,找到样本间的关系
自监督学习最主要的目的就是学习到更丰富的语义表征。
supervised learning 的特点如下:
- 对于每一张图片,机器预测一个 category 或者是 bounding box
- 训练数据都是人工标注的
- 每个样本只能提供非常少的信息(比如 1024 个 categories 只有 10 bits 的信息)
self-supervised learning 的特点如下:
- 对于一张图片,机器可以预测任何的部分(自动构建监督信号),对于视频,可以预测未来的帧
- 不需要人工标注
- 每个样本可以提供很多的信息
评测自监督学习的能力
主要是通过 Pretrain-Fintune 的模式。首先从大量的无标签数据中通过 pretext 来训练网络(自动在数据中构造监督信息),得到预训练的模型,然后对于新的下游任务,和监督学习一样,迁移学习到的参数后微调即可。所以自监督学习的能力主要由下游任务的性能来体现。
自监督学习的主要方法
自监督学习的方法主要可以分为 3 类:1. 基于上下文(Context based) 2. 基于时序(Temporal Based)3. 基于对比(Contrastive Based)
主要介绍基于对比(Contrastive Based)——
通过学习对两个事物的相似或不相似进行编码来构建表征。
:首先构建正样本(positive)和负样本(negative),然后度量正负样本的距离来实现自监督学习。