亚马逊AWS机器学习总监Alex Smola:如何用MXNet构建可拓展的深度学习框架?|AAAI 2017 亚马逊AWS机器学习总监Alex Smola:如何用MXNet构建可拓展的深度学习框架?|AAAI 2017 AI资讯 第1张

MXNet 在去年 11 月成为 Amazon AWS 的官方开源平台。在今天的 AAAI 2017 上,亚马逊 AWS 机器学习总监 Alex Smola 做了主题分享,介绍了如何利用 MXNet 构建一个可拓展的深度学习框架。雷锋网旗下AI科技评论对此做了全程报道。

Alex Smola 是 MXNet 主要作者李沐在 CMU 的博士导师,后者在 Smola 加入亚马逊期间一直在做 MXNet 开发和 AWS 上深度学习的应用,这也难怪在 Smola 演讲最开始的感谢名单上,第一个名字就是李沐。

那么,作为亚马逊的官方开源平台,MXNet 又是如何实现「又快又好」的目标呢?

Smola 指出,要构建一个这样集高效与个性化于一体的框架,首先不可避免地要涉及潜变量模型的设计。潜变量模型是一种结构方程模型,区别于显变量,指的是不能被直接观测、需要通过间接数据体现的指标。而它具有以下两种表现形式:

    首先是时间序列观察,包括了购物、点赞、App 的使用、邮箱、广告点击、查询及评分等。

    其次是用潜状态解释用户的行为。一个是基于非参模型的方法,系统能够数据构建用户画像,剔除存在误差的推断;第二点是基于深度神经网络的 RNN 还有 LSTM 及 GRU 等方法。

接下来有意思的地方在于,Smola 以今日头条的新闻应用为例,介绍了如何对用户参与度进行建模,主要涉及的是用户动态连续的数据收集,例如每日及每周的平均用户数;活跃用户数及注册用户的数量等。其中包括:

1. 用户从活跃变为「僵尸粉」的情况。

2. 模型用户在使用过程中的反馈。

3. 根据实际情况,还有一些其他因素,比如重大赛事可能会影响用户使用的频率;用户日常的使用习惯及先前的阅读偏好。

亚马逊AWS机器学习总监Alex Smola:如何用MXNet构建可拓展的深度学习框架?|AAAI 2017 亚马逊AWS机器学习总监Alex Smola:如何用MXNet构建可拓展的深度学习框架?|AAAI 2017 AI资讯 第2张

那么,根据用户使用的一个完整流程,我们可以设计如下的框架结构:

亚马逊AWS机器学习总监Alex Smola:如何用MXNet构建可拓展的深度学习框架?|AAAI 2017 亚马逊AWS机器学习总监Alex Smola:如何用MXNet构建可拓展的深度学习框架?|AAAI 2017 AI资讯 第3张

Smola 根据不同模型的预测结果,对复杂度进行比较,结果显示,DNN 与 LSTM 具有较低的分数,说明模型的复杂度较低。

虽然「预测」这个词指的是未来的事情,但是 Smola 以 Bruce Willis 的《虎胆龙威》为例强调,在实际训练过程中,开发者很可能犯这样的错误,即用过去的数据预测过去的事情。为了解决这一问题,Smola 表示需要将用户的专业度及兴趣,还有电影的新颖度及感染力考虑在内。

亚马逊AWS机器学习总监Alex Smola:如何用MXNet构建可拓展的深度学习框架?|AAAI 2017 亚马逊AWS机器学习总监Alex Smola:如何用MXNet构建可拓展的深度学习框架?|AAAI 2017 AI资讯 第4张

而从电影的评分来看,如果电影在当时提名了金球奖或者获得了其他电影奖项,那么该电影在短期内的评分会小幅上升,但在数月后又会恢复平均水平。这就说明,在进行数据预测的时候,系统需要剔除异常量以提高准确性,而这也是让预测模型变得更加高效好用的一个方法。

那么,一个好用的深度网络需要满足哪些条件?Smola 提及了如下几点:

亚马逊AWS机器学习总监Alex Smola:如何用MXNet构建可拓展的深度学习框架?|AAAI 2017 亚马逊AWS机器学习总监Alex Smola:如何用MXNet构建可拓展的深度学习框架?|AAAI 2017 AI资讯 第5张

首先,价格更低的 GPU 显然更具有竞争力,且网络的运行速度更慢。

其次,运行速度也受到以下两个因素的影响:

    机器与 GPU 的线性拓展;

    用 C++编写的单个机器运行效率;

最后一点在于简洁性。混合了声明式编程与指令式编程的系统能够融合二者的优点。

亚马逊AWS机器学习总监Alex Smola:如何用MXNet构建可拓展的深度学习框架?|AAAI 2017 亚马逊AWS机器学习总监Alex Smola:如何用MXNet构建可拓展的深度学习框架?|AAAI 2017 AI资讯 第6张

「在进行卷积神经网络训练的过程中,采用 MXNet 只需要 50 行代码,而 caffe 则需要 1000 行。」

那么在多 MXNet 上运行 Google Inception v3 模型时,它的表现又是如何呢?Smola 表示,从单个机器增加到 47 个机器的过程中,在超过 10 个机器的时候,V 的运行速度可以达到 TensorFlow 的两倍,而从图表上也能看到,在 100 个 GPU 时,Tensorflow 的运行速度明显放缓。

说了这么多 MXNet 的优点,不过这条上升的运行曲线并不是「一帆风顺」的。如果将坐标轴的比例尺放大,就会发现在 GPU 之间进行同步的时候,运行速度会出现短时间的下降。

最后,Smola 还介绍了两个基于亚马逊平台的开发工具,并在现场进行了操作演示。

Amazon Machine Image for Deep Learning;

AWS CloudFormation Template for Deep Learning.

如何搭建一个又快又好的可拓展深度学习框架呢?雷锋网认为,Smola 心里的答案,应该是「用 MXNet 就行啦」。

想了解 AAAI 2017上还有什么精彩演讲?敬请关注雷锋网(公众号:雷锋网)及 AI科技评论的相关报道。