【抗击谷歌】亚马逊微软发布深度学习库,让训练神经网络像开发APP一样简单

【新智元导读】AWS和微软共同宣布了推出一个新的深度学习库Gluon。Gluon允许所有技能水平的开发者设计原型、创建和训练深度学习模型,部署在云端、终端设备或手机APP。Gluon接口目前与Apache MXNet兼容,并将在即将发布的版本中支持微软认知工具包(CNTK)。美国媒体CNBC在对这一新的深度学习库进行报道时提到,这是亚马逊和微软两大巨头近日在人工智能上宣布的第二项重大合作,和此前一样,谷歌被排除在合作之外。

即将于2017年11月8日在北京国家会议中心举办的AI World2017世界人工智能大会上,我们请到了亚马逊AWS机器学习总监的Alex Smola。他将在大会上发表演讲,并与参会嘉宾进行交流。想现场一睹Smola大神的风采,或者是现场向他请教技术问题?

近日,AWS和微软共同宣布了推出一个新的深度学习库:Gluon。Gluon允许所有技能水平的开发者设计原型、创建和训练深度学习模型,部署在云端、终端设备或手机APP。

Gluon接口目前与Apache MXNet兼容,并将在即将发布的版本中支持微软认知工具包(CNTK)。使用Gluon接口,开发人员可以使用简单的Python API和一系列预构建、优化的神经网络组件来构建机器学习模型。这使得开发者更容易使用简单、简洁的代码构建神经网络,而不需要牺牲性能。

AWS和微软发布了Gluon的参考规范,因此其他深度学习引擎可以与该接口集成。开始使用Gluon接口,请访问:https://github.com/gluon-api-Gluon-api/。

美国媒体CNBC在对这一新的深度学习库进行报道时提到,这是亚马逊和微软两大巨头近日在人工智能上宣布的第二项重大合作,和此前一样,谷歌被排除在合作之外(当然,也可能是谷歌自身对这样的合作也不感兴趣,谷歌自己的深度学习开源框架TensorFlow目前已经是开源社区Githu上同类框架中最受欢迎的,用户量在不断攀升)。

亚马逊和微软此举被认为是与谷歌在云计算市场上展开争夺的重要举措。谷歌2017年以来通过强大的AI生态系统,在云计算上持续发力,尤其强调自身产品对AI和深度学习的强大支持能力。

微软在联盟上的动作最近非常频繁,9月7号微软联手Facebook推出了开放神经网络交换Open Neural Network Exchange (ONNX) 格式。这是一个用于表示深度学习模型的标准,可使模型在不同框架之间进行转移。10月11日,AMD、ARM、华为、 IBM、英特尔、Qualcomm都宣布将支持ONNX。

“机器学习的潜力只有在所有开发者都能访问的情况下才能实现。今天的现实是,构建和训练机器学习模型需要大量繁重的工作和专门的专业知识,”亚马逊副总裁Swami Sivasubramanian说,“我们创建了Gluon接口,使得构建神经网络和训练模型就像开发APP一样简单。我们期待与微软的合作,为让机器学习更容易使用的目标继续开发Gluon接口。”

微软人工智能和研究副总裁Eric Boyd说:“我们认为,对于整个行业来说,合作并集中资源来打造造福广大社区的技术是很重要的。这就是微软与AWS合作开发Gluon接口的原因,并支持开放的AI生态系统,让开发者可以自由选择。机器学习有能力改变我们工作、互动和交流的方式。为了实现这一目标,我们需要将正确的工具放在正确的位置,而Gluon接口则是朝着这个方向迈出的一步。”

下面是Gluon的4个主要有点和代码示例:

简单、易于理解的代码

在Gluon中,你可以使用简单、清晰、简洁的代码来定义神经网络。你可以得到一套完整的即插即用的神经网络构建块,包括预定义的层、优化器和初始化器。这些把许多复杂的底层实现细节提取出来。下面的例子展示了如何用几行代码定义一个简单的神经网络:

下图展示了这个神经网络的结构:

要了解更多信息,请到对应教程学习如何构建一个多层感知器(MLP)的简单神经网络,并使用Gluon神经网络构建块。对于更高级的用例,从头开始编写神经网络的一些部分也是很容易的。Gluon允许在你的神经网络中混合和匹配预定义和自定义组件。

