简介

自监督学习是近几年(2020年)流行起来的一种机器学习方法,很多人认为自监督方法未来一段时间将取代现有的监督方法,成为深度学习中占据主导地位的方法。现在已经有不少采用自监督-对比学习的方法取得了领先的效果。目前(2020.10)来说这个领域貌似还比较新,没有找到很系统的讲解介绍资料。

首先介绍一下到底什么是 SSL,我们知道一般机器学习分为监督学习,非监督学习和强化学习。而 self-supervised learning 是无监督学习里面的一种。自监督学习的思想非常简单,就是输入的是一堆无监督的数据,但是通过数据本身的结构或者特性,人为构造标签(pretext)出来。有了标签之后,就可以类似监督学习一样进行训练。通过自己监督自己,比如把一段话里面的几个单词去掉,用他的上下文去预测缺失的单词,或者将图片的一些部分去掉,依赖其周围的信息去预测缺失的 patch。自监督还有一个主要是希望是能够学习到一种通用的特征表达用于多种下游任务,(预训练?)。

在表示学习方面,自我监督学习具有取代完全监督学习的巨大潜力。人类学习的本质告诉我们,大型注释数据集可能不是必需的,我们可以自发地从未标记的数据集中学习。更为现实的设置是使用少量带注释的数据进行自学习。这称为Few-shot Learning。

自监督学习的特点和优点

传统方法缺点
相对于自监督学习,当前的机器学习方法大多依赖于人类标注信息,这种对标注信息的过度依赖有如下危险:
1、数据的内部结构远比标注提供的信息要丰富,因此通常需要大量的训练样本,但得到的模型有时是较为脆弱的。(从另一个角度说深度学习需要大数据的原因之一是因为标签能给到的监督信息太少,所以需要大量样本来学习,如果有类似自监督的样的方法,能给出更多监督信息,那么是否就可以用更少的样本进行学习了。)
2、在高维分类问题上,我们不能直接依赖监督信息;同时,在增强学习等问题上,获取标签的成本非常高。
3、标签信息通常适用于解决特定的任务,而不是可以做为知识一样可以重新利用。
这么快又变成传统了!

自监督方法特点
因此,自监督学习成为一种非常有前途的方法,因为数据本身为学习算法提供了监督信息。
一个简单的例子

Epstein在2016年做了一个实验,受试者要求尽可能详细地画出美元图片。上图中左边为受试者按照自己的记忆画出来的一美元图片,右边为受试者携带着美元(不是一美元)然后照着画出来的一美元图片。实验表示,当有类似的美元图片做为参考时,人们画的要更好。

尽管无数次见过美元,但我们仍然不能记住它,并把它画出来。实际上,我们只是记住了美元的一些与其它对象有区分性的特征。因此,我们是不是可以构建一些不专注于像素细节的表示学习算法(representation learning algorithm),通过对高层特征编码来实现不同对象的区分,也即模型在特征空间上对不同的输入进行分辨,就像上面美元的例子。

自监督学习方法有如下的特点:

  1. 在 feature space 上构建距离度量;
  2. 通过特征不变性,可以得到多种预测结果,或者叫用于多种任务;
  3. 使用 Siamese Network;
  4. 不需要 pixel-level 重建。正因为这类方法不用在 pixel-level 上进行重建,所以优化变得更加容易。

当然这类方法也不是没有缺点,因为数据中并没有标签,所以主要的问题就是怎么取构造正样本和负样本。

用于多种任务,也就是说比如知道了美元的特征,不仅可以用于分辨美元增加,还可以用于识别美元面额,或者用文字描述一下美元的样子,或者风格迁移生成类似的图片等等任务,可以在同一个模型中就做多种任务。

通过自监督学习,我们可以做的事情可以远超过监督学习

与无监督学习的区别联系
无监督的方法不依赖于人类注释,并且通常集中在数据良好表示(例如平滑度,稀疏性和分解)的预设先验上。无监督方法的经典类型是聚类方法,例如高斯混合模型,它将数据集分解为多个高斯分布式子数据集。然而,非监督学习学习由于预设先验的一般性较差而不太值得信赖,在某些数据集(例如非高斯子数据集)上选择将数据拟合为高斯分布可能是完全错误的。

自我监督方法可以看作是一种具有监督形式的特殊形式的无监督学习方法,这里的监督是由自我监督任务而不是预设先验知识诱发的。与完全不受监督的设置相比,自监督学习使用数据集本身的信息来构造伪标签。

对比学习-具体实现方式

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

这篇文章总结比较好:https://zhuanlan.zhihu.com/p/141141365
对比方法(Contrastive methods)通过正面和负面的例子来学习表征。尽管不是全新的思路,对比方法通过无监督的对比预训练(Unsupervised contrastive pre-training)在计算机视觉任务中取得了巨大的成功。

比较知名的方法有:

在未标记的ImageNet数据上训练并使用线性分类器的无监督对比方法已经超过了监督的AlexNet(2019年Henaff提出的CPC方法)。
ImageNet上的对比式预训练成功地转移到了其它任务,并且胜过了监督的预训练任务(2019年何恺明提出的MoCo方法)。
和传统的 Generative model 不同,传统方法专注于像素空间的特征,会存在如下不足:

使用像素级loss可能导致此类方法过于关注基于像素的细节,而不是抽象的语义信息。
在于像素分析的方法难以有效的建立空间关联及对象的复杂结构。

