精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
(9)Large Scale Distributed Deep Networks 中譯文

大規模分布式深度網絡

Large Scale Distributed Deep Networks

Jeffrey Dean, Greg S. Corrado, Rajat Monga, Kai Chen, Matthieu Devin, Quoc V. Le,

Mark Z. Mao, Marc’Aurelio Ranzato, Andrew Senior, Paul Tucker, Ke Yang, Andrew Y. Ng

Google Inc., Mountain View, CA

 

摘要

最近關于無監督特征學習(unsupervised feature learning)和深度學習(deep learning)的工作表明,具有訓練大型模型能力的系統能夠顯著地提升深度神經網絡的訓練效果。在這篇文章中,我們針對的問題是利用多達10^4數量的CPU來訓練一個具有10^9數量的參數(parameter)的深度網絡。為了達到訓練的目的,我們開發了稱為DistBelief的軟件框架,其利用具有上千節點(譯者注:為了一致性,譯文中的節點均指機器,即計算節點;而神經網絡中的節點,均稱為單元)的計算集群來訓練大型模型。在該框架中,實現了兩個算法用于大規模分布訓練:(i)Downpour(譯者注:猜測這里的Downpour主要是指并行地參數更新,就像傾盆大雨中,雨點從多處同時落下一樣)SGDstochastic gradient descent),一個支持大量模型副本的異步隨機梯度下降過程。(ii) Sandblaster(譯者注:形容來自coordinator的命令像砂粒一樣噴向集群其他節點),一個支持多種批量(batch)計算的分布優化方法,包含了L-BFGS的分布式實現,Downpour SGDSandblaster L-BFGS 都具有提升系統擴展能力和加速深度網絡訓練的能力。我們已經成功地利用DistBelief訓練出一個比先前研究中提到的大30余倍的深度網絡模型,并且獲得了針對ImageNet(一個具有21K個分類和10M圖像視覺識別任務)的最先進的訓練效果。同時,我們還證明了,以上提及的技術能夠顯著地提升一個中等大小的,用作商用語音識別服務的深度網絡的訓練效果。盡管我們的這些技術主要用在大型神經網絡的訓練上,但是相關的算法同樣適用于任何基于梯度的機器學習算法。

 

 

1.介紹

深度學習和無監督特征學習給許多實際應用帶了新的巨大希望。它在包括語音識別[1, 2]、視覺物體識別[3, 4]和文本處理[5, 6]等不同領域上體現了最領先的性能優勢和效果。

先前研究已經證明,通過增加樣本數量和模型參數數量等不同手段,可以顯著地提升分類算法的最終精確度[3, 4, 7]。該結論掀起了研究可擴展的深度學習訓練和推斷算法和提高其適用性等優化方法的熱潮[7, 9]。近年來,在中等大小深度網絡的訓練上,一個重要的進步是因GPU的使用,使其變得更加的實用[1, 2, 3, 8]。但GPU眾所周知的缺陷是,當其內存(通常小于6G)無法存放下模型時,訓練的提升效果變得不再明顯。這時,為了有效地使用GPU,研究者往往通過減少樣本或變量規模的途徑使得CPUGPU之間的數據交換不在成為瓶頸。雖然數據或變量的減少對小規模問題(如針對于聲學模型的語音識別)有效,但對具有大量樣本和高維度變量的問題(如高分辨率圖像)將失去效果。

在本文中,我們提出了一個替代的方法,使用大規模的計算集群來分布地對深度網絡進行訓練和推斷。我們開發了一個既能提升節點內(通過多線程方式)又可提升節點間(通過消息傳遞)并行訓練能力的軟件框架,稱為DistBelief。它管理了如并行計算、同步化和通信等底層的細節。除了支持模型并行,DistBelief同時還支持數據并行,通過單一模型的多個分布副本的方式來優化同一目標。在該框架中,我們設計并實現了兩個用于大規模分布式訓練的新方法:i)Downpuur SGD,一個利用自適應學習速率和支持大量模型副本的異步隨機梯度下降過程;(ii)Sandblaster L-BFGSL-BFGS過程的一個分布式實現,其利用了數據和模型的并行(原作者注:我們利用Sandblaster方法實現了L-BFGS,但是Sandblaster同樣廣泛適用于其他批量方法的優化)。兩個方法相比較于常規的SGDL-BFGS方法都獲得了顯著的速度提升。

