2020-02-14 11:11:15

通常情况下,机器学习尤其是深度学习的使用往往需要具备相当的有利条件,包括一个大型的数据集,设计有效的模型,而且还需要训练的方法——但现在,利用迁移学习就可以消除掉这些瓶颈。

作者 | Caleb Kaiser

译者 | 弯月,责编 | 郭芮

以下为译文:

在不久之前,为了有效地使用深度学习,数据科学团队需要:

  • 一种新颖的模型架构,很可能需要自己设计;

  • 大型数据集,很可能需要自己收集;

  • 大规模训练模型的硬件或资金。

这些条件和设施成为了限制深度学习的瓶颈,只有少数满足这些条件项目才能应用深度学习。

然而,在过去的几年中,情况发生了变化。

我们看到用户开始试用基于深度学习的新一代产品,而且与以往不同的是,这些产品使用的是以前没有出现过的任何一种模型架构。

这种增长背后的驱动力是迁移学习(transfer learning)。

什么是迁移学习?

从广义上讲,迁移学习的思想是专注于存储已有问题的解决模型(例如识别照片中的花朵),并将其利用在其他不同但相关问题上(例如识别皮肤中的黑素瘤)。

迁移学习有多种方法,但其中一种方法——微调法(finetuning)得到了广泛采用。

在这种方法中,团队采用预先训练好的模型,然后通过删除或重新训练模型的最后一层,将其用于新的相关任务。例如,AI Dungeon是一款开放世界的文字冒险游戏,因其AI生成的生动形象的故事而广为传播:

注意,AI Dungeon不是Google研究实验室开发的项目,只是一名工程师构建的黑客马拉松项目。

AI Dungeon的创建者Nick Walton并没有从零开始设计模型,而是采用了最新的NLP模型(OpenAI GPT-2),然后对其进行微调来设置自己的冒险文字。

这种方法完全可行的原因是,在神经网络中,最初几层主要负责简单、通用的特征,而最后几层主要负责与任务有关的分类/回归。Andrew Ng 用一个图像识别模型的例子,以可视化的方式介绍了各层与任务本身的相关性:

事实证明,基础层学习的通用知识通常可以很好地迁移到其他任务上、。在AI Dungeon的示例中,GPT-2对通用英语有良好的理解,只需要对最后几层进行一些重新训练,即可在冒险游戏中给出优异的表现。

每位工程师都可以通过这种流程,在几天之内部署一个模型,以在新的领域实现最新的结果。

为什么迁移学习是下一代机器学习软件的关键?

本文开头我提到了使用机器学习(尤其是深度学习)需要具备的有利条件。你需要一个大型的数据集,需要设计有效的模型,而且还需要训练的方法。

这意味着一般而言,某些领域的项目或缺乏某些资源的项目就无法开展。

如今,我们可以利用迁移学习消除这些瓶颈:

1、小型数据集不再是问题

通常,深度学习需要大量带标签的数据,但在许多领域中,这些数据根本不存在。然而,迁移学习可以解决这个问题。

例如,哈佛医学院附属团队最近部署了一个模型,该模型可以“根据胸部X光片,预测长期的死亡率,包括非癌性死亡”。

他们只有5万张带标签图像的数据集,不足以从头开始训练CNN(卷积神经网络)。于是,他们采用了预先训练好的的Inception-v4模型(该模型在拥有超过1400万张图像的ImageNet数据集上进行了训练),并使用迁移学习和轻微的架构调整,让模型适应了他们的数据集。

最终,他们的CNN成功地使用每位患者的一张胸部图像,生成了与患者的实际死亡率相关的风险评分。

2、模型可在几分钟训练完成

在大量数据上训练模型面临的难题不仅仅是获取大型数据集,还有资源和时间的问题。

例如,当Google开发最尖端的图像分类模型Xception时,他们训练了两个版本:一个在ImageNet数据集(1400万张图像)上,另一个在JFT数据集(3.5亿张图像)上。

即使他们在训练中采用了60个NVIDIA K80 GPU,并进行了各种优化,但每次ImageNet实验的运行都需要3天的时间。而JFT实验耗时一个多月。

如今,经过预训练的Xception模型已经发布了,各个团队可以通过微调更快地实现自己的模型。

