亚马逊AWS官方博客

Tag: Gluon

Gluon 简介:AWS 和 Microsoft 合作推出的新机器学习库

作者:Matt Wood 博士 今天,AWS 和 Microsoft 联合发布了 Gluon – 一种新的开源深度学习接口,可帮助开发人员更轻松、更快速地构建机器学习模型,而不牺牲任何性能。Gluon 采用一系列预先构建并经过优化的神经网络组件,为定义机器学习模型提供清晰、简洁的 API。刚刚接触机器学习的开发人员会发现此接口更像传统代码,因为他们可以像使用任何其他数据结构那样定义和操作机器学习模型。经验丰富的数据科学家和科研人员也会发现它的宝贵价值:快速构建原型和利用动态神经网络图实现全新模型架构,而又不减缓训练进度。Gluon 现已在 Apache MXNet 中可用,日后将“进驻”Microsoft Cognitive Toolkit 及其他架构。 神经网络与开发人员 使用神经网络的机器学习 (包括“深度学习”) 包含三个主要部分:训练数据、神经网络模型和训练神经网络的算法。您可以将神经网络看成是一种有向图:它有一系列输入 (数据),通过一系列连接的层和权重连接到一系列输出 (预测)。在训练期间,算法根据网络输出中的错误调整网络中的权重。这就是网络学习的过程 – 一种可能需要持续数天时间的内存和计算密集型过程。Caffe2、Cognitive Toolkit、TensorFlow 以及 Apache MXNet 等深度学习框架能够部分解决“如何加快这一过程?”的难题。与数据库中的查询优化器一样,训练引擎越了解网络和算法,越能更好地优化训练过程 (例如,它可以根据其他部分的改变,推断需要重新计算图中的哪些部分并跳过不受影响的权重,从而加快训练进度)。此外,这些框架还提供并行功能,可通过分发计算过程来减少总体训练时间。但是,要实现上述优化,大多数框架要求开发人员完成一些额外工作:首先,提供网络图形式定义,然后“定图”并调整权重。网络定义可能极其庞大而复杂 (包含数百万个连接),通常必须手动构建。深度学习网络十分“笨重”,难以调试,因而很难在项目间复用代码。 这种复杂性可能会令初学者“无从下手”,对经验丰富的科研人员来说也是一项耗时的任务。AWS 在 MXNet 中尝试了一些更灵活易用的新方法定义和训练神经网络。Microsoft 也是开源项目 MXNet 的开发者,对部分新想法感兴趣。于是我们进行了沟通,结果发现双方抱持几乎相同的愿景:借助此类技术降低机器学习的复杂性,让更多的开发人员能够轻松发挥其强大威力。 Gluon 特点:动态图,快速迭代,可扩展训练 Gluon 包含四大创新。 友好的 API:可以使用简单、清晰、简洁的代码定义 Gluon 网络 – 相比某些更晦涩、更形式化的网络及相关加权评分函数定义方法,这更易于开发人员学习,理解难度大幅降低。 动态网络:Gluon 中的网络定义是动态的:它可以像任何其他数据结构一样“收缩和扩展”。这有别于更常见的形式化网络符号定义 (既深度学习框架要求必须保持网络定义不变,才能在训练期间有效地优化计算)。相比之下,动态网络更容易管理。借助 Gluon,开发人员可以在定义网络和算法时轻松混用快速的符号表示和更友好、动态的“命令式”定义。 […]

Read More