關于大規模非凸方法優化,我們的實驗呈現了一些出人意料的結果。首先,異步梯度下降,一個很少被用到非凸問題的方法,尤其是與Adagrad[10]自適應學習速率結合時,用以訓練深度網絡的效果很好。其次,當計算資源充足時,L-BFGS方法能夠和許多SGD的變種方法相匹敵,甚至優于后者。

對于深度學習的特定應用,我們提出了兩項發現:前面提及的分布式優化方法,不僅可以加速中等規模模型的訓練,同時它也可以訓練規模大于想象的模型。為了證明第一點,我們利用分布式集群來訓練中等大小語音識別模型,獲得了與GPU相同的分類精度,而耗時僅是后者的1/10。為了證明第二點,我們訓練了一個具有1G數量參數的大型神經網絡,并用訓練結果把ImageNet(計算機視覺領域最大的數據庫之一)判別分類結果提升到了最先進的水平。

 

 

2.前期工作

 

近年來,用于商業和學術的機器學習數據集呈空前增長的趨勢。因此,一些研究者開始探索可擴展的機器學習算法來處理這些泛洪數據[11, 12, 13, 14, 15, 16, 17]。但大量的研究仍著眼于線性凸模型[11, 12, 17]。在凸模型中,分布式梯度計算自然是第一步,但是有時因為同步的問題會遭遇訓練速度減慢。針對該問題,已經有一些有效果的工作,如異步隨機梯度下降算法中的無鎖參數更新(如Hogwild![19])。不幸的是,將這些方法擴展到的非凸情況的研究,如處理訓練深度網絡中遇到的問題,還是一片未知的領域。特別地,在存在多個局部最小解的情況下,是否能夠使用參數平均或者執行密集的異步參數更新方法,還是未知的問題。

在深度學習范疇中,大多數工作仍然集中在利用單節點訓練較小規模模型(如Theano[20])上。關于向上擴展深度學習的一些有意思的建議是,利用GPU來訓練多個小型模型,然后將分別的預測結果取平均[21],或者修改標準的深度網絡使其能夠從本質上并行化。而與這些前期工作不同,我們關注于擴展深度網絡用于訓練具有10^9參數數量的超大模型,同時避免給模型形式引入限制。在分布式擴展方面,模型的并行,其思想和[23]類似,是一個主要的組成部分,同時其也必須和巧妙的分布優化方法相結合以利用數據的并行性。

我們也考慮了用一些現有的大規模計算工具,如MapreduceGraphLab等來處理大規模深度學習。我們發現為數據并行處理而設計的Mapreduce,極其不適合深度網絡訓練中固有的迭代計算;而用于通用(通常是無結構的)圖計算的GraphLab,同樣沒有利用深度網絡中典型的分層圖結構來提升計算效率。

 Large <wbr>Scale <wbr>Distributed <wbr>Deep <wbr>Networks <wbr>中譯文

1DistBelief中模型并行的一個例子,描述了一個局部連通的五層深度神經網絡,被劃分到四個節點上(藍色矩形)。只有和跨越劃分邊界的連接邊(粗線)相連的單元(Unit)需要在機器間傳輸其狀態,即使單元和多條跨越邊界的邊相連,也只需傳輸一次其狀態到其他機器。對于每個劃分區(節點)而言,其內部單元的計算被并行指派到所有CPU上。

 

 

3.模型并行

為了使超大規模深度網絡的訓練變得容易,我們開發了軟件框架——DistBelief,用以支持神經網絡的并行計算和分層圖形模型。用戶只需定義發生在每個單元上的計算過程以單元在向上傳遞和向下傳遞(原作者注:對于神經網絡而言,“向上”和“向下”指的是“前饋”和“反向傳播”,而對于隱式Markov模型,它們與“前向”和“后向”意思更相近)時需發送的消息。對于大型模型,用戶可能會將模型加以劃分(如圖1所示),使得不同節點的計算任務被分配到了不同機器上。DistBelief自動地利用CPU資源將節點內計算并行化,同時它還管理了底層通信、同步化和在訓練和推斷時的機器間數據傳輸。

