2020-02-03 05:35:08

者 | Thalles Silva编译 | 翻译官balala

编辑 | 丛末

大规模标注的数据集的出现是深度学习在计算机视觉领域取得巨大成功的关键因素之一。然而监督式学习过于依赖大规模标注数据集,数据集的收集和人工标注需耗费大量的人力成本。自监督模型解决了这一难题,它能够从大规模未标记数据中学习图像特征,而无需使用任何人工标注数据。

每个深度学习实践者都认同的一件事是:深度学习模型是数据低效的。

1、数据低效的深度学习模型

让我们首先考虑计算机视觉中的主流分类任务。以 ImageNet 数据库为例,它包含 1000 个不同类别的130 万张图像,其中的每一个图像都有人工标注的标签。

ImageNet 无疑是现在深度学习复兴的基石之一,这源于 2012 年 Krizhevsky 等人所著的论文《Imagenet Classification with Deep Convolutional Neural Networks》。

在这篇文章中, 卷积网络模型首次大幅度超越了当时最先进的模型。它是在所有的对比模型中唯一一个基于卷积神经网络的解决方案。此后,卷积神经网络变得无处不在。

在深度学习之前,研究人员一直认为 ImageNet 挑战非常困难,其主要原因是 ImageNet 数据集突出的变化性。即便只是找到能覆盖 ImageNet 中各种犬类的手工特征就已经很不容易。

然而,通过深度学习,我们很快意识到,大量的数据导致了 ImageNet 如此困难,同时实际上也是使深度学习如此有效的秘诀。

虽然如此,通过多年的深度学习研究,我们知道了大型数据库用于训练精确模型的必要性已成为一个非常重要的问题。并且需要低效的人工标注数据成为一个更大的问题。

而且在当前的深度学习应用中,数据的问题无处不在。以 DeepMind 的 AlphaStar 模型为例。

来源:《AlphaStar : Mastering the Real-Time Strategy Game StarCraft II》

  • 论文地址:https://deepmind.com/blog/article/alphastar-mastering-real-time-strategy-game-starcraft-ii

AlphaStar 深度学习系统使用监督学习和强化学习来操作《星际争霸2》。在训练期间,AlphaStar 仅从游戏终端上观看游戏画面。DeepMind 研究人员使用可并行训练大量智能体的分布式策略训练模型。每个智能体都至少观看过 200 年的实时《星际争霸》录像(不间断)。通过像职业选手一样的训练,AlphaStar 取得了在官方游戏服务器中的排名超过了99.8%的活跃玩家的巨大成功。

虽然其中使用了各种通用性的技术来训练系统,但成功构建 AlphaStar(或任何其他 RL 智能体)的真正关键是使用了大量数据。实际上最佳的强化学习算法需要进行大量试验才能达到人类水平,这与我们人类的学习方式正好相反。

结果,强化学习在具有大量可用数据的受限且定义明确的场景上取得了巨大成功。相关阅读可以查看 DeepMind 《Rainbow: Combining Improvements in Deep Reinforcement Learning》这篇论文。

  • 论文地址:https://arxiv.org/pdf/1710.02298.pdf

如果让最好的 RL 方法玩某个 Atari 游戏,它需要一共玩近100个小时(1080万帧),才能达到和专业人类玩家相同的表现水平。尽管时长最近有所改进,但100小时似乎仍然太多。

来源:《 Rainbow: Combining Improvements in Deep Reinforcement Learning》

  • 论文地址:https://arxiv.org/pdf/1710.02298.pdf

有关 AlphaStar 的更多信息,可以查看这篇文章:

  • 文章地址:https://blog.deeplearning.ai/blog/the-batch-google-achieves-quantum-supremacy-amazon-aims-to-sway-lawmakers-ai-predicts-basketball-plays-face-detector-preserves-privacy-1-0-0-0-0

虽然我可以给大家再举几个例子,但我想这两句话足以说明我的意思:

目前深度学习基于大规模数据,当满足所需环境和约束条件时,这些系统就会产出给人惊喜的结果。但在一些特殊情况下,它们也会完全失效。

