什么是 Self-Supervised Learning

首先介绍一下到底什么是 SSL,我们知道一般机器学习分为监督学习非监督学习强化学习。 而 self-supervised learning 是无监督学习里面的一种,主要是希望能够学习到一种通用的特征表达用于下游任务。 其主要的方式就是通过自己监督自己,比如把一段话里面的几个单词去掉,用他的上下文去预测缺失的单词,或者将图片的一些部分去掉,依赖其周围的信息去预测缺失的 patch。

根据我看的文章,现在 self-supervised learning 主要分为两大类:1. Generative Methods;2. Contrastive Methods。 下面我们分别简要介绍一下这这两种方法。

1.Generative Methods

首先我们介绍一下 generative methods。 这类方法主要关注 pixel space 的重建误差,大多以 pixel label 的 loss 为主。 主要是以 AutoEncoder 为代表,以及后面的变形,比如 VAE 等等。 对编码器的基本要求就是尽可能保留原始数据的重要信息,所以如果能通过 decoder 解码回原始图片,则说明 latent code 重建的足够好了

这种直接在 pixel level 上计算 loss 是一种很直观的做法,除了这种直接的做法外,还有生成对抗网络的方法,通过判别网络来算 loss。

对于 generative methods,有一些问题,比如:

  1. 基于 pixel 进行重建计算开销非常大;
  2. 要求模型逐像素重建过于苛刻,而用 GAN 的方式构建一个判别器又会让任务复杂和难以优化。

我看到一个很好的例子来形容这种 generative methods。 对于一张人民币,我们能够很轻易地分辨其真假,说明我们对其已经提取了一个很好的特征表达,这个特征表达足够去刻画人民币的信息, 但是如果你要我画一张一模一样的人民币的图片,我肯定没法画出来。 通过这个例子可以明显看出,要提取一个好的特征表达的充分条件是能够重建,但是并不是必要条件,所以有了下面这一类方法。

2.Contrasive self-supervised learning

除了上面这类方法外,还有一类方法是基于 contrastive 的方法。 这类方法并不要求模型能够重建原始输入,而是希望模型能够在特征空间上对不同的输入进行分辨,就像上面美元的例子。

这类方法有如下的特点:
1. 在 feature space 上构建距离度量;
2. 通过特征不变性,可以得到多种预测结果;
3. 使用 Siamese Network;
4. 不需要 pixel-level 重建。

正因为这类方法不用在 pixel-level 上进行重建,所以优化变得更加容易。当然这类方法也不是没有缺点,因为数据中并没有标签,所以主要的问题就是怎么取构造正样本和负样本。

目前基于 contrastive 的方法已经取得了很好的进展,在分类任上已经接近监督学习的效果,同时在一些检测、分割的下游任务上甚至超越了监督学习作为 pre-train的方法。
下面是这两类方法的总结图片:

为什么需要 self-supervised learning

上面我们讲了什么是 self-supervised learning,那么为什么我们需要自监督学习呢,以及它能够给我们带来哪些帮助?

在目前深度学习发展的情况下,对于监督学习,我们希望使用更少的标注样本就能够训练一个泛化能力很好的模型,因为数据很容易获取,但是标注成本却是非常昂贵的。 而在强化学习中,需要大量的经验对 agent 进行训练,如果能搞减少 agent 的尝试次数,也能够加速训练。 除此之外,如果拿到一个好的特征表达,那么也有利于做下游任务的 fintuen和 multi-task 的训练。

最后我们总结一下监督学习和自监督学习的特点,其中 supervised learning 的特点如下:

  1. 对于每一张图片,机器预测一个 category 或者是 bounding box
  2. 训练数据都是人所标注的
  3. 每个样本只能提供非常少的信息(比如 1024 个 categories 只有 10 bits 的信息)

于此对比的是,self-supervised learning 的特点如下:

  1. 对于一张图片,机器可以预测任何的部分
  2. 对于视频,可以预测未来的帧
  3. 每个样本可以提供很多的信息

所以通过自监督学习,我们可以做的事情可以远超过监督学习,也难怪 Yann 未来看好 self-supervised learning。 目前出现的性能很好的文章主要是基于 contrastive 的方法,所以下面我们介绍几篇基于 contrastive 方法的文章。