將深度網絡分布到多個機器上所帶來的性能提升主要取決于模型的連通結構和計算需求。具有大量參數或高計算需求的模型通過增加CPU和內存數量通常可以提升訓練速度,直到增加到通信開銷成為系統的瓶頸。我們已成功地在144個劃分(機器)上運行DistBelief框架,且獲得了顯著的性能提升,同時在816個劃分上運行的一個中等大小模型,也獲得了很好的效果(請參考第5節中模型并行化基準測試中的實驗結果)。顯然地,局部連通的網絡模型,因為需要更少的網絡通信,所以比全連通網絡模型更易于分布化。導致性能退化的一個主要原因是因不同機器上處理時間的不同,導致大量的機器在等待一個或單個節點完成本階段任務(譯者注:和MapReduceMap階段的長尾問題類似)。盡管如此,對于我們最大的模型來講,我們仍可以高效地用總共有512CPU 32臺機器(每臺機器平均使用16CPU的計算資源)來訓練單個神經網絡。當和下一節中講到的利用模型多副本方法的分布式優化算法相結合時,將使得在多達10KCPU數量上訓練單個網絡成為可能,從而進一步減少總的訓練時間。

 

4.分布式優化算法

DistBelief框架中的并行計算方法使我們能夠部署和運行比前期工作中提到的大得多的神經網絡模型。但是為了在合理時間內訓練如此規模的模型,這就要求我們不僅需實現單個DistBelief實例內的并行,而且需要將訓練任務分發到多個DistBelief實例。在本節中,我們將具體闡述這第二級的并行,即采用多個DistBelief模型的實例(或副本),同時來達到一個優化目標。

 

Large <wbr>Scale <wbr>Distributed <wbr>Deep <wbr>Networks <wbr>中譯文

2.左:Downpour SGD,模型的副本采用異步方式從參數服務器(Parameter Server)中獲取參數w和上傳Large <wbr>Scale <wbr>Distributed <wbr>Deep <wbr>Networks <wbr>中譯文

到參數服務器。右:Sandblaster L-BFGS:單個協調器(Coordinator)實例發送簡短消息(message)到模型副本和參數服務器以協調批量優化過程。

 

下面我們來對這兩個分布優化方法做比較:Downpour SGD是在線方法,而L-BFGS是批量方法。兩方法中模型副本都利用了中心分割化服務器組的概念來共享參數,也都利用了每個模型副本中DistBelief的并行性。但更重要的是,對不同副本的處理時間的不同,甚至整個模型副本的失效、移除和重啟等情況都在兩方法的考慮范圍之內。

 

4.1 Downpour SGD

隨機梯度下降(SGD)方法,應該是最常用的訓練深度神經網絡的優化方法[26, 27, 3]。但不幸的是,傳統SGD方法本質上的順序性,使得在大型數據集下變得不再適用,因為這種完全串行方式所需要的機器間數據移動是非常耗時的。

為了將SGD應用到大數據集上,我們提出了Downpour SGD,一個使用單個DistBelief模型的多個分布副本的異步隨機梯度下降變種。它的基本方法如下:將訓練集劃分若干子集,并對每個子集運行一個單獨的模型副本。模型副本之間的通信均通過中心參數服務器組,該參數服務器組維護了模型參數的當前狀態,并分割到多臺機器上(例如,如果我們參數服務器組有10個節點,那么每個節點將負責存儲和更新模型參數的1/10,如圖2所示)。該方法在兩個方面體現異步性:(i)模型副本之間運行獨立,(ii)參數服務器組各節點之間同樣是獨立的。

考慮Downpour SGD的一個最簡單的實現,在處理每個mini-batch(譯者注:小型批量)之前,模型副本都會向參數服務器請求最新的模型參數。因為DistBelief框架也是分布在多臺機器上,所以其框架的每個節點只需和參數服務器組中包含和該節點有關的模型參數的那部分節點進行通信。在DistBelief副本獲得更新后的模型參數后,運行一次mini-batch樣本來計算參數的梯度,并推送到參數服務器,以用于更新當前的模型參數值。

