• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于分布式內(nèi)存計(jì)算的深度學(xué)習(xí)方法

      2015-06-13 07:30:08李抵非胡雄偉
      關(guān)鍵詞:分片內(nèi)存集群

      李抵非,田 地,胡雄偉

      (1.吉林大學(xué) 儀器科學(xué)與電氣工程學(xué)院,長春130021;2.國家標(biāo)準(zhǔn)化管理委員會 標(biāo)準(zhǔn)信息中心,北京100088)

      近年來隨著對深度學(xué)習(xí)領(lǐng)域研究的深入,已經(jīng)證實(shí)通過擴(kuò)大訓(xùn)練樣本的數(shù)量和模型參數(shù)的規(guī)??梢杂行嵘P偷木龋?-3]。為了克服由于擴(kuò)大訓(xùn)練規(guī)模造成的時(shí)間成本問題,許多基于深度神經(jīng)網(wǎng)絡(luò)的并行化計(jì)算方法被提出,其中大致分為兩類方法,一是采用集群的方式對深度神經(jīng)網(wǎng)絡(luò)進(jìn)行分布式訓(xùn)練[4-5],二是利用圖形處理單元(GPU)特性進(jìn)行并行加速[6-9]。采用GPU 計(jì)算的方法雖然有效地提升了模型的訓(xùn)練效率,但是由于現(xiàn)階段顯卡顯存的限制和其不易擴(kuò)展的特點(diǎn),GPU 的運(yùn)用還主要集中在訓(xùn)練中、小規(guī)模深度神經(jīng)網(wǎng);使用大規(guī)模集群的方式可以訓(xùn)練大型深度神經(jīng)網(wǎng),并取得了良好的效果,但所有訓(xùn)練模型的副本以及參數(shù)需保存在存儲設(shè)備中,訓(xùn)練過程中頻繁發(fā)生存儲設(shè)備的讀寫操作,I/O 的速率將會影響訓(xùn)練的效率。

      本文采用分布式內(nèi)存計(jì)算的方式,使整個(gè)深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程運(yùn)行在集群的分布式內(nèi)存之上,既保證了深度神經(jīng)網(wǎng)絡(luò)規(guī)??蓴U(kuò)展又避免了I/O 讀寫速率對系統(tǒng)的影響,提高了訓(xùn)練效率。

      1 深度神經(jīng)網(wǎng)絡(luò)模型

      目前深度神經(jīng)網(wǎng)絡(luò)模型存在很多種類,本文以深度信念網(wǎng)絡(luò)(Deep belief networks,DBNs)模型[10-12]為例,將其運(yùn)行在分布式集群之上。DBNs是由多層限制玻爾茲曼機(jī)(RBM)堆疊形成,采用無監(jiān)督貪婪逐層訓(xùn)練的方式進(jìn)行學(xué)習(xí)。DBNs 是一個(gè)概率生成模型,目的是建立可視層和隱藏層之間的聯(lián)合分布。

      式中:v 和h 為可視層單元和隱藏層單元;E(v,h|θ)為系統(tǒng)所具備的能量表達(dá)式;Z(θ)為歸一化因子,θ={W,a,b};W 為可視層和隱藏層之間的權(quán)重;a 和b 分別是可視層和隱藏層的偏置向量。

      由于RBM 層級內(nèi)節(jié)點(diǎn)間無連接,各神經(jīng)單元激活狀態(tài)是條件獨(dú)立,則第i 個(gè)可視單元和第j 個(gè)隱藏單元被激活的概率表達(dá)式如式(4)(5)所示:

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

      式中:〈〉data表示關(guān)于分布p(h=1|v,θ)的數(shù)學(xué)期望;〈〉recon表示經(jīng)過吉布斯采樣重構(gòu)后關(guān)于分布p(h'=1|v,θ)的數(shù)學(xué)期望;ε 表示模型的學(xué)習(xí)速率。

      2 分布式內(nèi)存計(jì)算結(jié)構(gòu)

      為了使深度神經(jīng)網(wǎng)絡(luò)模型能夠分布式地運(yùn)行于集群之上,需要構(gòu)建一個(gè)并行計(jì)算的框架。目前的分布式計(jì)算方式是采用MapReduce 架構(gòu)來運(yùn)行,在計(jì)算迭代的過程中需要不斷地與存儲設(shè)備發(fā)生讀寫操作。而如果采用分布式內(nèi)存的方式來承載工作數(shù)據(jù)集,模型的計(jì)算和存儲都發(fā)生在分布式內(nèi)存系統(tǒng)當(dāng)中,則可以提升計(jì)算性能。采用集群分布式內(nèi)存計(jì)算的結(jié)構(gòu)能可擴(kuò)展地在內(nèi)存集群計(jì)算中緩存數(shù)據(jù)集,以縮短訪問時(shí)間,利于存在迭代過程的深度學(xué)習(xí)算法,節(jié)省了大量的I/O操作,提升了算法的效率。

      集群的分布式內(nèi)存計(jì)算架構(gòu)采用主從模式,如圖1 所示??刂乒?jié)點(diǎn)主要保存集群中計(jì)算節(jié)點(diǎn)信息,并建立任務(wù)調(diào)度機(jī)制、數(shù)據(jù)分片調(diào)度和追蹤機(jī)制,以及并行計(jì)算狀態(tài)追蹤機(jī)制;計(jì)算節(jié)點(diǎn)則通過與控制節(jié)點(diǎn)通信,開辟內(nèi)存空間,創(chuàng)建任務(wù)線程池,運(yùn)行控制節(jié)點(diǎn)分派的任務(wù)。

      程序運(yùn)行于分布式內(nèi)存集群的流程大致可分為5 個(gè)階段:

      (1)初始化集群管理程序。檢測集群可用CPU 和內(nèi)存等狀態(tài)信息。集群管理程序是控制樞紐,可為后續(xù)計(jì)算任務(wù)分配資源。同時(shí)初始化任務(wù)調(diào)度器和任務(wù)追蹤器,其功能為分發(fā)任務(wù)以及收集任務(wù)反饋。

      (2)初始化應(yīng)用運(yùn)算實(shí)例。依據(jù)用戶提交的程序描述創(chuàng)建分布式的數(shù)據(jù)集對象,計(jì)算數(shù)據(jù)集的分片,創(chuàng)建數(shù)據(jù)分片信息列表、數(shù)據(jù)分片之間依賴關(guān)系列表。依據(jù)數(shù)據(jù)的本地性原則,分配相應(yīng)數(shù)據(jù)分片存儲于指定的計(jì)算節(jié)點(diǎn)之上。

      (3)構(gòu)建運(yùn)算的有向無環(huán)圖(Directed acyclical graphs,DAG)。將運(yùn)算過程中涉及到的map、sort、merge、shuffle 等計(jì)算過程以序列的方式增量累加成DAG 圖,而后依據(jù)DAG 圖將整個(gè)運(yùn)算過程分解成多個(gè)任務(wù)集合[14]。

      (4)任務(wù)調(diào)度器按照任務(wù)執(zhí)行自頂向下的順序,將任務(wù)集合中的子任務(wù)通過集群管理器分發(fā)到指定的計(jì)算節(jié)點(diǎn)之上,每個(gè)任務(wù)對應(yīng)著一個(gè)數(shù)據(jù)分片。如果任務(wù)失敗則重新發(fā)布。

      (5)計(jì)算節(jié)點(diǎn)接收到任務(wù)后,為任務(wù)分配計(jì)算資源,創(chuàng)建進(jìn)程池開始執(zhí)行計(jì)算,并向控制節(jié)點(diǎn)反饋進(jìn)程分配情況。

      集群運(yùn)行計(jì)算過程中需要保證任務(wù)的最優(yōu)調(diào)度,即將任務(wù)分配到相應(yīng)計(jì)算節(jié)點(diǎn)之上,該節(jié)點(diǎn)緩存了任務(wù)計(jì)算所需的數(shù)據(jù)分片,確保數(shù)據(jù)的本地性。同時(shí)當(dāng)某個(gè)任務(wù)運(yùn)行速度低于一定閾值時(shí),則在其他節(jié)點(diǎn)之上重新開啟任務(wù)。

      3 深度神經(jīng)網(wǎng)絡(luò)并行結(jié)構(gòu)

      整個(gè)深度神經(jīng)網(wǎng)絡(luò)分布式運(yùn)行的總體結(jié)構(gòu)如圖2 所示。系統(tǒng)中的所有數(shù)據(jù)都經(jīng)過數(shù)據(jù)分片操作,圖2 中小方塊即代表一個(gè)數(shù)據(jù)分片,圖中的虛線框表示一個(gè)數(shù)據(jù)集,一個(gè)數(shù)據(jù)集由多個(gè)數(shù)據(jù)分片組成,數(shù)據(jù)分片分布于集群中多臺計(jì)算機(jī)內(nèi)存之上。訓(xùn)練數(shù)據(jù)保存在集群的分布式文件存儲系統(tǒng)當(dāng)中,本文采用的是hadoop 分布式文件系統(tǒng)(HDFS)。如果訓(xùn)練模型直接從HDFS 上面讀取數(shù)據(jù),則會受到磁盤I/O 的限制,所以系統(tǒng)將一部分訓(xùn)練數(shù)據(jù)用隨機(jī)采樣的方式緩存到集群的分布式共享內(nèi)存當(dāng)中,模型訓(xùn)練的過程中直接從采樣數(shù)據(jù)集中提取數(shù)據(jù)。采樣數(shù)據(jù)集以固定的時(shí)間間隔從HDFS 文件系統(tǒng)中刷新采樣樣本集。

      圖2 模型并行訓(xùn)練結(jié)構(gòu)Fig.2 model distributed training architecture

      系統(tǒng)將深度信念網(wǎng)絡(luò)模型的所有參數(shù)構(gòu)建成一個(gè)分布式的數(shù)據(jù)集。為了實(shí)現(xiàn)模型訓(xùn)練的并行化,系統(tǒng)采用創(chuàng)建多個(gè)神經(jīng)網(wǎng)絡(luò)模型副本的方式,同時(shí)訓(xùn)練各副本模型,即使承載訓(xùn)練任務(wù)的計(jì)算節(jié)點(diǎn)失效,也不會影響訓(xùn)練的整體進(jìn)程。每個(gè)副本也是由多個(gè)數(shù)據(jù)分片組成,利用分布式內(nèi)存的速度優(yōu)勢,提高模型的訓(xùn)練速度。各副本結(jié)束訓(xùn)練之后,將計(jì)算后的參數(shù)調(diào)整值異步地傳送給模型參數(shù)數(shù)據(jù)集,并向數(shù)據(jù)集申請新的參數(shù),進(jìn)行下一步訓(xùn)練。由于參數(shù)數(shù)據(jù)集與模型副本都分布于集群的多臺機(jī)器上,副本與參數(shù)集的數(shù)據(jù)傳輸量即被分散,有效地緩解了計(jì)算節(jié)點(diǎn)之間的通信壓力。為了保證系統(tǒng)的穩(wěn)定性,在模型的訓(xùn)練過程中設(shè)置check point 機(jī)制,將模型中數(shù)據(jù)分片計(jì)算的過程信息,根據(jù)任務(wù)進(jìn)度異步保存到HDFS,防止由于計(jì)算節(jié)點(diǎn)發(fā)生錯(cuò)誤需重新運(yùn)算的情況。

      為了提高系統(tǒng)的魯棒性,采用Adagrad[15]自適應(yīng)學(xué)習(xí)速率方法,隨著訓(xùn)練的進(jìn)行自動調(diào)整學(xué)習(xí)速率,學(xué)習(xí)速率如式(9)所示:

      式中:εi,k為第i 個(gè)參數(shù)在第k 次迭代時(shí)的學(xué)習(xí)速率;Δwi,j為目標(biāo)函數(shù)的梯度值;μ 為常數(shù)。

      學(xué)習(xí)速率的計(jì)算僅與參數(shù)歷史梯度值的平方和有關(guān),所以Adagrad 易于在每個(gè)參數(shù)服務(wù)器節(jié)點(diǎn)上單獨(dú)實(shí)現(xiàn)。

      為了防止模型訓(xùn)練過擬合,本文采用dropout方法[9]。模型訓(xùn)練時(shí)隨機(jī)讓網(wǎng)絡(luò)某些隱藏層節(jié)點(diǎn)的權(quán)重不工作,但是它的權(quán)重保留下來參與下一輪訓(xùn)練。每次有輸入時(shí),網(wǎng)絡(luò)采樣一個(gè)隨機(jī)結(jié)構(gòu),這樣每個(gè)神經(jīng)元都不能依賴于其他神經(jīng)元的存在,使模型神經(jīng)元間減少了相互作用,迫使神經(jīng)元與其他神經(jīng)元共同學(xué)習(xí)更多、更有用的特征。

      4 試驗(yàn)結(jié)果及分析

      4.1 試驗(yàn)設(shè)置

      試驗(yàn)所使用的訓(xùn)練樣本為CIFAR-10 圖片數(shù)據(jù)集。有60 000 張帶分類標(biāo)簽的彩色圖片組成。圖片的分辨率為32×32。使用50 000 張圖片作為訓(xùn)練集,10 000 張作為測試集。試驗(yàn)集群由9臺虛擬機(jī)構(gòu)成,其中1 臺控制節(jié)點(diǎn),8 臺計(jì)算節(jié)點(diǎn)。每臺計(jì)算節(jié)點(diǎn)虛擬機(jī)包含8 核CPU、26 G 內(nèi)存。

      深度神經(jīng)網(wǎng)絡(luò)包括:輸入層、四層堆疊限制玻爾茲曼機(jī)作為隱藏層和一個(gè)softmax 輸出層。層間采用全連接結(jié)構(gòu),模型包含超過1.2×106個(gè)的神經(jīng)元,參數(shù)集大小約為110 M。

      4.2 結(jié)果及分析

      圖3 為分布式內(nèi)存計(jì)算與傳統(tǒng)分布式訓(xùn)練速率對比。由圖3 可以看出:采用分布式內(nèi)存計(jì)算的方法訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,模型精度的變化更為陡峭,說明采用分布式內(nèi)存計(jì)算的訓(xùn)練方式能夠明顯提升模型的訓(xùn)練速率。

      圖3 分布式內(nèi)存計(jì)算與傳統(tǒng)分布式訓(xùn)練速率對比Fig.3 Comparison of distributed memory computing and traditional map-reduce

      為了說明集群的可擴(kuò)展性,通過遞增訓(xùn)練節(jié)點(diǎn)數(shù)量來觀察集群對模型的加速比值變化。加速比值為單獨(dú)使用一個(gè)計(jì)算節(jié)點(diǎn)完成一批次采樣訓(xùn)練所需的時(shí)間與使用K 臺計(jì)算節(jié)點(diǎn)所用時(shí)間的比值。

      由圖4 可以看出:當(dāng)集群不斷增加計(jì)算節(jié)點(diǎn)時(shí),模型的訓(xùn)練效率顯著提升,說明這種并行深度學(xué)習(xí)的方法具備良好的擴(kuò)展性。

      圖4 擴(kuò)展節(jié)點(diǎn)對加速比的提升Fig.4 Speedup calculation by extending worker node

      5 結(jié)束語

      提出了一種分布式內(nèi)存計(jì)算的方法,并應(yīng)用于深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,設(shè)計(jì)了深度神經(jīng)網(wǎng)絡(luò)模型在分布式內(nèi)存中的運(yùn)行結(jié)構(gòu),以CIFAR-10 數(shù)據(jù)集為訓(xùn)練樣本,完成對網(wǎng)絡(luò)模型的并行訓(xùn)練。實(shí)驗(yàn)結(jié)果表明,該方法能夠有效提升深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速率,并具備良好的擴(kuò)展性。理論上集群可以不斷擴(kuò)展以提高訓(xùn)練效率,直到節(jié)點(diǎn)間數(shù)據(jù)交換通信成為瓶頸,由于試驗(yàn)環(huán)境的限制,本文無法給出進(jìn)一步證實(shí)。

      [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,F(xiàn)ort 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.

      猜你喜歡
      分片內(nèi)存集群
      上下分片與詞的時(shí)空佈局
      詞學(xué)(2022年1期)2022-10-27 08:06:12
      分片光滑邊值問題的再生核方法
      CDN存量MP4視頻播放優(yōu)化方法
      海上小型無人機(jī)集群的反制裝備需求與應(yīng)對之策研究
      “春夏秋冬”的內(nèi)存
      基于模糊二分查找的幀分片算法設(shè)計(jì)與實(shí)現(xiàn)
      一種無人機(jī)集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計(jì)
      電子制作(2018年11期)2018-08-04 03:25:40
      Python與Spark集群在收費(fèi)數(shù)據(jù)分析中的應(yīng)用
      勤快又呆萌的集群機(jī)器人
      基于內(nèi)存的地理信息訪問技術(shù)
      林西县| 武平县| 宁陵县| 通辽市| 杂多县| 皋兰县| 大新县| 莱西市| 鹰潭市| 泸州市| 阜康市| 徐州市| 丰镇市| 榕江县| 盐池县| 六安市| 阿克陶县| 廊坊市| 东城区| 乐业县| 顺义区| 广昌县| 玉环县| 阿勒泰市| 宁城县| 榆社县| 湄潭县| 蓬莱市| 三门县| 巩留县| 本溪市| 八宿县| 扬州市| 板桥市| 白城市| 千阳县| 满洲里市| 白沙| 敦化市| 册亨县| 丰台区|