转载:https://blog.csdn.net/weixin_40642114/article/details/122899868
自监督学习的定义
- 自监督学习属于无监督学习,模型直接从无标签数据中自行学习一个特征提取器,无需标注数据;
- 自监督学习与传统的无监督学习的不同点是:它利用无标签数据本身,构造一个辅助的任务,针对这个辅助任务,可以从数据本身中得到标签。然后有监督的训练网络。
- 自监督学习的目的就是利用无标签数据训练出来一个feature提取器(一个CNN网络)从而能够对下游任务的训练有所帮助。
总的来说就是:
自监督学习主要是利用辅助任务(pretext)从大规模的无标签数据中挖掘自身的监督信息,通过这种构造的监督信息对网络进行训练,从而可以学习到对下游任务有价值的表征。
自监督学习的核心,在于如何自动为数据产生标签。例如输入一张图片,把图片随机旋转一个角度,然后把旋转后的图片作为输入,随机旋转的角度作为标签。再例如,把输入的图片均匀分割成3*3的格子,每个格子里面的内容作为一个patch,随机打乱patch的排列顺序,然后用打乱顺序的patch作为输入,正确的排列顺序作为label。类似这种自动产生的标注,完全无需人工参与。(设计带标签的辅助任务)
自监督学习如何评价性能?自监督学习的能力,主要是通过 Pretrain-Fintune 的模式。首先从大量的无标签数据中通过 pretext 来训练网络,得到预训练的模型(这就是一种特征表示),然后对于新的下游任务(分类、分割、物体检测…),进行参数微调即可。所以自监督学习的能力主要由下游任务的性能来体现。
目前的自监督学习领域可大致分为两个分支。
- 第一个是用于解决特定任务的自监督学习,例如上次讨论的场景去遮挡,以及自监督的深度估计、光流估计、图像关联点匹配等。
- 另一个分支则用于表征学习。有监督的表征学习,一个典型的例子是ImageNet分类。而无监督的表征学习中,最主要的方法则是自监督学习。典型的方法包括:解决Jigsaw Puzzles、运动传播、旋转预测,以及最近很火的MoCo等等。当然还有其他分类方法,比如根据数据也可以分为video / image / language的自监督学习。本文主要讨论image上的自监督学习。
自监督学习中的辅助任务
1、有哪些辅助任务
- 图像破坏恢复(颜色去掉以后恢复;把输入的图片均匀分割成3*3的格子,每个格子里面的内容作为一个patch,随机打乱patch的排列顺序,然后用打乱顺序的patch作为输入,正确的排列顺序作为label;图像去掉一块,再恢复;)
- 无需破坏原图的自监督任务:旋转角度预测;在图像空间对图像做各种变换,让特征一致(对比学习);不同小区域学到的加起来应该等于总体;
- 运动预测;运动前景预测;稀疏运动到密集运动;利用运动信息等多模态信息来学习图像特征
2、为什么自监督有用呢?
- 利用了自然界存在的先验信息。
物体的类别和颜色之间存在关联;物体类别和形状纹理之间的关联;物体默认朝向和类别之间的关联;运动学属性; - 连贯性
图像具有空间连贯性;视频具有时间连贯性;
在这里插入图片描述 - 数据内部结构信息
(Instance Discrimination或者叫 对比学习 contrastive learning 比较学习)
目前有很多相关的研究: NIPD CPC MOCO SIMLR
给定两张不一样的图,分别执行INtra-image Transform:crop、颜色变化、灰色等;优化目标是让同一张图的各种变换在特征空间中聚在一起,不同图尽量分开;
最终优化发现,同一类别的图片(例如马)居然聚合在一起了;但是我们并没有给它类别标签;
也就是说,虽然我们在解决instance discrimination的过程中并没有用的物体的类别标签,但是在优化后的特征空间中,同类的物体还是相对能够靠拢。这就证明了,数据之间是具有结构性和关联性的。
3、proxy任务的设计中应该注意的问题
- 避免网络学习一些捷径信息,而不是我们想要的结构语义信息;CNN是喜欢找捷径的,如顺序打乱patch恢复,如果直接对原图直接切patch,
1、相邻patch之间是有连续性的,而不用去学习语义信息;因此要让patch之间要有差距;
2、图片可能有紫边,通常放在左上和右下,网络可能通过这个去让patch排位置;3、畸变暗角等都是一样的原理。这些通常通过让pacth靠近图像中心来解决。
- 所有利用先验prior的自监督,都会有ambiguity的问题;如物体可能有很多颜色等
- 问题的难度,太难的是学不出来的
转自有道云笔记:https://note.youdao.com/ynoteshare/index.html?id=56870b06d62007e81117cd1f7c38ade1&type=note&_time=1644658779879