可以通過設定每Large <wbr>Scale <wbr>Distributed <wbr>Deep <wbr>Networks <wbr>中譯文mini-batch操作向參數服務器獲取一次更新后的參數和每Large <wbr>Scale <wbr>Distributed <wbr>Deep <wbr>Networks <wbr>中譯文mini-batch操作推送一次梯度更新到參數服務器(這里Large <wbr>Scale <wbr>Distributed <wbr>Deep <wbr>Networks <wbr>中譯文不一定和Large <wbr>Scale <wbr>Distributed <wbr>Deep <wbr>Networks <wbr>中譯文相等)。事實上,獲取參數,推送梯度和處理訓練樣本三種操作,可以以三個采用弱同步的線程實現(參見附錄中的偽代碼)。為了簡單起見,同時也是為了和傳統SGD方法相比較,在下面的實驗中,我們設定Large <wbr>Scale <wbr>Distributed <wbr>Deep <wbr>Networks <wbr>中譯文

在處理機器失效方面,Downpour SGD比標準(同步)SGD要魯棒。對于同步SGD來講,如果一臺機器失效,整個訓練過程將會延時;但是對于異步SGD來講,如果某個模型副本的一臺機器失效,其他模型副本仍然繼續處理樣本并更新參數服務器中的模型參數。另一方面,Downpour SGD帶來的多種異步處理形式給優化過程帶來了進一步的隨機性。這里面最顯而易見的是,模型實例最可能是使用一個稍微過時的參數來計算梯度,因為這時其他的副本可能已經更新了參數服務器上的參數。但是,除此之外還有其他隨機的來源:因為參數服務器組的每臺機器是行為獨立的,所以無法保證在給定時間點上,每個節點的參數被更新的次數相同,或者以同樣的順序被更新。更進一步的,因為模型副本使用不同的線程來獲取參數和推送梯度值,故在同一時間戳上,單個副本內的參數將有額外的稍微不一致的現象。盡管對于非凸問題的這些操作的安全性缺乏理論基礎,但是在實踐中,我們發現放松一致性要求的做法是相當有效的。

我們發現,另外一項能極大提高Downpour SGD魯棒性的技術是使用Adagrad[10]自適應學習速率方法。與使用固定的值(如圖2中的η)作為學習速率的方式不同,Adagrad的每個參數使用單獨的自適應學習速率。假設Large <wbr>Scale <wbr>Distributed <wbr>Deep <wbr>Networks <wbr>中譯文是第i個參數在第K次迭代時的學習速率,Large <wbr>Scale <wbr>Distributed <wbr>Deep <wbr>Networks <wbr>中譯文是其梯度值,那么:

Large <wbr>Scale <wbr>Distributed <wbr>Deep <wbr>Networks <wbr>中譯文

可以看出,因為學習速率的計算僅與參數歷史梯度值的平方和有關,所以Adagrad易于在每個參數服務器節點上單獨實現。所有學習速率共享的縮放常量因子γ,通常大于(可能有一個數量級)不使用Adagrad情況下,采用固定學習速率的最優值。Adagrad的使用能夠增加并發訓練的模型副本數量,同時,采用“熱啟動”(即在啟動其他副本之前,用單個模型來訓練參數)的模型訓練方法,幾乎消除了在Downpour SGD中可能會出現的穩定性問題(參見第5節的測試結果)。

 

4.2 Sandblaster L-BFGS

已經證實批量處方法在小型深度網絡的訓練上效果很好[7]。為了將這些方法運用到大型模型和大型數據集上,我們引入了Sandblaster批量優化框架,同時討論了L-BFGS在該框架的一個實現。

Sandblaster的主要思路是將參數的存儲和操作分布化,算法(如L-BFGS)的核心位于協調器(coordinator)中(如圖2)。該協調器并不直接獲取模型參數,相反地,它發出一系列命令(如內積,向量縮放,系數相關加法,乘法)到參數服務器節點,并且這些命令能在節點范圍內執行。一些額外的信息,如L-BFGS的歷史數據緩存,同樣保存在計算出它的參數服務器節點上。這使得運行大型模型(10億級參數)成為現實,而且不會因傳輸參數和梯度過度集中在一個節點上而導致性能下降。