对比模型是如何工作的?
对比学习核心就是要学习一个映射函数f(x),把样本 x 编码成其表示 f(x),对比学习的核心就是使得这个 f(x) 满足下面这个式子:

这里 x+ 指的是与x 相似的数据(正样本), x- 指的是与x不相似的数据(负样本)。score 函数是一个度量函数,评价两个特征间的相似性。

如果用向量内积来计算两个样本的相似度,则对比学习的损失函数可以表示成:

其中对应样本 [公式] 有1个样本和N-1个负样本。可以发现,这个形式类似于交叉熵损失函数,学习的目标就是让 [公式] 的特征和正样本的特征更相似,同时和N-1个负样本的特征更不相似。在对比学习的相关文献中把这一损失函数称作InfoNCE损失。也有一些其他的工作把这一损失函数称为multi-class n-pair loss或者ranking-based NCE。

知乎:
我将自我监督的表示学习方法分为4种类型:基于数据生成(恢复)的任务,基于数据变换的任务,基于多模态的任务,基于辅助信息的任务。

自监督学习 对比学习了解相关推荐

  1. 自监督学习-对比学习-MoCo Momentum Contrast 阅读笔记

    Momentum Contrast for Unsupervised Visual Representation Learning 原文地址:CVPR 2020 Open Access Reposit ...

  2. 对比学习(一)-双塔模型-simCLR

    对比学习链接 对比学习 引言 bert在对比学习中起到的作用: **对比学习的作用:** 生成式自监督学习: 判别式自监督学习 simCLR SimCLR正负例构建 SimCLR表示学习系统构建 Si ...

  3. NeurIPS 2020 :ReID任务大幅领先,港中文开源自步对比学习框架,充分挖掘无监督学习样本...

    作者丨葛艺潇 来源丨https://zhuanlan.zhihu.com/p/269112325 编辑丨极市平台 导语:本文介绍一篇作者发表于NeurIPS-2020的论文: <Self-pac ...

  4. 自监督学习和对比学习

    这篇主要探讨SimCLR,不需要用监督学习(supervision)的方式,采用自监督(self-supervised)的方式使得模型学到很多有用的patterns.众所周知,使用对比学习(修改样本, ...

  5. weka分类器怎么设置样本类别_自步对比学习: 充分挖掘无监督学习样本

    本文为香港中文大学MMLab实验室博士生葛艺潇投稿. 本文介绍一篇我们发表于NeurIPS-2020的论文<Self-paced Contrastive Learning with Hybrid ...

  6. NeurIPS 2020 | 自步对比学习:充分挖掘无监督学习样本

    ©作者|葛艺潇 学校|香港中文大学博士生 研究方向|图像检索.图像生成等 本文介绍一篇我们发表于 NeurIPS-2020 的论文<Self-paced Contrastive Learning ...

  7. weka分类器怎么设置样本类别_NeurIPS 2020 | 自步对比学习: 充分挖掘无监督学习样本...

    本文介绍一篇我们发表于NeurIPS-2020的论文<Self-paced Contrastive Learning with Hybrid Memory for Domain Adaptive ...

  8. 自步对比学习: 充分挖掘无监督学习样本

    本文为香港中文大学MMLab实验室博士生葛艺潇投稿. 本文介绍一篇我们发表于NeurIPS-2020的论文<Self-paced Contrastive Learning with Hybrid ...

  9. 视觉的目的是什么?从监督学习到对比学习,回顾CV发展史

    2021-02-07 17:43:55 作者 | 周纵苇@知乎(已授权) 摘要:视觉,对于人类或动物来说,似乎是一件稀松平常的事情,我们甚至都不需要去有意识地训练自己,就可以天赋一般地认识世界. 对于 ...

最新文章

  1. python对象编程例子-python面向对象编程:python类和实例讲解
  2. python导入txt文件并绘图-Python读取txt数据文件,并作图
  3. 接收到开始本地截图的命令:videoshot.exe 解决方法
  4. 认识Linux下的各种系统服务
  5. java控制台输出五行字符串_java五行代码导出Excel
  6. 数据库连接和乱码问题
  7. 版本控制工具--svn和git的使用(一) -----版本控制的好处以及分类
  8. 运筹优化算法工程师面试汇总
  9. 【LeetCode - 1258】近义词句子
  10. 小成开发日记----python爬虫利用selenium实现无限刷不背单词app的酷币
  11. Jira 和 国内替代品TAPD的对比
  12. 用Seam-gen起步(二)
  13. 1200:分解因数(dfs)
  14. 企业上云,如何给网站提速?CDN加速一定要知道
  15. 电大学位计算机考试题库,电大学位英语跟考试题库一模一样.doc
  16. 自动化之RPA工具之影刀
  17. php5.6 nts ts,php ts nts v6 v9的区别
  18. kali升级操作系统
  19. 更智能的洗碗机,省时省水又健康,云米互联网洗碗机Iron X1体验
  20. Nutanix超融合架构概述

热门文章

  1. 用c语言调用Easy X实现图像的输出,附带音乐的读取
  2. IDEA之Session的活化和钝化
  3. StreamSets简介和入门案例
  4. 震惊!!女士们注意了:国家发布的禁用化妆品
  5. 灯火阑珊的伤感短篇日志分享:我的伤,你永远不懂
  6. 工作常见问题记录(国盛)
  7. 计算兰伯特投影数据到其他空间参考的地理范围
  8. UOJ UER#5 A 万圣节的南瓜灯
  9. Python:实现sylvester西尔维斯特方程算法(附完整源码)
  10. 磁盘和储存管理 逻辑卷