例如,伊利诺伊大学和阿贡国家实验室的一个团队最近训练了一个模型,将星系的图像分类为螺旋形或椭圆形:

尽管只有3万5千张带标签的图像数据集,但他们仍能够使用NVIDIA GPU,在短短8分钟内对Xception进行微调。

这样得到模型在GPU上运行时,能够以每分钟超过2万个星系的惊人速度,并以99.8%的成功率对星系进行分类。

3、不再需要风险资本来训练模型

当初Google花费数月在60个GPU上训练一次Xception模型时,可能他们并不在乎成本。但是,对于没有那么多预算的团队来说,训练模型是非常现实的问题。

例如,当OpenAI首次公布GPT-2的结果时,由于担心滥用,他们只发布了模型架构,却未发布完整的预训练模型。

之后,布朗大学的一个团队按照论文陈述的架构和训练过程试图重现GPT-2,并命名为OpenGPT-2。他们花了大约5万美金进行了训练,但性能仍不及GPT-2。

5万美金的投入却未能训练出性能过关的模型,对于没有充裕资金的生产软件团队来说都是巨大的风险。

幸运的是,迁移学习可以显著降低成本。

当初Nick Walton构建AI Dungeon时,他对GPT-2进行了微调。OpenAI已经投入了大约27,118,520页文本和数千美元来训练模型,所以Walton坐享其成就可以了。

他使用了一个非常小的来自choiceyourstory.com的文本集,并对Google Colab的模型(该模型完全免费)进行了微调。

机器学习工程的生态系统正在建设中

回顾软件工程,我们会发现生态系统的“成熟”过程通常都有极其相似的模式。

首先是一门新语言的出现,而且还拥有令人兴奋的功能,然后人们将这门语言用于某些特别的场景,或者用于研究项目和业余爱好。在这个阶段,任何使用这门语言的人都必须从零开始构建所有的基础实用程序。接下来,社区会开发库和项目,将常见的实用程序抽象化,直到这些工具的功能足够强大,足够稳定,能用于生产。

在这个阶段,使用这门语言来构建软件的工程师不必再担心发送HTTP请求或连接到数据库等问题(所有这些都已被抽象化),只需专心构建产品即可。

换句话说,Facebook构建React,Google构建Angular,而工程师们则可以利用这些框架来构建产品。而这一过程在机器学习中就是迁移学习。

随着OpenAI、Google、Facebook和其他科技巨头发布强大的开源模型,面向机器学习工程师的“工具”会越来越强大,越来越稳定。

机器学习工程师不再需要花时间使用PyTorch或TensorFlow从头开始构建模型,他们可以利用开源模型并通过迁移学习来构建产品。

机器学习软件的新时代即将到来。如今,机器学习工程师只需专心思考如何将这些模型投入生产。

原文:https://towardsdatascience.com/deep-learning-isnt-hard-anymore-26db0d4749d7