Self-Supervised Learning 入门介绍相关推荐

  1. 【机器学习基础】Self-Supervised Learning入门介绍

    引子 最近 self-supervised learning 变得非常火,首先是 kaiming 的 MoCo 引发一波热议,然后最近 Yann 在 AAAI 上讲 self-supervised l ...

  2. 关于弱监督学习的详细介绍——A Brief Introduction to Weakly Supervised Learning

    目录 介绍 主动学习 半监督学习 多实例学习 带噪学习 Snorkel 框架介绍 参考 介绍 在机器学习领域,学习任务可大致划分为两类,一种是监督学习,另一种是非监督学习.通常,两者都需要从包含大量训 ...

  3. A brief introduction to weakly supervised learning(简要介绍弱监督学习)

    文章转载自http://www.cnblogs.com/ariel-dreamland/p/8566348.html A brief introduction to weakly supervised ...

  4. (XGBoost)提升树入门介绍(Inrtoduction to Boosted Trees)

    提升树入门介绍(Inrtoduction to Boosted Trees) Author : Jasper Yang School : Bupt 这是一篇翻译文,翻译的内容是 XGBoost 官网的 ...

  5. 独家 | 集成学习入门介绍

    作者:Jason Brownlee 翻译:wwl 校对:王琦 本文约3300字,建议阅读8分钟. 本文介绍了我们在生活中的许多决定包括了其他人的意见,由于群体的智慧,有的时候群体的决策优于个体.在机器 ...

  6. 强化学习(Reinforcement Learning)入门学习--01

    强化学习(Reinforcement Learning)入门学习–01 定义 Reinforcement learning (RL) is an area of machine learning in ...

  7. 机器学习 --基础入门介绍 他来啦!!!

    行业热词解释 机器学习基本术语 假如我们有一组天气数据,是来自全世界不同国家和地区的每日天气,内容包括最高温度.最低温度.平均湿度.风速之类的相关数据,例如数据的一部分是这样的: 城市 最高温度 最低 ...

  8. maching learning入门(一)

    ml入门(一)powered by @李宏毅 第一课(机器学习总览) ml基本步骤 1 找出一个function set 2 让maching拥有衡量一个function好坏的能力  loss fun ...

  9. 【论文阅读】Weakly Supervised Learning of Instance Segmentation with Inter-pixel Relations

    一篇经典的弱监督分割论文,发表在CVPR2019上面 论文标题: Weakly Supervised Learning of Instance Segmentation with Inter-pixe ...

最新文章

  1. python 模拟键盘_python+selenium模拟键盘输入
  2. vb计算机水平考试笔试,2007年4月全国计算机等级考试二级VB笔试试卷及参考答案...
  3. 6条 Tips 为你照亮 GitHub 寻宝之路
  4. Linux命令行上传文件到百度网盘
  5. 来前端君朋友圈,一起聊前端面试技巧
  6. UE4 编译虚幻引擎
  7. SparkStreaming之updateStateByKey
  8. SQL读写CSV文件
  9. 很多人花一大笔钱做APP、小程序
  10. REX-Ray 了解
  11. Pandorabox等类OpenWrt的路由器 实现后端设备接入IPV6(中继代理+NAT)
  12. Bootstrap第一坑,.net MVC项目中bootstrap引用Roboto字体,fonts.gstatic.com字体下载过慢导致页面巨卡问题
  13. python config方法_Python config.Configuration方法代码示例
  14. 屁孩君儿子讲解 2022 【例4.7】最小n值
  15. 测试之smart原则
  16. ios内存管理(整理篇)
  17. apache+tomcat 集群学习 点滴1
  18. 一文教你如何使用miniconda
  19. Intel (Altera) LVDS
  20. 十大经典排序算法及比较与分析 ( 动画演示 ) ( 可视化工具 )

热门文章

  1. JavaScript 解析 JSON 数据
  2. 数据服务基础能力之元数据管理
  3. TCP/IP入门(3) --传输层
  4. ubuntu修改主机名
  5. 企业级账号 版本更新总结
  6. Linux服务器性能评估(转)
  7. 六种方式实现hibernate查询
  8. [转载] 百科全说——漆浩:怎样健康饮茶远离误区(11-03-09)
  9. java:拷贝文件(夹)
  10. linux下lvm挂载设备找不到,linux – 如何在“找不到设备:设备未清除”错误消息后创建LVM快照...