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

自监督学习(SSL)是指:

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

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

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

三种常见的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,后面的所有工作也基本是围绕这个损失进行的。

自监督学习(SSL)简介相关推荐

  1. ML之SSL:Semi-Supervised Learning半监督学习的简介、应用、经典案例之详细攻略

    ML之SSL:Semi-Supervised Learning半监督学习的简介.应用.经典案例之详细攻略 目录 Semi-Supervised Learning半监督学习的简介 1.直推学习Trans ...

  2. ssl简介-加密算法

    要理解ssl先要知道一些加密算法的常识.     加密算法很容易理解啦,就是把明文变成人家看不懂的东西,然后送给自己想要的送到的地方,接收方用配套的解密算法又把密文解开成明文,这样就不怕在路世上如果密 ...

  3. SSL简介(定义、功能、原理、优点、缺点)

    定位 它是Netscape公司提出的基于WEB应用的安全套接层协议,它指定了一种在应用程序协议和TCPflP协议间提供数据安全性分层的机制,但常用于安全WEB应用的HTTP协议. 功能 SSL为TCP ...

  4. ML之SL:监督学习(Supervised Learning)的简介、应用、经典案例之详细攻略

    ML之SL:监督学习(Supervised Learning)的简介.应用.经典案例之详细攻略 目录 监督学习(Supervised Learning)的简介 1.监督学习问题的两大类-分类问题和回归 ...

  5. 半监督学习(Semi-Supervised Learning, SSL)-简述及论文整理

    本文参考An Overview of Deep Semi-Supervised Learning,An overview of proxy-label approaches for semi-supe ...

  6. Math/ML:序列监督学习-时间序列数据集/时间序列预测任务的简介、常用算法及其工具、案例应用之详细攻略

    Math/ML:序列监督学习-时间序列数据集/时间序列预测任务的简介.常用算法及其工具.案例应用之详细攻略 目录 序列学习/序列监督学习-时间序列数据集/时间序列预测任务的简介 1.序列学习/序列监督 ...

  7. SSL与DTLS简介

    目录 SSL简介 DTLS-基于UDP的TLS 记录层 传输层映射 早期我们在访问web时使用HTTP协议,该协议在传输数据时使用明文传输,会带来了以下风险: 信息窃听风险,第三方可以获取通信内容: ...

  8. ML之UL:无监督学习Unsupervised Learning的概念、应用、经典案例之详细攻略

    ML之UL:无监督学习Unsupervised Learning的概念.应用.经典案例之详细攻略 目录 无监督学习Unsupervised Learning的概念 无监督学习Unsupervised ...

  9. ICLR 2021 | 基于自监督学习的小样本分类,代码已开源

    作者 | 张曼黎 编辑 | 陈大鑫 深度神经网络往往要求为每个新任务收集大量标记训练数据,实用性也因此受到限制.给定来自一组源任务的数据,有两种迁移学习方法可以克服这种限制:小样本学习 (FSL) 和 ...

  10. java ssl https 连接详解 生成证书

    我们在关于Java EE安全的系列文章中,有一篇也详细介绍了如何在Java EE应用中创建SSL连接和证书.正如前面文章提到的,SSL(Secure Sockets Layer,安全套接层)/TLS( ...

最新文章

  1. DIV同时使用两个class
  2. 一个按键控制数码管的开和关_三菱PLC数码管显示及按键控制实验
  3. Java的未来项目:巴拿马,织布机,琥珀和瓦尔哈拉
  4. WebSnapshotsHelper(HTML转换为图片)
  5. 第一弹!安利10个让你爽到爆的IDEA必备插件!
  6. 【Python】Numpy中对向量、矩阵的使用
  7. java条件运算查询学生成绩_java条件运算符的应用实例之成绩分级
  8. 九度OJ 题目1534:数组中第K小的数字(二分解)
  9. WebSocket协议:5分钟从入门到精通
  10. SQL Server2005完全版与精简版的一个差别(抄录)
  11. stl中auto_ptr,unique_ptr,shared_ptr,weak_ptr四种智能指针使用总结
  12. 苹果手用计算机解锁手机密码,苹果手机忘记密码怎样打开 苹果手机解锁常用方法分享...
  13. 联想微型计算机怎么连接电源,终于认识联想电脑主板与机箱电源安装方法
  14. JAVA学习48_Eclipse错误: 找不到或无法加载主类或项目无法编译10种解决大法!
  15. AD9854 MSP430 代码总结
  16. C语言笔记本电脑销售系统课设
  17. php qq授权_PHP模拟QQ网页版授权登陆
  18. 网站常用的favicon.ico文件
  19. 碳纤维复合材料加固钢筋混凝土的极化作用
  20. 枚举Word表格AutoFormat样式

热门文章

  1. AMOS结构方程模型路径分析不显著
  2. HTML、CSS糖果颜色按钮动画
  3. C#之CAD二次开发(19) 组合条件的选择集过滤
  4. Google DeepMind在全球使用AI的10种方式
  5. 手机纳米镀膜技术教程_纳米技术将在医疗保健的未来中发挥巨大作用
  6. JavaScript学习笔记(一)-Learning Advanced JavaScript
  7. ArcGis:BS相关部署:.swz添加
  8. 大家一起来聊一聊“信息爆炸”的这个时代吧
  9. 翻译《虚幻引擎4艺术大师 - 蓝图 III 》 中文版
  10. intel 插桩工具 pin 介绍