0
本文作者: 奕欣 | 2017-02-07 10:20 |
MXNet 在去年 11 月成為 Amazon AWS 的官方開源平臺。在今天的 AAAI 2017 上,亞馬遜 AWS 機(jī)器學(xué)習(xí)總監(jiān) Alex Smola 做了主題分享,介紹了如何利用 MXNet 構(gòu)建一個(gè)可拓展的深度學(xué)習(xí)框架。雷鋒網(wǎng)旗下AI科技評論對此做了全程報(bào)道。
Alex Smola 是 MXNet 主要作者李沐在 CMU 的博士導(dǎo)師,后者在 Smola 加入亞馬遜期間一直在做 MXNet 開發(fā)和 AWS 上深度學(xué)習(xí)的應(yīng)用,這也難怪在 Smola 演講最開始的感謝名單上,第一個(gè)名字就是李沐。
那么,作為亞馬遜的官方開源平臺,MXNet 又是如何實(shí)現(xiàn)「又快又好」的目標(biāo)呢?
Smola 指出,要構(gòu)建一個(gè)這樣集高效與個(gè)性化于一體的框架,首先不可避免地要涉及潛變量模型的設(shè)計(jì)。潛變量模型是一種結(jié)構(gòu)方程模型,區(qū)別于顯變量,指的是不能被直接觀測、需要通過間接數(shù)據(jù)體現(xiàn)的指標(biāo)。而它具有以下兩種表現(xiàn)形式:
首先是時(shí)間序列觀察,包括了購物、點(diǎn)贊、App 的使用、郵箱、廣告點(diǎn)擊、查詢及評分等。
其次是用潛狀態(tài)解釋用戶的行為。一個(gè)是基于非參模型的方法,系統(tǒng)能夠數(shù)據(jù)構(gòu)建用戶畫像,剔除存在誤差的推斷;第二點(diǎn)是基于深度神經(jīng)網(wǎng)絡(luò)的 RNN 還有 LSTM 及 GRU 等方法。
接下來有意思的地方在于,Smola 以今日頭條的新聞應(yīng)用為例,介紹了如何對用戶參與度進(jìn)行建模,主要涉及的是用戶動態(tài)連續(xù)的數(shù)據(jù)收集,例如每日及每周的平均用戶數(shù);活躍用戶數(shù)及注冊用戶的數(shù)量等。其中包括:
1. 用戶從活躍變?yōu)椤附┦邸沟那闆r。
2. 模型用戶在使用過程中的反饋。
3. 根據(jù)實(shí)際情況,還有一些其他因素,比如重大賽事可能會影響用戶使用的頻率;用戶日常的使用習(xí)慣及先前的閱讀偏好。
那么,根據(jù)用戶使用的一個(gè)完整流程,我們可以設(shè)計(jì)如下的框架結(jié)構(gòu):
Smola 根據(jù)不同模型的預(yù)測結(jié)果,對復(fù)雜度進(jìn)行比較,結(jié)果顯示,DNN 與 LSTM 具有較低的分?jǐn)?shù),說明模型的復(fù)雜度較低。
雖然「預(yù)測」這個(gè)詞指的是未來的事情,但是 Smola 以 Bruce Willis 的《虎膽龍威》為例強(qiáng)調(diào),在實(shí)際訓(xùn)練過程中,開發(fā)者很可能犯這樣的錯誤,即用過去的數(shù)據(jù)預(yù)測過去的事情。為了解決這一問題,Smola 表示需要將用戶的專業(yè)度及興趣,還有電影的新穎度及感染力考慮在內(nèi)。
而從電影的評分來看,如果電影在當(dāng)時(shí)提名了金球獎或者獲得了其他電影獎項(xiàng),那么該電影在短期內(nèi)的評分會小幅上升,但在數(shù)月后又會恢復(fù)平均水平。這就說明,在進(jìn)行數(shù)據(jù)預(yù)測的時(shí)候,系統(tǒng)需要剔除異常量以提高準(zhǔn)確性,而這也是讓預(yù)測模型變得更加高效好用的一個(gè)方法。
那么,一個(gè)好用的深度網(wǎng)絡(luò)需要滿足哪些條件?Smola 提及了如下幾點(diǎn):
首先,價(jià)格更低的 GPU 顯然更具有競爭力,且網(wǎng)絡(luò)的運(yùn)行速度更慢。
其次,運(yùn)行速度也受到以下兩個(gè)因素的影響:
機(jī)器與 GPU 的線性拓展;
用 C++編寫的單個(gè)機(jī)器運(yùn)行效率;
最后一點(diǎn)在于簡潔性?;旌狭寺暶魇骄幊膛c指令式編程的系統(tǒng)能夠融合二者的優(yōu)點(diǎn)。
「在進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練的過程中,采用 MXNet 只需要 50 行代碼,而 caffe 則需要 1000 行?!?/p>
那么在多 MXNet 上運(yùn)行 Google Inception v3 模型時(shí),它的表現(xiàn)又是如何呢?Smola 表示,從單個(gè)機(jī)器增加到 47 個(gè)機(jī)器的過程中,在超過 10 個(gè)機(jī)器的時(shí)候,V 的運(yùn)行速度可以達(dá)到 TensorFlow 的兩倍,而從圖表上也能看到,在 100 個(gè) GPU 時(shí),Tensorflow 的運(yùn)行速度明顯放緩。
說了這么多 MXNet 的優(yōu)點(diǎn),不過這條上升的運(yùn)行曲線并不是「一帆風(fēng)順」的。如果將坐標(biāo)軸的比例尺放大,就會發(fā)現(xiàn)在 GPU 之間進(jìn)行同步的時(shí)候,運(yùn)行速度會出現(xiàn)短時(shí)間的下降。
最后,Smola 還介紹了兩個(gè)基于亞馬遜平臺的開發(fā)工具,并在現(xiàn)場進(jìn)行了操作演示。
Amazon Machine Image for Deep Learning;
AWS CloudFormation Template for Deep Learning.
如何搭建一個(gè)又快又好的可拓展深度學(xué)習(xí)框架呢?雷鋒網(wǎng)認(rèn)為,Smola 心里的答案,應(yīng)該是「用 MXNet 就行啦」。
想了解 AAAI 2017上還有什么精彩演講?敬請關(guān)注雷鋒網(wǎng)及 AI科技評論的相關(guān)報(bào)道。
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。