让我们回到 ImageNet 分类问题:ImageNet 数据库的人类识别错误率约为5.1%,而目前最先进的深度学习 top-5 准确性约为1.8%。

  • 论文地址:https://paperswithcode.com/sota/image-classification-on-imagenet

因此我们可以完美地证明:深度学习在 ImageNet 这项任务上已经比人类做的更好。但是真的是这样吗?

如果是这样的话,我们怎么解释如下的问题呢?

来源:《 Attacking Machine Learning with Adversarial Examples》

  • 论文地址:https://openai.com/blog/adversarial-example-research/

我们可以将这些在互联网上非常流行的对抗样本(adversarial examples)看作是设计用于误导机器学习模型的优化任务。相关阅读可以查看下面这篇文章:

  • 文章地址:https://openai.com/blog/adversarial-example-research/

这个想法很简单:

我们如何让分类器将以前归类为“熊猫”的图像归类为“长臂猿”?

我们可以简单地认为被精心设计的输入样本导致了 ML 模型分类错误。

来源:《One Pixel Attack for Fooling Deep Neural Networks》

  • 论文地址:https://arxiv.org/pdf/1710.08864.pdf

正如我们所见,优化效果好到我们(用肉眼)无法察觉到真实图像(左)和对抗图像(右)之间的差异。实际上,造成分类错误的噪声不是任何类型的已知信号。相反它是经过精心设计用于发现模型中的隐藏误差。并且最近的研究表明:在某些情况我们只需要改变1个像素,就可以成功误导最好的深度学习分类器,详细讨论可以查看这篇论文:

  • 论文地址:https://arxiv.org/pdf/1710.08864.pdf

在这一点上,我们可以看到问题开始相互叠加。我们不仅需要大量样本来学习新任务,还需要确保我们的模型学习正确的表征。

油管视频:https://www.youtube.com/watch?v=piYnd_wYlT8

我们看到深度学习系统失败时产生了一个有趣的讨论:为什么 我们人类不会轻易被对抗样本误导呢?

2、建立和利用先验知识

有的人说当我们需要掌握一项新任务时,我们实际上并没有从头开始学习它。相反,我们使用了我们一生中积累的许多先验知识。

牛顿发现万有引力定律

我们了解重力及其含义,知道如果让炮弹和羽毛从同一起点落下,由于两个物体的空气阻力不同,炮弹将先到达地面;知道物体不能漂浮在空中;了解有关世界运作方式的常识。我们知道如果我们自己的父亲有孩子,他或她将是自己的兄弟姐妹;知道如果我们读了一篇文章说某人出生于 1900 年代,那么他/她可能不再活着,因为我们(通过观察世界)知道人们的寿命通常不会超过 120 岁。

我们了解事件之间的因果关系。最神奇的是我们实际上很早就学会了许多高级概念。实际上,我们仅用6~7个月就学会了重力和惯性等概念,而在这个时期我们与世界的互动几乎为0!

来源:《Early Conceptual Acquisition in Infants [from Emmanuel Dupoux].》, Yann LeCun讲义

  • https://drive.google.com/file/d/12pDCno02FJPDEBk4iGuuaj8b2rr48Hh0/view

从这种意义上讲,有人可能会说将算法性能与人类能力进行比较是“不公平的”。

Yann LeCun 在关于自监督学习的研究中,认为至少有3种获取知识的方法。

(1)通过观察

(2)通过监督(大部分来自家长和老师)

(3)通过强化反馈

论文地址:https://www.facebook.com/epflcampus/videos/1960325127394608

人类通过生活获得不同知识的来源。通过观察/互动、监督和反馈来学习

但是如果以婴儿为例,那么这个年龄与外界的互动几乎没有。尽管如此,婴儿还是成功建立了物理世界的直觉模型。因此像重力这样的高级知识只能通过纯粹的观察来学习——至少,我还没有看到任何父母教一个6个月大的婴儿物理。

直到我们长大一些掌握语言并开始上学时,监督和互动(带有反馈)才变得更加重要。但更重要的是,当我们处于生命的这些阶段时,我们已经建立了一个鲁棒性的模型世界。这可能是人类比当前机器更高效处理数据的主要原因之一。

正如 LeCun 所说,强化学习就像蛋糕上的樱桃。监督学习是锦上添花,而自监督学习才是蛋糕!