灵活的结构

训练神经网络模型在计算上是非常密集的,在某些情况下,可能需要几天甚至几周的时间。许多深度学习框架通过严格定义模型和将其与训练算法分离开来,从而减少训练时间。这种严格的方法大大增加了复杂性,也使调试变得困难。

Gluon方法不同。它将训练算法和神经网络模型结合在一起,从而在不牺牲性能的前提下为开发过程提供了灵活性。这种方法的核心是Gluon trainer,它用于训练模型。

trainer方法依赖 MXNet autograd 库,它用于自动计算导数(即,梯度)。导数是一个用来测量变量变化速率的数学计算。它是训练算法的必要输入。autograd库可以有效地实现这些数学计算,这对于Gluon提供的灵活性至关重要。现在你可以定义一个训练算法,它由一个简单的嵌套for循环组成,通过合并autograd和trainer。

这种灵活的结构使代码直观、易于调试,并为更高级的模型打开了大门。你可以使用熟悉的、原生的Python语言结构,比如for循环或神经网络中的if语句,或作为算法的一部分。通过将模型和算法组合在一起,就可以执行模型中的每一行代码,从而更容易地识别出导致bug的特定代码行。

动态图

在某些情况下,神经网络模型可能需要在训练过程改变形状和大小。特别是当输入到神经网络的数据输入是可变的时,这是必需的。这在自然语言处理(NLP)中很常见,因为在自然语言处理中,每个句子的输入都可以是不同的长度。使用Gluon,神经网络定义可以是动态的,这意味着你可以随时构建任何你想要的结构,并使用任何Python的控制流。

例如,这些动态的神经网络结构使构建一个树结构的长短期记忆(LSTM)模型变得更容易,这是Kai Sheng Tai、Richard Socher和Chris Manning在2015年提出的,是NLP的一个重要发展。Tree LSTM 是一种强大的模型,它可以识别一对句子是否具有相同的含义。下面的例子中,两个句子有着相同的意思:

  • “Michael threw the football in front of the player.”(迈克尔把足球扔到球员面前。)
  • “The ball was thrown short of the target by Michael.”(球被迈克尔扔出目标。)

我们可以仅将这些句子输入一个循环神经网络(一种流行的序列学习模型)来进行分类。但是,树形LSTM的主要观点是,我们经常在需要先备知识的语言方面遇到问题。例如,句子有语法结构,我们有强大的工具可以从句子中提取出这个结构。我们可以用一个树形结构的神经网络来组合这些单词,它的结构模仿了句子中已知的语法树结构,如下图所示:

(The Stanford Natural Language Processing Group)

这就需要为每个例子构建一个不同的神经网络结构。使用传统框架这很难实现,但是Gluon可以解决这个问题。在下面的代码片断中,你可以看到如何在模型训练的每个前向迭代中合并一个循环,并且仍然受益于autograd和trainer的简化。这使模型能够遍历一个句子的树结构,从而基于该结构学习。

高性能

有了Gluon提供的灵活性,你就可以很容易地设计原型并尝试使用神经网络模型。然后,当速度变得比灵活性更重要时(例如,当你准备好输入所有的训练数据时),Gluon接口能够轻松地缓存神经网络模型以实现高性能,并减少内存占用。当你完成原型并准备在一个更大的数据集上测试,只需要小的调整。你必须使用HybridSequential,而不是使用 Sequential(如前面的例子所示)来堆栈神经网络的层。HybridSequential的功能与Sequential相同,但是它允许调用底层的优化引擎来表达模型的部分或全部架构。

接下来,为了编译和优化 HybridSequential,我们可以调用它的hybridize 方法:

现在,当你训练模型时,将能够获得与本机MXNet接口相同的高性能,同时减少内存使用。

这里有一个与亚马逊AWS机器学习总监见面的绝佳机会

看完了那么多代码和技术细节,关于Gluon你了解了多少?这会成为微软和亚马逊在云上对抗谷歌云的强力武器吗?

据说,Gluon在开源社区上的文档是由Alex Smola和即将出任CMU教授的小网红Zachary Lipton联手打造的!

即将于2017年11月8日在北京国家会议中心举办的AI World2017世界人工智能大会上,我们请到了亚马逊AWS机器学习总监的Alex Smola。他将在大会上发表演讲,并与参会嘉宾进行交流。想现场一睹Smola大神的风采,或者是现场向他请教技术问题?点击文末阅读原文,马上参会!