在典型的L-BFGS的并行實現中,數據被分布到許多機器上,每個機器負責對樣本數據的一個特定的子集計算梯度,而后梯度值被傳輸回中心服務器(或者通過樹形結構來聚合[16])。因為許多方法都需要等待最慢的機器處理完畢,所以它并不能很好地擴展到大型共享集群中。為了解決該(擴展性)問題,我們采用了如下的負載均衡的方案:協調器分配給這N個模型副本一小部分的任務量,并且該計算任務遠小于總批量的Large <wbr>Scale <wbr>Distributed <wbr>Deep <wbr>Networks <wbr>中譯文 ,每當副本完成計算處于閑置狀態時,立即給其分配新的計算任務,如此下去。為了在整個批量計算的最后階段進一步優化慢速副本的任務處理,協調器調度最快結束的副本同時計算未完成的任務,從最先結束的副本處取得計算結果。該方案和MapReduce中的“備份任務”的使用相類似[24]。數據預取方式和通過將順序數據傳輸到同一生產者以提高數據親和性的方法一道,使得數據的獲取不再是問題。和Downpour SGD中和參數服務器之間的高頻率,高吞吐參數同步方式相反,Sandblaster中的計算者僅僅需在每次批處理的開始階段獲取參數,并且只需在極少的結束部分(用以免遭備份失效和重啟)處需要傳輸梯度到參數服務器。

 

5.測試

我們用兩個不同的深度學習問題來衡量了我們設計的優化算法:(i)靜態圖像的物體識別和(ii)語音識別的聲學處理。

語音識別任務是將一小段音頻的中心區域(或幀)歸類為數千種類型之一。我們使用了一個五層的深度網絡:四個隱藏層,每個有2560個單元,并以sigmoid為激勵函數;一個有8192個單元的softmax輸出層。輸入層是11個長度為25ms連續的相互重疊的語音,每個由40個對數動能值表示。層與層之間是全連接的,因此整個網絡的參數數量有42M。我們用1.1G個弱標記樣本集來訓練模型,并且用保留的部分樣本做測試集來衡量精確度。簡單深度網絡的配置和訓練過程請參照[28]

對于可視物體識別,我們訓練了一個更大的局部區域連通的神經網絡,并作用于ImageNet的有1.6*10^7圖像的數據集上,每個圖像被縮放到100X100像素大小。整個網絡有三個階段,每個階段都包含了過濾,池化,局部對比度歸一化等操作,過濾層的每一個單元都和其前一層的10X10的小塊圖像相連接。我們的基礎設施允許多個單元都和同一小塊圖像相連接,我們的實驗中,同一連接單元數量從8增加到36不等。輸出層由2.1*10^4個一對多模式的logistic分類器組成,每個分別代表ImageNet的一個物體種類。相似的深度網絡配置和訓練過程請參照[30]

 

模型并行基準測試

為了測試DistBelief模型的并行性擴展,實驗中以運行單個模型實例的劃分(機器)數量作為變量,我們測量了用簡單SGD訓練處理單個mini-batch的平均時間。在圖3中,我們通過計算訓練的平均加速比來量化N個節點對并行化的影響:使用單個節點訓練花費的時間對使用N個節點訓練花費的時間的比值。模型中推斷過程的加速比是相似的,因而沒有顯示出來。

中等大小的語音模型在8個機器節點上運行是最快的,相比于單個節點,加速比大約是2.2(每臺機器配置其使用不超過20CPU來訓練模型)。將模型劃分在大于8個機器節點上實際上會減緩訓練過程,因為模型的全連通結構使得此時網絡開銷開始起決定性因素,同時節點的增加使得每個節點的計算量也相應地減少。

Large <wbr>Scale <wbr>Distributed <wbr>Deep <wbr>Networks <wbr>中譯文

3:四個不同規模的深度網絡使用單個DistBelief實例訓練在集群機器不同規模下的加速比。具有較多參數的模型在機器增加時比較少參數模型獲得更高的加速比。

Large <wbr>Scale <wbr>Distributed <wbr>Deep <wbr>Networks <wbr>中譯文
4:左圖:采用不同的優化方法,在(在一部分訓練集)上的訓練精度。右圖:訓練時間的變化下,測試集的分類精度的變化曲線。Downpour SGDSandblaster實驗均采用了10小時平凡SGD熱啟動方式來初始化。


相反地,比語音識別模型規模更大,且具有局部連通性的圖像模型,能夠通過持續給每個模型副本增加節點數量,來提升加速比。可以看出,具有1.7*10^9個參數的最大模型加速比最高,在使用了81個節點的情況下,獲了12倍的加速比。對于大型模型來講,通過持續增加機器數量始終能提升訓練速度,但是獲得的性能回報逐漸變少。

