前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【抗击谷歌】亚马逊微软发布深度学习库,让训练神经网络像开发APP一样简单

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

作者头像
新智元
发布2018-03-21 17:35:48
7760
发布2018-03-21 17:35:48
举报
文章被收录于专栏:新智元
【新智元导读】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/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-10-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档