“深度学习一点也不难!”相关推荐

  1. 深度学习很难?一文读懂深度学习!

    深度学习是机器学习(人工智能机制)的一个特定子集.它的编程框架看起来非常复杂,但其实思路很好理解,无非就是"以人脑为模型实现计算机系统智能化." 在过去的十几年里,研发人员进行了很 ...

  2. 深度学习“炼丹”难?三分钟带你了解国产丹炉旷视天元

    自从炼丹界推出新丹药"深度学习",各大炼丹世家(Google, Facebook, Microsoft)不惜重金招纳炼丹贤士.优秀的炼丹师一师难求,上古炼丹世家Google曾发布英 ...

  3. 怼完Sophia怼深度学习!细数完大神Yann LeCun 这些年怼过的N件事,原来顶级高手是这样怼人的...

    图片来源:PCmag.com 十多个小时前,深度学习大神Yann LeCun语出惊人,他宣布放弃"深度学习"这个词.因为媒体对这个词的炒作言过其实,混淆了大家真正的工作,而&quo ...

  4. Yann LeCun力挺前AAAI主席,批判深度学习的Marcus遭怒怼

    Yann LeCun.Tom Dietterich.Gary Marcus在NIPS 2015上讨论我们周围的算法,吴恩达同台 昨天,纽约大学教授.Uber AI实验室前任主管Gary Marcus抨 ...

  5. 世界欠他一个图灵奖! LSTM之父的深度学习“奇迹之年”

    来源:新智元 本文约9600字,建议阅读10+分钟. 近日LSTM之父发表了一篇长文,详细论述了近 30 年前他和团队进行的许多研究. [ 导读 ]LSTM的发明人.著名深度学习专家Jürgen Sc ...

  6. 究竟深度学习在干什么?

    来源:人机与认知实验室 概要: 深度学习取得了巨大的成功,这是无容置疑的.对此,我们不必再多说什么.但是,其理论基础仍然有很大的空白. 深度学习取得了巨大的成功,这是无容置疑的.对此,我们不必再多说什 ...

  7. AI专家Marcus质疑深度学习:面临十大挑战(含参考文献)

    夏乙 若朴 安妮 编译整理 量子位 出品 | 公众号 QbitAI 多年坚持为深度学习泼冷水的纽约大学心理学教授马库斯老师(Gary Marcus),今天终于写了一篇长长的文章,将自己的对深度学习的看 ...

  8. 这十大挑战,摆在DL面前:马库斯长文质疑深度学习

    夏乙 若朴 安妮 编译整理 量子位 出品 | 公众号 QbitAI 多年坚持为深度学习泼冷水的纽约大学心理学教授马库斯老师(Gary Marcus),今天终于写了一篇长长的文章,将自己的对深度学习的看 ...

  9. 深度学习三十年创新路

    深度学习三十年创新路 编者注:深度学习火了,从任何意义上,大家谈论它的热衷程度,都超乎想象.但是,似乎很少有人提出不同的声音,说深度学习的火热,有可能是过度的繁荣,乃至不理性的盲从.而这次,有不同的想 ...

  10. 【深度学习】什么是深度学习-1

    人工智能,机器学习与深度学习 问自己一个问题:到底深度学习目前实现了什么成就?它到底有多重要?我们已经处在哪个阶段了? 一图看懂三者的关系: 人工智能是个大范畴,机器学习是人工智能的一个子集,而深度学 ...

最新文章

  1. SQL Server DATEDIFF() 函数计算时间差
  2. 从流程上对rtmp协议经行总结
  3. elasticsearch-jdbc实现MySQL同步到ElasticSearch深入详解
  4. 51单片机配合超声波测距以及用1602液晶进行显示
  5. USBCNC导入DXF文件
  6. MySQL和Navicat for MySQL下载及安装详细教程
  7. js页面跳转,参数传递
  8. 西门子博图使用Trace功能
  9. 【数据工具】地理坐标拾取器V.1.01(支持WGS-84、GCJ-02、BD-09)
  10. 函数分离常数法 oracle,圆锥曲线:椭圆小题解题报告
  11. 宏碁台式计算机u盘启动,宏基台式机U盘重装怎么设置U盘启动项
  12. NLTK-006:分类文本(性别鉴定)
  13. Bada学习-应用模块
  14. 微信刷票python代码_微信刷票漏洞详解, Python脚本实现一秒破万!
  15. 初学者:html中的表单详解(下面附有代码)
  16. sklearn机器学习(七)决策树预测泰坦尼克号幸存者
  17. cad2012打开后闪退_2012cad闪退怎么解决win10_cad2012闪退win10系统如何修复
  18. 经典背包问题3——背包问题求方案数 、背包问题求具体方案
  19. AMI CORE8 OEM BIOS开发入门
  20. 多普达S900 使用详细说明(使用技巧大全)

热门文章

  1. linux虚拟机镜像_无树莓派硬件体验:虚拟机安装 Raspberry Pi Desktop 操作系统
  2. Linux学习(四)---用户管理
  3. Leetcode232.栈实现队列
  4. python list的复制
  5. 用bert来训练quoras question pairs的代码仓
  6. 在求向量组的极大线性无关组时,为什么要将向量竖着放,然后对所构成的矩阵进行初等行变换?转
  7. 《AI系统周刊》第1期:社群招新,打通智能计算软硬件“任督二脉”
  8. 李铁军教授专访:当数学家遇见人工智能
  9. 论CondConv、DynamicConv、DyNet的区别与联系
  10. 独家 | 手把手教你用Python 3创建用于机器学习开发的Linux虚拟机(附安装教程代码)