優化方法的比較:為了衡量提出的分布優化方式的性能,我們在不同的配置下,運行前面提及的語音模型。考慮兩種基準方式(譯者注:作為比較的靶對象):(i)用傳統(單個副本)SGD方法訓練DistBelief模型(在8個劃分上),(ii)CUDA[28]GPU上訓練與(i)中同樣的模型。三個和基準方式相比較的分布優化方法是:(i)固定學習速率的Downpour SGD(ii)使用Adagrad自適應學習速率的Downpour SGD(iii)Sandblaster L-BFGS

4說明了對于不同的優化方法,以訓練時間作為分類的性能時的模型比較。我們的目標是忽略資源要求下,在最短的訓練時間內,獲得最佳的測試集分類精度。傳統單副本的SGD(黑色曲線)是最慢速的。具有20個副本的Downpour SGD方法(藍色曲線)在此基礎上獲得了顯著的提升。20個副本的Downpour SGDAdagrad相結合(橙色曲線)是可以被認為是中等速率的,而使用了2000個模型副本的Sandblaster L-BFGS更加快速(綠色曲線)。但是,最快的是200個模型副本并和Adagrad相結合的Downpour SGD方法(紅色曲線)。可見,只要供給足夠的CPU資源,Sandblaster L-BFGSDownpour SGD方法對模型的訓練都能從本質上快于高性能GPU

盡管我們沒有限制以上實驗的資源使用,但是我們可以考慮這些優化方法是如何用硬件資源來換取性能提升的。將測試集精度設定為固定值(16%),在改變機器數量和CPU數量的條件下,測試上述方法達到該精度所需訓練時間,以此方式來分析資源使用和性能的關系,如圖5。每條曲線的四個點其中之一對應于圖4中的訓練配置,其他三個點是替代的配置。

Large <wbr>Scale <wbr>Distributed <wbr>Deep <wbr>Networks <wbr>中譯文
5:在不同機器數量(左圖)和CPU數量(右圖)下,幾種優化策略達到固定精度值(16%)所花費的時間

 

在此坐標圖中,距原點較近的點更優,因為它們在更少硬件資源的條件下,花費的訓練時間更少。從這個角度上講,使用AdagradDownpour SGD方法看起來是最好的權衡:對于任意固定機器數量或CPU數量條件下,該方法比Downpour SGDSandblaster L-BFGS花費更少的時間達到精度目標。對于任意給定達到精度目標的訓練時間,使用AdagradDownpour SGDSandblaster L-BFGS使用更少的資源,并且在多數情況下,使用固定學習速率的Downpour SGD甚至都不能在最后期限內完成訓練目標。Sandblaster L-BFGS看起來還能通過持續增加CPU數量來提高加速比,表明在極其大的(如3*10^4CPU使用量)資源使用條件下,應該會獲得最快的訓練時間。

 

應用到ImageNet

先前的實驗證明了,我們的技術可以加速具有10^7參數數量的神經網絡訓練。但是,對于這些基于集群的分布式優化方法來講,最有價值的優點,是它能擴展到遠大于單個機器能夠容納得下的模型,更不用說單個GPU了。為了測試訓練大型神經網絡的能力,我們使用Downpour SGD訓練了之前提及的具有1.7*10^9個參數的圖像模型,用于分類任務。正如[30]中的細節描述,在ImageNet分類任務中,這個網絡的訓練結果獲得了大約錯誤率15%交叉驗證(Cross-Validation)的分類精度,比我們所已知的先前最高的精度提高了60%多。

 

6.結論

在這篇文章中,我們介紹了DistBelief,一個深度網絡的分布并行訓練的框架,并在該框架中發現了一些有效的分布優化策略。我們提出了Downpour SGD,一個高度異步的SGD變種算法,用以訓練非凸的深度學習模型,其結果出乎意料的好。Sandblaster L-BFGS L-BFGS的分布式實現,其與SGD相比具有競爭力。同時,對網絡帶寬的高效利用,使得其能夠擴展到更大數量的并發線程來訓練同一模型。這就是說,當具有2000數量CPU或更少時,Downpour SGDAdagrad自適應學習速率方法的結合是最有效的方法。

