李抵非,田 地,胡雄偉
(1.吉林大學 儀器科學與電氣工程學院,長春130021;2.國家標準化管理委員會 標準信息中心,北京100088)
近年來隨著對深度學習領域研究的深入,已經證實通過擴大訓練樣本的數量和模型參數的規??梢杂行嵘P偷木龋?-3]。為了克服由于擴大訓練規模造成的時間成本問題,許多基于深度神經網絡的并行化計算方法被提出,其中大致分為兩類方法,一是采用集群的方式對深度神經網絡進行分布式訓練[4-5],二是利用圖形處理單元(GPU)特性進行并行加速[6-9]。采用GPU 計算的方法雖然有效地提升了模型的訓練效率,但是由于現階段顯卡顯存的限制和其不易擴展的特點,GPU 的運用還主要集中在訓練中、小規模深度神經網;使用大規模集群的方式可以訓練大型深度神經網,并取得了良好的效果,但所有訓練模型的副本以及參數需保存在存儲設備中,訓練過程中頻繁發生存儲設備的讀寫操作,I/O 的速率將會影響訓練的效率。
本文采用分布式內存計算的方式,使整個深度神經網絡的訓練過程運行在集群的分布式內存之上,既保證了深度神經網絡規??蓴U展又避免了I/O 讀寫速率對系統的影響,提高了訓練效率。
目前深度神經網絡模型存在很多種類,本文以深度信念網絡(Deep belief networks,DBNs)模型[10-12]為例,將其運行在分布式集群之上。DBNs是由多層限制玻爾茲曼機(RBM)堆疊形成,采用無監督貪婪逐層訓練的方式進行學習。DBNs 是一個概率生成模型,目的是建立可視層和隱藏層之間的聯合分布。

式中:v 和h 為可視層單元和隱藏層單元;E(v,h|θ)為系統所具備的能量表達式;Z(θ)為歸一化因子,θ={W,a,b};W 為可視層和隱藏層之間的權重;a 和b 分別是可視層和隱藏層的偏置向量。
由于RBM 層級內節點間無連接,各神經單元激活狀態是條件獨立,則第i 個可視單元和第j 個隱藏單元被激活的概率表達式如式(4)(5)所示:

根據Hinton 提出的對比散度[13]的方法,利用式(4)(5),使用訓練數據v0輸入系統,并通過k步吉布斯采樣對可視單元和隱藏單元進行重構。使用隨機梯度下降法訓練數據時,各參數更新的準則如式(6)~(8)所示:

