作者 | 对白

整理 | 对白的算法屋

编者寄语:

一文搞懂AI未来最火的技术:自监督学习。

大家好,我是对白。

如果人工智能比作一块蛋糕,那么蛋糕的大部分是自监督学习,蛋糕上的糖衣是监督学习,蛋糕上的樱桃是强化学习。

Yann Lecun在他的演讲中引入了“蛋糕类比”来说明自监督学习的重要性。虽然这个类比是有争论的,但我们也已经看到了自监督学习的影响,在自然语言处理领域最新发展(Word2Vec,Glove, ELMO, BERT)中,已经接受了自监督,并取得了最佳的成果。

“如果人工智能是一块蛋糕,那么蛋糕的大部分是自监督学习,蛋糕上的糖衣是监督学习,蛋糕上的樱桃是强化学习(RL)。”

出于对自监督学习在CV、NLP和推荐领域应用的好奇,我通过最近工作中的学习心得,并查阅了大量的论文,希望能以最通俗易懂的方式给大家讲解清楚,自监督学习这项技术的魅力

这篇文章是我对自监督学习的直观总结。

一、概览

1.1 基于上下文(Context based)

基于数据自身的上下文信息可以构造很多任务。以拼图的方式构造pretext,比如将一张图分成9个部分,通过预测这几个部分的相对位置来产生损失;以抠图的方式构造pretext,随机将图片的一部分删掉,用剩余的部分预测扣掉的部分;预测图片的颜色,比如输入图像的灰度图,预测图片的色彩。

1.2 基于时序(Temporal based)

在视频等场景,不同样本间也有基于时序约束。

1.3 基于对比(Contrastive based)

PS:我的最爱

通过学习对两个事物的相似或不相似进行编码来构建表征,即通过构建正负样本,然后度量正负样本的距离来实现自监督学习。核心思想样本和正样本之间的相似度远远大于样本和负样本之间的相似度,类似Triplet模式

二、主要方法

2.1 基于上下文(Context based)

论文一:《Rethinking Data Augmentation: Self-Supervision and Self-Distillation》

Data augmentation and self-supervision

Data Augmentation相关的方法会对通过对原始图片进行一些变换(颜色、旋转、裁切等)来扩充原始训练集合,提高模型泛化能力;

Multi-task learning将正常分类任务和self-supervised learning的任务(比如旋转预测)放到一起进行学习。

作者指出通过data augmentation或者multi-task learning等方法的学习强制特征具有一定的不变性,会使得学习更加困难,有可能带来性能降低。

因此,作者提出将分类任务的类别和self-supervised learning的类别组合成更多类别(例如 (Cat, 0),(Cat,90)等),用一个损失函数进行学习。

Self-distillation from aggregation

在学习的过程中限制不同旋转角度的平均特征表示和原始图片的特征表示尽可能接近,这里使用KL散度作为相似性度量。

第一项和第二项分别对应图a和图b,第三项是正常的分类交叉熵损失,作为一个辅助loss。

论文二:《S4L: Self-Supervised Semi-Supervised Learning》

自监督和半监督学习(大量数据没有标签,少量数据有标签)也可以进行结合,对于无标记的数据进行自监督学习(旋转预测),和对于有标记数据,在进行自监督学习的同时利用联合训练的想法进行有监督学习。通过对 imagenet 的半监督划分,利用 10% 或者 1% 的数据进行实验,最后分析了一些超参数对于最终性能的影响。

对于标记数据来说,模型会同时预测旋转角度和标签,对于无标签数据来说,只会预测其旋转角度,预测旋转角度”可以替换成任何其它无监督task(作者提出了两个算法,一个是 S^4L-Rotation,即无监督损失是旋转预测任务;另一个是S^4L-Exemplar,即无监督损失是基于图像变换(裁切、镜像、颜色变换等)的triplet损失)

总的来说,需要借助于无监督学习,为无标注数据创建一个pretext task,这个pretext task能够使得模型利用大量无标注学习一个好的feature representation

2.2 基于时序(Temporal based)

之前介绍的方法大多是基于样本自身的信息,比如旋转、色彩、裁剪等。而样本间其实也是具有很多约束关系的,比如视频相邻帧的相似性、物体多个视觉的视频帧。

论文三:

《Time-Contrastive Networks: Self-Supervised Learning from Video》

对于视频中的每一帧,其实存在着特征相似的概念,可以认为相邻帧特征是相似的,而相隔较远的视频帧是不相似的,通过构建这种position和negative的样本来进行自监督约束。

对于同一个物体的拍摄是可能存在多个视角(multi-view),对于多个视角中的同一帧,可以认为特征是相似的,对于不同帧可以认为是不相似的。

论文四:《Unsupervised Learning of Visual Representations Using Videos》

基于无监督追踪方法,首先在大量的无标签视频中进行无监督追踪,获取大量的物体追踪框。那么对于一个物体追踪框在不同帧的特征应该是相似的,而对于不同物体的追踪框中的特征应该是不相似的。

论文五:《Shuffle and learn: unsupervised learning using temporal order verification》

基于顺序约束的方法,可以从视频中采样出正确的视频序列和不正确的视频序列,构造成正负样本对然后进行训练。简而言之,就是设计一个模型,来判断当前的视频序列是否是正确的顺序。