Adagrad方法本身不是為異步SGD的使用而設計的,并且該方法最典型的應用也不是在非凸問題上。但是,在高度非線性的深度網絡中,兩者的結合的效果卻如此的好。我們推測,在面對劇烈的異步更新時,Adagrad自動地對不穩定參數起到了穩定的效果,并且很自然地根據不同的深度網絡層數的變化來調整學習速率。

實驗結果表明,即使在中等規模的模型訓練上,使用我們的大規模(分布式)方法,集群方法也比GPU要快,并且沒有GPU對模型規模的限制。為了證明其訓練更大模型的能力,我們通過訓練一個超過10^9數量參數的模型,在ImageNet物體識別上獲得了比先前最優的更好的精度水平。

 

Acknowledgments

The authors would like to thank Samy Bengio, Tom Dean, John Duchi, Yuval Netzer, Patrick Nguyen, Yoram Singer, Sebastian Thrun, and Vincent Vanhoucke for their indispensable advice, support, and comments.

 

References

[1]G. Dahl, D. Yu, L. Deng, and A. Acero. Context-dependent pre-trained deep neural networks for large vocabulary speech recognition. IEEE Transactions on Audio, Speech, and Language Processing, 2012.

[2]G. Hinton, L. Deng, D. Yu, G. Dahl, A. Mohamed, N. Jaitly, A. Senior, V. Vanhoucke, P. Nguyen, T. Sainath, and B. Kingsbury. Deep neural networks for acoustic modeling in speech recognition. IEEE Signal Processing Magazine, 2012.

[3] D. C. Ciresan, U. Meier, L. M. Gambardella, and J. Schmidhuber. Deep big simple neural nets excel on handwritten digit recognition. CoRR, 2010.

[4] A. Coates, H. Lee, and A. Y. Ng. An analysis of single-layer networks in unsupervised feature learning. In AISTATS 14, 2011.

[5] Y. Bengio, R. Ducharme, P. Vincent, and C. Jauvin. A neural probabilistic language model. Journal of Machine Learning Research, 3:1137–1155, 2003.

[6] R. Collobert and J. Weston. A unified architecture for natural language processing: Deep neural networks with multitask learning. In ICML, 2008.

[7] Q.V. Le, J. Ngiam, A. Coates, A. Lahiri, B. Prochnow, and A.Y. Ng. On optimization methods for deep learning. In ICML, 2011.

[8] R. Raina, A. Madhavan, and A. Y. Ng. Large-scale deep unsupervised learning using graphics processors. In ICML, 2009.

[9] J. Martens. Deep learning via hessian-free optimization. In ICML, 2010.

[10] J. C. Duchi, E. Hazan, and Y. Singer. Adaptive subgradient methods for online learning and stochastic optimization. Journal of Machine Learning Research, 12:2121–2159, 2011.

[11] Q. Shi, J. Petterson, G. Dror, J. Langford, A. Smola, A. Strehl, and V. Vishwanathan. Hash kernels. In AISTATS, 2009.

[12] J. Langford, A. Smola, and M. Zinkevich. Slow learners are fast. In NIPS, 2009.

[13] G. Mann, R. McDonald, M. Mohri, N. Silberman, and D. Walker. Efficient large-scale distributed training of conditional maximum entropy models. In NIPS, 2009.

[14] R. McDonald, K. Hall, and G. Mann. Distributed training strategies for the structured perceptron. In NAACL, 2010.

[15] M. Zinkevich, M. Weimer, A. Smola, and L. Li. Parallelized stochastic gradient descent. In NIPS, 2010.

[16] A. Agarwal, O. Chapelle, M. Dudik, and J. Langford. A reliable effective terascale linear learning system. In AISTATS, 2011.

[17] A. Agarwal and J. Duchi. Distributed delayed stochastic optimization. In NIPS, 2011.

[18] C. H. Teo, Q. V. Le, A. J. Smola, and S. V. N. Vishwanathan. A scalable modular convex solver for regularized risk minimization. In KDD, 2007.

[19] F. Niu, B. Retcht, C. Re, and S. J. Wright. Hogwild! A lock-free approach to parallelizing stochastic gradient descent. In NIPS, 2011.

