0
| 本文作者: 奕欣 | 2017-02-07 10:20 |

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. 根據實際情況,還有一些其他因素,比如重大賽事可能會影響用戶使用的頻率;用戶日常的使用習慣及先前的閱讀偏好。

那么,根據用戶使用的一個完整流程,我們可以設計如下的框架結構:

Smola 根據不同模型的預測結果,對復雜度進行比較,結果顯示,DNN 與 LSTM 具有較低的分數,說明模型的復雜度較低。
雖然「預測」這個詞指的是未來的事情,但是 Smola 以 Bruce Willis 的《虎膽龍威》為例強調,在實際訓練過程中,開發者很可能犯這樣的錯誤,即用過去的數據預測過去的事情。為了解決這一問題,Smola 表示需要將用戶的專業度及興趣,還有電影的新穎度及感染力考慮在內。

而從電影的評分來看,如果電影在當時提名了金球獎或者獲得了其他電影獎項,那么該電影在短期內的評分會小幅上升,但在數月后又會恢復平均水平。這就說明,在進行數據預測的時候,系統需要剔除異常量以提高準確性,而這也是讓預測模型變得更加高效好用的一個方法。
那么,一個好用的深度網絡需要滿足哪些條件?Smola 提及了如下幾點:

首先,價格更低的 GPU 顯然更具有競爭力,且網絡的運行速度更慢。
其次,運行速度也受到以下兩個因素的影響:
機器與 GPU 的線性拓展;
用 C++編寫的單個機器運行效率;
最后一點在于簡潔性。混合了聲明式編程與指令式編程的系統能夠融合二者的優點。

「在進行卷積神經網絡訓練的過程中,采用 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科技評論的相關報道。
雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知。