Alex Smola 亚马逊AWS机器学习总监

Alex Smola,1996 年毕业于慕尼黑工业大学,获物理学硕士学位。1998年在柏林工业大学取得计算机科学博士学位。之后,他在澳大利亚国立大学担任研究院和研究小组组长。2004 - 2008年,Alex Smola 在NICTA研究中心统计机器学习项目担任项目负责人。2008 年,他加入雅虎,后于 2012 年加入谷歌从事研究工作。他是加州大学伯克利分校的兼职教授,目前担任卡内基梅隆大学机器学习教授。2015 年,他与人联合创立了 Marianas 实验室。2016 年,Alex 加入亚马逊,目前担任亚马逊 AWS 机器学习总监。迄今为止共发表超过 200 篇论文并参与编写 5 本学术专著。

他的研究兴趣包括:算法的可扩展性,SVM、高斯过程和条件随机场等核方法,统计建模以及用户建模、文档分析、时序模型等各种机器学习应用。

原文:https://amazonaws-china.com/cn/blogs/ai/introducing-gluon-an-easy-to-use-programming-interface-for-flexible-deep-learning/

https://news.microsoft.com/2017/10/12/aws-and-microsoft-announce-gluon-making-deep-learning-accessible-to-all-developers/

原文发布于微信公众号 - 新智元(AI_era)

原文发表时间:2017-10-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

专栏 | 李航教授展望自然语言对话领域:现状与未来

语音助手、智能客服、智能音箱、聊天机器人,近年各种自然语言对话系统如雨后春笋般地涌现,有让人眼花缭乱的感觉。一方面对话系统越来越实用化,另一方面当前技术的局限性...

19400
来自专栏AI科技大本营的专栏

CCAI | 如何能既便宜又快速地获取大数据?这位微软研究员设计了两个模型,帮你省钱省时间

美国微软雷德蒙研究院首席研究员周登勇 文/CSDN贾维娣 7 月 22 - 23 日,在中国科学技术协会、中国科学院的指导下,由中国人工智能学会、阿里巴巴集团 ...

34060
来自专栏大数据文摘

【译】图论科学家教你如何安排婚礼座次

25580
来自专栏数据科学与人工智能

【数据科学】数据科学能回答什么样的问题?

机器学习是数据科学的发动机。每种机器学习方法(也称为算法)获取数据,反复咀嚼,输出结果。机器学习算法负责数据科学里最难以解释又最有趣的部分。数学的魔法在此发生。...

28680
来自专栏大数据文摘

统计学速成班:谷歌首席决策工程师的一分钟入门指南

假设检验,P值,显著性水平,置信区间,功效分析到底是什么呢?这里有一份通俗易懂的讲解指南。本文介绍了统计学两大学派:频率学派和贝叶斯学派的基本观点,一起来看看大...

12860
来自专栏量子位

Google开启全新图像目标检测大赛,场景多样性和复杂度史无前例

12520
来自专栏PaddlePaddle

实操|如何进阶深度学习工程师(下篇)

这里所定义的中阶选手,是深度学习理论基础扎实,实操方面尝试扩展深度学习更多应用场景的侠客。由此,从初阶→中阶,基本流程保持不变,变化的是每个步骤的深入程度。

14820
来自专栏数据科学与人工智能

【应用】信用评分卡:逻辑回归

几年前,我和妻子在英格兰和苏格兰度过了几个星期的假期。就在登上英国航空公司的飞机之前,一名空姐告诉我们,我们已升级为商务舱。快乐!度假真是一个美好的开始。一旦我...

24130
来自专栏智能算法

初学者如何从零学习人工智能?看完你就懂了

来自:开源中国社区 链接:http://www.oschina.net/news/78629/beginners-how-to-learn-from-zero-...

41070
来自专栏数据科学与人工智能

【数据科学】数据科学可以做什么

机器学习是数据科学的发动机。每种机器学习方法(也称为算法)获取数据,反复咀嚼,输出结果。机器学习算法负责数据科学里最难以解释又最有趣的部分。数学的魔法在此发生。...

300100

扫码关注云+社区

领取腾讯云代金券