2.3基于对比(Contrastive based)

基于对比的约束,通过构建正样本(positive)和负样本(negative),然后度量正负样本的距离来实现自监督学习。核心思想样本和正样本之间的距离远远大于样本和负样本之间的距离。

1. score 是度量函数,评价两个特征间的相似性。

【机器学习】业界干货 | 图解自监督学习,从入门到专家必读的九篇论文相关推荐

  1. 业界干货 | 图解自监督学习,从入门到专家必读的九篇论文

    本文约3500字,建议阅读15分钟 一文搞懂AI未来最火的技术:自监督学习. 如果人工智能比作一块蛋糕,那么蛋糕的大部分是自监督学习,蛋糕上的糖衣是监督学习,蛋糕上的樱桃是强化学习. Yann Lec ...

  2. (转) 干货 | 图解LSTM神经网络架构及其11种变体(附论文)

    干货 | 图解LSTM神经网络架构及其11种变体(附论文) 2016-10-02 机器之心 选自FastML 作者:Zygmunt Z. 机器之心编译  参与:老红.李亚洲 就像雨季后非洲大草原许多野 ...

  3. 推荐!入门人工智能必看的45篇论文(文末下载)

    0.导语 AI领域的发展会是IT中最快的.我们所看到的那些黑科技,其后面无不堆积了大量的论文.而且都是最新.最前沿的论文. 从某种调度来讲,他们所用的技术跟书籍里的内容确实不是一个时代.要想与时俱进, ...

  4. 2019年上半年收集到的人工智能机器学习方向干货文章

    2019年上半年收集到的人工智能机器学习方向干货文章 10种机器学习方法,掌握了就可以称霸朋友圈 人工智能常见算法简介 机器学习中的最优化算法总结 最萌算法学习来啦,看不懂才怪! The Next S ...

  5. 干货!区块链入门、进阶、行业专家观点!1000篇好文帮你破解区块链密码!(中篇)...

    随着区块链概念理论的不断成熟以及强劲技术的不断深耕,区块链已经成为投资圈中备受关注的热点,从区块链1.0时代落地数字货币比特币.莱特币等,打开了区块链通向新弯道的高速路口,到区块链2.0时代开始通过智 ...

  6. 图解自监督学习,人工智能蛋糕中最大的一块

    作者:Amit Chaudhary 编译:ronghuaiyang (AI公园) 原文链接: 图解自监督学习,人工智能蛋糕中最大的一块​mp.weixin.qq.com 如果人工智能是一块蛋糕,那么蛋 ...

  7. 图解自监督学习(CV)

    图解自监督学习(CV) 译自:https://amitness.com/2020/02/illustrated-self-supervised-learning/ 作者:Amit Chaudhary ...

  8. [图解tensorflow源码] 入门准备工作附常用的矩阵计算工具[转]

    [图解tensorflow源码] 入门准备工作 附常用的矩阵计算工具[转] Link: https://www.cnblogs.com/yao62995/p/5773142.html tensorfl ...

  9. 《Blender图解教程:新手入门练习》

    <Blender图解教程:新手入门练习> 1: 打开Blender 新建一个工程文件 2: 将模式转换为编辑模式左上角 3: 利用缩放工具对立方体进行缩放 缩放成扁平长方体,作为台灯底座 ...

最新文章

  1. oracle导出脚本文件怎么打开,Windows下的Oracle导出脚本 -电脑资料
  2. MAP Protocol 协议(2)介绍二
  3. 基于.NET平台常用的框架整理(转)
  4. 如何开发Web应用程序(非网站)
  5. 详解Class类文件的结构(下)
  6. C++ 判断元音/辅音
  7. 解决no such file or directory的问题
  8. java中fmt标签库_jsp fmt标签详解
  9. 软件测试—软件测试基础知识—(三)软件测试的原则和(四)软件测试策略
  10. python浮雕图片_python图像数据增强——imgaug (二)
  11. 针对大的sql文件删除行操作
  12. 这么好的课程,竟然免费!!!
  13. Maven简明教程(3)---在eclipse中创建工程与基本命令介绍
  14. [转] 怎么减少编程中的 bug?
  15. 第10章 评价分类结果 学习笔记下
  16. 深大uooc大学生心理健康章节答案第九章
  17. java按键机nes模拟器_NES 模拟器开发教程 12 - 输入设备
  18. mermaid flowchart使用指南
  19. python switch函数
  20. 行车记录仪android,车叮咚:一款搭载 Android 系统的行车记录仪是怎样的?

热门文章

  1. Android中链接到百度进行搜索
  2. “多态枚举”数值如何判断?
  3. 线性变化和非线性变化
  4. spring+quartz定时任务配置---MethodInvokingJobDetailFactoryBean
  5. 【unity基础系列】1、unity Texture Type设置为Advanced时纹理的格式列表
  6. BootStrap学习(6)_模态框
  7. 多线程环境下的线程不安全问题(1)
  8. java的Comparator和Comparable
  9. 多项式相乘快速算法原理及相应C代码实现
  10. R语言统计与绘图:正态、方差齐性、多重比较