[20] J. Bergstra, O. Breuleux, F. Bastien, P. Lamblin, R. Pascanu, G. Desjardins, J. Turian, D. Warde-Farley, and Y. Bengio. Theano: a CPU and GPU math compiler. In SciPy, 2010.

[21] D. Ciresan, U. Meier, and J. Schmidhuber. Multi-column deep neural networks for image classification. Technical report, IDSIA, 2012.

[22] L. Deng, D. Yu, and J. Platt. Scalable stacking and learning for building deep architectures. In ICASSP, 2012.

[23] A. Krizhevsky. Learning multiple layers of features from tiny images. Technical report, U. Toronto, 2009.

[24] J. Dean and S. Ghemawat. Map-Reduce: simplified data processing on large clusters. CACM, 2008.

[25] Y. Low, J. Gonzalez, A. Kyrola, D. Bickson, C. Guestrin, and J. Hellerstein. Distributed GraphLab: A framework for machine learning in the cloud. In VLDB, 2012.

[26] L. Bottou. Stochastic gradient learning in neural networks. In Proceedings of Neuro-N??mes 91, 1991.

[27] Y. LeCun, L. Bottou, G. Orr, and K. Muller. Efficient backprop. In Neural Networks: Tricks of the trade. Springer, 1998.

[28] V. Vanhoucke, A. Senior, and M. Z. Mao. Improving the speed of neural networks on cpus. In Deep Learning and Unsupervised Feature Learning Workshop, NIPS 2011, 2011.

[29] J. Deng, W. Dong, R. Socher, L.-J. Li, K. Li, and L. Fei-Fei. ImageNet: A Large-Scale Hierarchical

Image Database. In CVPR, 2009.

[30] Q.V. Le, M.A. Ranzato, R. Monga, M. Devin, K. Chen, G.S. Corrado, J. Dean, and A.Y. Ng. Building high-level features using large scale unsupervised learning. In ICML, 2012.

 

7.附錄

出于完整性考慮,這里我們給出了Downpour SGD算法中模型副本(客戶端)和Sandblaster L-BFGS算法的偽代碼。

Downpour SGD(客戶端):

 

 Large <wbr>Scale <wbr>Distributed <wbr>Deep <wbr>Networks <wbr>中譯文


Sandblaster是分布式批量方法的優化框架。其本質的概念是將分布式的操作分解為DistBelief參數服務器單節點內的計算。舉例說明,假設我們的模型有10^9個參數,參數服務器組有10個節點,因此每個節點上有1/10的參數。可以將L-BFGS分解為一系列的向量數乘和內積操作,而且每一個向量都是10^9維的。某個節點始終負責L-BFGS中向量的前1/10,而另外一個節點負責向量的下一個1/10,如此下去,最后一個節點負責最后1/10部分,那么可以證明,向量的數乘(Large <wbr>Scale <wbr>Distributed <wbr>Deep <wbr>Networks <wbr>中譯文)和內積(Large <wbr>Scale <wbr>Distributed <wbr>Deep <wbr>Networks <wbr>中譯文)操作使用可以以分布式的樣式實現,并且只花費很少的通信開銷,任何中間向量結果都以分布式的樣式存儲在節點中,而任何中間標量結果可以方便地發送給其他所有節點。Large <wbr>Scale <wbr>Distributed <wbr>Deep <wbr>Networks <wbr>中譯文



 

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
分布式深度學習平臺DistBelief和TensorFlow
橫向對比三大分布式機器學習平臺:Spark、PMLS、TensorFlow
分布式機器學習
深度學習利器:分布式TensorFlow及實例分析
關于pylearn2的一些。
大數據下的邏輯回歸訓練模型方法論
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 定南县| 南宫市| 周口市| 关岭| 攀枝花市| 嵊州市| 玉门市| 淳安县| 策勒县| 望奎县| 大竹县| 和顺县| 从化市| 科技| 青阳县| 华宁县| 林西县| 舞钢市| 迭部县| 微博| 温州市| 长兴县| 交口县| 祁门县| 登封市| 海南省| 通江县| 岚皋县| 房产| 太原市| 延寿县| 海安县| 瑞安市| 龙胜| 黔东| 祁连县| 从江县| 都兰县| 沂源县| 舟山市| 忻州市|