式中:〈〉data表示關于分布p(h=1|v,θ)的數學期望;〈〉recon表示經過吉布斯采樣重構后關于分布p(h'=1|v,θ)的數學期望;ε 表示模型的學習速率。
為了使深度神經網絡模型能夠分布式地運行于集群之上,需要構建一個并行計算的框架。目前的分布式計算方式是采用MapReduce 架構來運行,在計算迭代的過程中需要不斷地與存儲設備發生讀寫操作。而如果采用分布式內存的方式來承載工作數據集,模型的計算和存儲都發生在分布式內存系統當中,則可以提升計算性能。采用集群分布式內存計算的結構能可擴展地在內存集群計算中緩存數據集,以縮短訪問時間,利于存在迭代過程的深度學習算法,節省了大量的I/O操作,提升了算法的效率。
集群的分布式內存計算架構采用主從模式,如圖1 所示。控制節點主要保存集群中計算節點信息,并建立任務調度機制、數據分片調度和追蹤機制,以及并行計算狀態追蹤機制;計算節點則通過與控制節點通信,開辟內存空間,創建任務線程池,運行控制節點分派的任務。
程序運行于分布式內存集群的流程大致可分為5 個階段:
(1)初始化集群管理程序。檢測集群可用CPU 和內存等狀態信息。集群管理程序是控制樞紐,可為后續計算任務分配資源。同時初始化任務調度器和任務追蹤器,其功能為分發任務以及收集任務反饋。
(2)初始化應用運算實例。依據用戶提交的程序描述創建分布式的數據集對象,計算數據集的分片,創建數據分片信息列表、數據分片之間依賴關系列表。依據數據的本地性原則,分配相應數據分片存儲于指定的計算節點之上。
(3)構建運算的有向無環圖(Directed acyclical graphs,DAG)。將運算過程中涉及到的map、sort、merge、shuffle 等計算過程以序列的方式增量累加成DAG 圖,而后依據DAG 圖將整個運算過程分解成多個任務集合[14]。
(4)任務調度器按照任務執行自頂向下的順序,將任務集合中的子任務通過集群管理器分發到指定的計算節點之上,每個任務對應著一個數據分片。如果任務失敗則重新發布。
(5)計算節點接收到任務后,為任務分配計算資源,創建進程池開始執行計算,并向控制節點反饋進程分配情況。
集群運行計算過程中需要保證任務的最優調度,即將任務分配到相應計算節點之上,該節點緩存了任務計算所需的數據分片,確保數據的本地性。同時當某個任務運行速度低于一定閾值時,則在其他節點之上重新開啟任務。
整個深度神經網絡分布式運行的總體結構如圖2 所示。系統中的所有數據都經過數據分片操作,圖2 中小方塊即代表一個數據分片,圖中的虛線框表示一個數據集,一個數據集由多個數據分片組成,數據分片分布于集群中多臺計算機內存之上。訓練數據保存在集群的分布式文件存儲系統當中,本文采用的是hadoop 分布式文件系統(HDFS)。如果訓練模型直接從HDFS 上面讀取數據,則會受到磁盤I/O 的限制,所以系統將一部分訓練數據用隨機采樣的方式緩存到集群的分布式共享內存當中,模型訓練的過程中直接從采樣數據集中提取數據。采樣數據集以固定的時間間隔從HDFS 文件系統中刷新采樣樣本集。

圖2 模型并行訓練結構Fig.2 model distributed training architecture
系統將深度信念網絡模型的所有參數構建成一個分布式的數據集。為了實現模型訓練的并行化,系統采用創建多個神經網絡模型副本的方式,同時訓練各副本模型,即使承載訓練任務的計算節點失效,也不會影響訓練的整體進程。每個副本也是由多個數據分片組成,利用分布式內存的速度優勢,提高模型的訓練速度。各副本結束訓練之后,將計算后的參數調整值異步地傳送給模型參數數據集,并向數據集申請新的參數,進行下一步訓練。由于參數數據集與模型副本都分布于集群的多臺機器上,副本與參數集的數據傳輸量即被分散,有效地緩解了計算節點之間的通信壓力。為了保證系統的穩定性,在模型的訓練過程中設置check point 機制,將模型中數據分片計算的過程信息,根據任務進度異步保存到HDFS,防止由于計算節點發生錯誤需重新運算的情況。
為了提高系統的魯棒性,采用Adagrad[15]自適應學習速率方法,隨著訓練的進行自動調整學習速率,學習速率如式(9)所示:

式中:εi,k為第i 個參數在第k 次迭代時的學習速率;Δwi,j為目標函數的梯度值;μ 為常數。
學習速率的計算僅與參數歷史梯度值的平方和有關,所以Adagrad 易于在每個參數服務器節點上單獨實現。
為了防止模型訓練過擬合,本文采用dropout方法[9]。模型訓練時隨機讓網絡某些隱藏層節點的權重不工作,但是它的權重保留下來參與下一輪訓練。每次有輸入時,網絡采樣一個隨機結構,這樣每個神經元都不能依賴于其他神經元的存在,使模型神經元間減少了相互作用,迫使神經元與其他神經元共同學習更多、更有用的特征。
試驗所使用的訓練樣本為CIFAR-10 圖片數據集。有60 000 張帶分類標簽的彩色圖片組成。圖片的分辨率為32×32。使用50 000 張圖片作為訓練集,10 000 張作為測試集。試驗集群由9臺虛擬機構成,其中1 臺控制節點,8 臺計算節點。每臺計算節點虛擬機包含8 核CPU、26 G 內存。
深度神經網絡包括:輸入層、四層堆疊限制玻爾茲曼機作為隱藏層和一個softmax 輸出層。層間采用全連接結構,模型包含超過1.2×106個的神經元,參數集大小約為110 M。
圖3 為分布式內存計算與傳統分布式訓練速率對比。由圖3 可以看出:采用分布式內存計算的方法訓練神經網絡模型,模型精度的變化更為陡峭,說明采用分布式內存計算的訓練方式能夠明顯提升模型的訓練速率。

圖3 分布式內存計算與傳統分布式訓練速率對比Fig.3 Comparison of distributed memory computing and traditional map-reduce
為了說明集群的可擴展性,通過遞增訓練節點數量來觀察集群對模型的加速比值變化。加速比值為單獨使用一個計算節點完成一批次采樣訓練所需的時間與使用K 臺計算節點所用時間的比值。
由圖4 可以看出:當集群不斷增加計算節點時,模型的訓練效率顯著提升,說明這種并行深度學習的方法具備良好的擴展性。

圖4 擴展節點對加速比的提升Fig.4 Speedup calculation by extending worker node
提出了一種分布式內存計算的方法,并應用于深度神經網絡的訓練,設計了深度神經網絡模型在分布式內存中的運行結構,以CIFAR-10 數據集為訓練樣本,完成對網絡模型的并行訓練。實驗結果表明,該方法能夠有效提升深度神經網絡的訓練速率,并具備良好的擴展性。理論上集群可以不斷擴展以提高訓練效率,直到節點間數據交換通信成為瓶頸,由于試驗環境的限制,本文無法給出進一步證實。
[1]Ciresan D C,Meier U,Gambardella L M,et al.Deep big simple neural nets excel on handwritten digit recognition[J].Neural Computation,2010(12):3207-3220.
[2]Coates A,Lee H L,Ng A Y.An analysis of single-layer networks in unsupervised feature learning[C]∥Proceeding of the 14th International Conference on Artificial Intelligence and Statistics,Fort Lauderdale,USA,2011:215-223.
[3]Hinton G E,Srivastava N,Krizhevsky A,et al.Improving neural networks by preventing co-adaptation of feature detectors[DB/OL].[2014-05-17].http://arxiv.org/abs/1207.0580.
[4]Raina R,Madhavan A,Ng A Y.Large-scale deep unsupervised learning using graphics processors[C]∥International Conference on Machine Learning,Montreal QC,Canada,2009:873-880.
[5]Le Q V,Monga R,Devin M,et al.Building high-level features using large scale unsupervised learning[C]∥International Conference on Acoustics,Speech and Signal,Vancouver,Canada,2013:8595-8598.
[6]Glorot X,Bordes A,Bengio Y.Domain adaptation for large-scale sentiment classification:a deep learning approach[C]∥Proceedings of the 28th International Conference on Machine Learning,Bellevue,WA,USA,2011:513-520.
[7]Bengio Y,Courville A C,Vincent P.Representation learning:a review and new perspectives[DB/OL].[2014-05-23].http://arxiv.org/abs/1206.5538.
[8]Ngiam J,Coates A,Lahiri A,et al.On optimization methods for deep learning[C]∥Proceedings of the 28th International Conference on Machine Learning,Bellevue,WA,USA,2011:265-272.
[9]Martens J.Deep learning via hessian-free optimization[C]∥Proceedings of the 27th International Conference on Machine Learning,Haifa,Israel,2010:735-742.
[10]Bengio Y,Courville A,Vincent P.Representation learning:a review and new perspectives[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2013,35(8):1798-1828.
[11]Hinton G,Deng L,Yu D,et al.Deep neural networks for acoustic modeling in speech recognition:The shared views of four research groups[J].Signal Processing Magazine,2012,29(6):82-97.
[12]Hinton G,Osindero S,Teh Y W.A fast learning algorithm for deep belief nets[J].Neural Computation,2006,18(7):1527-1554.
[13]Hinton G.A practical guide to training restricted Boltzmann machines[J].Momentum,2010,9(1):926.
[14]Zaharia M,Chowdhury M,Das T,et al.Resilient distributed datasets:a fault-tolerant abstraction for in-memory cluster computing[DB/OL].[2014-01-19].http://www.eecs.berkeley.edu/Pubs/TechRpts/2011/EECS-2011-82.pdf.
[15]Duchi J,Hazan E,Singer Y.Adaptive subgradient methods for online learning and stochastic optimization[J].Journal of Machine Learning Research,2011,12(7):2121-2159.