来源:Yann LeCun(https://drive.google.com/drive/folders/0BxKBnD5y2M8NUXhZaXBCNXE4QlE)

3、自监督学习

自监督学习系统学会通过输入的其他部分预测输入的一部分。

—— LeCun

自监督学习源于无监督学习, 解决从未标记的数据中学习语义特征的问题。本文中我们最关心的是在计算机视觉领域的自我监督。

通常的方法是通过设计一个“名义任务”将无监督的问题转换为有监督的任务。通常,名义任务不会有什么新的产出,它的目的是使网络学习如何从数据中捕获有用的特征。

名义任务与常见的监督问题有相似之处。

我们知道监督训练需要标注。转而变成通常需要人工标注者的不断努力。但在许多情况下,标注非常昂贵或无法获得。我们也知道学习模型天生需要数据,这导致大规模的标注数据集已成为学习模型进一步发展的主要壁垒之一。

同样,自监督学习也需要标注来训练名义任务。然而与名义任务的关键不同在于:用于名义任务的标注(伪标注)的特征是不同的。

实际上对于自监督训练,伪标签仅来自数据特征本身。

换句话说伪数据不需要人工标注。确实,自我学习和监督学习之间的主要区别在于标注的来源。

(1)如果标注来自标注者(像大多数数据集一样),则这是一项监督任务。

(2)如果标注是从数据中获取,那么在这种情况下我们可以自动生成它们,则这是一项自监督学习。

最近的研究提出了许多名义任务。最常见的有:

(1)图片旋转(Rotation)

(2)图像拼接(Jigsaw puzzle )

(3)图像着色(Image Colorization)

(4)图像修复(Image inpainting)

(5)用 GANs 生成图像/视频(Image/Video Generation using GANs)

  • 论文地址:https://arxiv.org/abs/1902.06162

来源:《Self-supervised Visual Feature Learning with Deep Neural Networks: A Survey》

在自监督的训练期间,我们训练网络从而来学习名义任务。同样,根据数据本身自动生成伪标签用来训练目标。训练结束后,我们通常将学习到的视觉特征作为知识转译给下游任务(downstream task)。

通常,下游任务可以是任何监督问题。目的是用自监督特征改善下游任务的性能。

通常下游任务的最大问题是数据有限和过度拟合。这里,我们可以看到基于大型标注数据库(如 ImageNet )预训练卷积神经网络的普通迁移学习的相似性。但有一个关键的优势:通过自监督训练,我们可以在难以置信的大型数据库上对模型进行预训练而无需担心人为标签。

此外, 名义任务和普通分类任务之间有一个细微差别。在纯分类任务中,网络学习表征是为了分离特征空间中的类。在自监督学习中,名义任务通常会促使网络学习更多的通用概念。

以图像着色这一名义任务为例:为了擅长图像着色,网络必须学习通用用途的特征,这些特征解释了数据集中对象的特征,包括物体的形状、一般纹理、怕光、阴影、遮挡等。

总之,通过解决名义任务,网络将学习容易转译给学习新问题的语义特征。换句话说:我们的目标是在进行监督之前从未标注的数据中学习有用的表征。

4、结论

自监督学习让我们能够没有大规模标注数据也能获得优质的表征,反而我们可以使用大量的未标注数据并且优化预定义的 pretext 任务。然后我们可以使用这些特性来学习缺乏数据的新任务。

相关文献可参考原文:https://towardsdatascience.com/self-supervised-learning-and-the-quest-for-reducing-labeled-data-in-deep-learning-db59a563e25b?gi=60c8260b84fc

自监督学习,如何从数据困境中拯救深度学习?相关推荐

  1. 在浏览器中进行深度学习:TensorFlow.js (四)用基本模型对MNIST数据进行识别

    2019独角兽企业重金招聘Python工程师标准>>> 在了解了TensorflowJS的一些基本模型的后,大家会问,这究竟有什么用呢?我们就用深度学习中被广泛使用的MINST数据集 ...

  2. 在浏览器中进行深度学习:TensorFlow.js (十二)异常检测算法

    2019独角兽企业重金招聘Python工程师标准>>> 异常检测是机器学习领域常见的应用场景,例如金融领域里的信用卡欺诈,企业安全领域里的非法入侵,IT运维里预测设备的维护时间点等. ...

  3. 精准医学中的深度学习和影像组学

    影像科正在经历一种范式转变,即使用人工智能与机器集成以及深度学习与影像组学更好地定义组织特征,从而实现计算机科学与影像学的共生关系.研究的目标是使用集成的深度学习和具有影像学参数的影像组学来为患者进行 ...

  4. 保健中的深度学习nlp技术用于决策

    介绍 (Introduction) The ubiquitous adoption of electronic health records in hospitals and other health ...

  5. 图像超分中的深度学习网络

    图像超分中的深度学习网络 质量评估 操作通道 有监督算法 预上采样 后采样超分 逐步上采样 迭代上下采样 上采样的学习方式 残差块 递归学习 多路径学习 密集连接 通道注意力机制 其他卷积 像素递归网 ...

  6. 从原理到应用落地,一文读懂推荐系统中的深度学习技术

    作者丨gongyouliu.zandy 来源丨大数据与人工智能(ID:ai-big-data) 2016年DeepMind开发的AlphaGo在围棋对决中战胜了韩国九段选手李世石,一时成为轰动全球的重 ...

  7. 近期活动盘点:心电数据标注系统和深度学习诊断算法研究、2019年第六届清华大学大数据社会科学讲习班...

    想知道近期有什么最新活动?大数点为你整理的近期活动信息在此: 第四期医工结合研讨会:心电数据标注系统和深度学习诊断算法研究 2019年7月11日 7月11日,"医工结合系列研讨会第四期会议: ...

  8. 综述:NLP中的深度学习优势

    [简介]自然语言处理(NLP)能够帮助智能型机器更好地理解人类的语言,实现基于语言的人机交流.目前随着计算能力的发展和大量语言数据的出现,推动了使用数据驱动方法自动进行语义分析的需求.由于深度学习方法 ...

  9. 数据不够怎么训练深度学习模型?不妨试试迁移学习 ——重用神经网络的结构2...

    数据不够怎么训练深度学习模型?不妨试试迁移学习 本质就是这个图!pretrained model就是你截取的部分神经网络模型(迁移学习),而nanonet就是你自己加入的网络层. 随着深度学习技术在机 ...

最新文章

  1. [Security]XSS一直是个棘手的问题
  2. shell写的彩色进度条
  3. POJ-2069 Super Star(最小球覆盖)
  4. 计算机四级的英文,计算机四级考试中英文术语对照
  5. zabbix3.0.4监控mysql主从同步
  6. seata使用报错no available service found in cluster ‘default‘
  7. Cadence OrCAD Capture 设计准备图文教程
  8. 学习STM32 RS485 原理与应用
  9. 关于Java工具eclipse的基本
  10. 深度学习——AI领域会议列表(以备准备和更新论文存储使用)
  11. 用python完成一个数独小游戏
  12. SSM网上书店管理系统毕业设计源码082255
  13. Defina脚本 - 恶灵塔任务大全
  14. pcl小知识(十一)——对StatisticalOutlierRemoval的理解
  15. 因BIOS设定导致GPU无法使用问题
  16. IDEA创建maven项目时的plugins、dependencies飘红问题
  17. silverlight 得到 控件 鼠标 的位置
  18. 重生之沙费德提克 LOL重生之沙费德提克购买地址 重生之沙稻草人皮肤特效视频
  19. 详解FFplay音视频同步
  20. 服务器压力测试工具ab

热门文章

  1. 模型保存的序列化文件pb 什么是PB文件 pb是protocol(协议) buffer(缓冲)的缩写
  2. bert+lstm+crf ner实体识别 带源码
  3. 神经网络通用近似定理
  4. python直方图hist用法参数详解
  5. from beautifulsoup4 import BeautifulSoup 报错
  6. 在使用import语句时
  7. Google和Yahoo专家联手揭秘世界顶尖公司的技术内幕
  8. 如何成为一名现代的Linux程序员
  9. Python图像处理:形态学操作
  10. 深度解析 | 大数据面前,统计学的价值在哪里?