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