王岳青 竇 勇 呂 啟 李寶峰 李 騰
1(國(guó)防科學(xué)技術(shù)大學(xué)并行與分布處理國(guó)防重點(diǎn)實(shí)驗(yàn)室 長(zhǎng)沙 410073)2 (國(guó)防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院 長(zhǎng)沙 410073) (yqwang2013@163.com)
?
DLPF:基于異構(gòu)體系結(jié)構(gòu)的并行深度學(xué)習(xí)編程框架
王岳青1竇勇1呂啟1李寶峰2李騰1
1(國(guó)防科學(xué)技術(shù)大學(xué)并行與分布處理國(guó)防重點(diǎn)實(shí)驗(yàn)室長(zhǎng)沙410073)2(國(guó)防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院長(zhǎng)沙410073) (yqwang2013@163.com)
摘要深度學(xué)習(xí)在機(jī)器學(xué)習(xí)領(lǐng)域扮演著十分重要的角色,已被廣泛應(yīng)用于各種領(lǐng)域,具有十分巨大的研究和應(yīng)用前景.然而,深度學(xué)習(xí)也面臨3方面的挑戰(zhàn):1)現(xiàn)有深度學(xué)習(xí)工具使用便捷性不高,盡管深度學(xué)習(xí)領(lǐng)域工具越來(lái)越多,然而大多使用過(guò)程過(guò)于繁雜,不便使用;2)深度學(xué)習(xí)模型靈活性不高,限制了深度學(xué)習(xí)模型發(fā)展的多樣性;3)深度學(xué)習(xí)訓(xùn)練時(shí)間較長(zhǎng),超參數(shù)搜索空間大,從而導(dǎo)致超參數(shù)尋優(yōu)比較困難.針對(duì)這些挑戰(zhàn),設(shè)計(jì)了一種基于深度學(xué)習(xí)的并行編程框架,該框架設(shè)計(jì)了統(tǒng)一的模塊庫(kù),能可視化地進(jìn)行深度學(xué)習(xí)模型構(gòu)建,提高了編程便捷性;同時(shí)在異構(gòu)平臺(tái)對(duì)算法模塊進(jìn)行加速優(yōu)化,較大程度減少訓(xùn)練時(shí)間,進(jìn)而提高超參數(shù)尋優(yōu)效率.實(shí)驗(yàn)結(jié)果表明,該編程框架可以靈活構(gòu)建多種模型,并且對(duì)多種應(yīng)用取得了較高的分類精度.通過(guò)超參數(shù)尋優(yōu)實(shí)驗(yàn),可以便捷地獲得最優(yōu)超參數(shù)組合,從而推斷各種超參數(shù)與不同應(yīng)用的聯(lián)系.
關(guān)鍵詞深度學(xué)習(xí);編程框架;可視化;異構(gòu)平臺(tái);加速
Fig. 2 The module library of deep learning.圖2 深度學(xué)習(xí)的算法模塊庫(kù)
信息時(shí)代,大數(shù)據(jù)已經(jīng)滲透到眾多行業(yè)和業(yè)務(wù)領(lǐng)域,成為重要的生產(chǎn)因素,但其原始數(shù)據(jù)往往量大而價(jià)值密度低,傳統(tǒng)的數(shù)據(jù)分析技術(shù)已經(jīng)無(wú)法有效挖掘數(shù)據(jù)的功能和價(jià)值.因此,必須采取更有效的方法提取大數(shù)據(jù)的主要特征和內(nèi)在關(guān)聯(lián).2006年,Hinton和Salakhutdinov[1]在國(guó)際頂尖學(xué)術(shù)期刊Science發(fā)表文章,提出利用深度信念網(wǎng)絡(luò)(deep belief network, DBN)實(shí)現(xiàn)大數(shù)據(jù)的降維及分析,引發(fā)了深度學(xué)習(xí)的浪潮.
典型的深度學(xué)習(xí)模型結(jié)構(gòu)如圖1所示,由多層構(gòu)成,每層通過(guò)編碼產(chǎn)生隱層輸出,通過(guò)解碼將隱層輸出重構(gòu)輸入數(shù)據(jù),并依據(jù)重構(gòu)數(shù)據(jù)與原始數(shù)據(jù)的差異更新輸入層與隱含層的連接權(quán)值.這種層次化的訓(xùn)練過(guò)程是模仿大腦的層次信息處理機(jī)制,組合低層特征形成高層特征從而發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示,進(jìn)而解釋圖像、聲音和文本等數(shù)據(jù)的潛在關(guān)聯(lián).
Fig. 1 Structure of deep learning model.圖1 深度學(xué)習(xí)模型結(jié)構(gòu)
與淺層神經(jīng)網(wǎng)絡(luò)相比,深度學(xué)習(xí)可以有效防止網(wǎng)絡(luò)規(guī)模劇烈增加.總之,深度學(xué)習(xí)已經(jīng)發(fā)展為機(jī)器學(xué)習(xí)領(lǐng)域一個(gè)十分重要的分支,具有十分大的研究潛力和應(yīng)用價(jià)值,已成為各個(gè)領(lǐng)域智能化信息處理的熱點(diǎn).
深度學(xué)習(xí)的研究充滿了機(jī)遇,但同時(shí)面臨著諸多挑戰(zhàn).
1) 深度學(xué)習(xí)工具使用便捷性不高
深度學(xué)習(xí)的不斷發(fā)展必然促進(jìn)開(kāi)源工具的增加,然而大多數(shù)開(kāi)源工具的使用需要一系列復(fù)雜配置,容易出錯(cuò);同時(shí),深度學(xué)習(xí)算法對(duì)硬件平臺(tái)和軟件環(huán)境要求較高,很多研究者并不具備相應(yīng)的研究條件;此外,已有的深度學(xué)習(xí)工具種類繁多,不易選擇.以上因素會(huì)給深度學(xué)習(xí)的使用帶來(lái)諸多不便,無(wú)疑會(huì)限制深度學(xué)習(xí)在新領(lǐng)域的推廣和使用.
2) 深度學(xué)習(xí)模型靈活性不高
大腦分層進(jìn)行認(rèn)知和學(xué)習(xí),這是深度學(xué)習(xí)思想的來(lái)源.但大腦各個(gè)區(qū)域的結(jié)構(gòu)和功能并不相同,因而很可能在學(xué)習(xí)過(guò)程的各個(gè)階段使用的是不同的學(xué)習(xí)算法.為了更好地模擬大腦的學(xué)習(xí)過(guò)程,需要在深度學(xué)習(xí)的不同層次使用不同算法,這要求深度學(xué)習(xí)模型具有很高的靈活性,能夠自由組合各種算法模塊.深度學(xué)習(xí)包括具有不同結(jié)構(gòu)和功能的算法模塊,圖2給出了基本的算法模塊,如稀疏編碼(SC)、自動(dòng)編碼機(jī)(AE)、受限玻爾茲曼機(jī)(RBM)、深度信念機(jī)(DBM)、遞歸神經(jīng)網(wǎng)(RNN)、高斯混合模型(GMM)和卷積神經(jīng)網(wǎng)絡(luò)(CNN)等.然而,現(xiàn)有的深度學(xué)習(xí)模型的各層均由相同的算法模塊構(gòu)成,這限制了模型的靈活性和多樣性,對(duì)深度學(xué)習(xí)模型研究帶來(lái)了不便.
3) 深度學(xué)習(xí)中超參數(shù)尋優(yōu)比較困難
深度學(xué)習(xí)算法在訓(xùn)練過(guò)程中主要計(jì)算網(wǎng)絡(luò)中層與層之間連接的強(qiáng)度參數(shù).此外,深度學(xué)習(xí)算法訓(xùn)練得到的特征好壞還與超參數(shù)相關(guān).所謂超參數(shù),是指需要人為調(diào)整的參數(shù),例如學(xué)習(xí)率(反映了調(diào)整權(quán)值參數(shù)的快慢程度)、隱層節(jié)點(diǎn)數(shù)、動(dòng)量參數(shù)等,這些參數(shù)對(duì)最終的特征提取有著至關(guān)重要的作用.目前在深度學(xué)習(xí)領(lǐng)域并沒(méi)有完善的理論指導(dǎo)求解最優(yōu)超參數(shù)組合,只能憑借經(jīng)驗(yàn)配置超參數(shù),但大多數(shù)人并沒(méi)有相關(guān)經(jīng)驗(yàn),因此更常用的是網(wǎng)格搜索(grid search)法,即將超參數(shù)的各種組合窮舉并依據(jù)交叉驗(yàn)證的平均準(zhǔn)確率得到最優(yōu)組合.由于超參數(shù)數(shù)量和可能取值較多,從而導(dǎo)致搜索空間大、搜索耗時(shí)長(zhǎng).這對(duì)深度學(xué)習(xí)的模型選擇帶來(lái)了極高的難度.
綜上所述,深度學(xué)習(xí)研究已經(jīng)成為熱點(diǎn),但同樣面臨著諸多挑戰(zhàn).本文結(jié)合深度學(xué)習(xí)算法的特點(diǎn),使用可視化界面簡(jiǎn)化深度學(xué)習(xí)模型的構(gòu)建過(guò)程,通過(guò)統(tǒng)一深度學(xué)習(xí)算法模塊的接口增加模型靈活性,通過(guò)自動(dòng)搜索最優(yōu)超參數(shù)減小超參數(shù)配置難度,在此基礎(chǔ)之上研究深度學(xué)習(xí)并行編程框架.
1相關(guān)工作
目前,深度學(xué)習(xí)領(lǐng)域已有諸多較為成熟的開(kāi)源工具和平臺(tái).
上面介紹的開(kāi)源工具盡管應(yīng)用廣泛,訓(xùn)練速度較快;但使用便捷性不高,配置較為復(fù)雜,對(duì)機(jī)器配置要求較高,使用過(guò)程容易出錯(cuò),同時(shí)不支持具有混合算法模塊的深度學(xué)習(xí)模型,靈活性不高,此外,大多數(shù)工具并不能自動(dòng)搜索最優(yōu)超參數(shù)組合.
深度學(xué)習(xí)除在學(xué)術(shù)界有較大發(fā)展之外,還被廣泛應(yīng)用于工業(yè)界,各大公司都成立了深度學(xué)習(xí)研究小組,也實(shí)現(xiàn)了自己的軟件框架.
Google的DistBelief[10]系統(tǒng)是CPU集群實(shí)現(xiàn)的數(shù)據(jù)并行和模型并行框架,集群內(nèi)使用上萬(wàn)個(gè)CPU 核來(lái)訓(xùn)練參數(shù)數(shù)目多達(dá)10億的深度神經(jīng)網(wǎng)絡(luò)模型.Facebook實(shí)現(xiàn)了多GPU訓(xùn)練深度卷積神經(jīng)網(wǎng)絡(luò)的并行框架[11],結(jié)合數(shù)據(jù)并行和模型并行的方式來(lái)訓(xùn)練CNN模型.百度搭建了PADDLE(parallel asynchronous distributed deep learning)[12]多機(jī)GPU訓(xùn)練平臺(tái),將數(shù)據(jù)分布到不同機(jī)器,通過(guò)參數(shù)服務(wù)器協(xié)調(diào)各機(jī)器訓(xùn)練,該架構(gòu)支持?jǐn)?shù)據(jù)并行和模型并行.騰訊的深度學(xué)習(xí)平臺(tái)(Mariana)[13]是為加速深度學(xué)習(xí)模型訓(xùn)練而開(kāi)發(fā)的并行化平臺(tái),包括深度神經(jīng)網(wǎng)絡(luò)的多GPU數(shù)據(jù)并行框架、深度卷積神經(jīng)網(wǎng)絡(luò)的多GPU模型并行和數(shù)據(jù)并行框架,以及深度神經(jīng)網(wǎng)絡(luò)的CPU集群框架.
工業(yè)界的深度學(xué)習(xí)框架面向特定的應(yīng)用領(lǐng)域能夠達(dá)到較好的效果,但后果就是其模型結(jié)構(gòu)特別復(fù)雜,無(wú)法兼顧使用的便捷性和模型的靈活性.
本文提出一種基于異構(gòu)平臺(tái)的深度學(xué)習(xí)編程架構(gòu),將深度學(xué)習(xí)模型構(gòu)建可視化,使得深度學(xué)習(xí)編程更為簡(jiǎn)單,從而使得更多應(yīng)用領(lǐng)域的學(xué)者方便地使用深度學(xué)習(xí)模型進(jìn)行研究;同時(shí)設(shè)計(jì)統(tǒng)一接口模式,使得模型構(gòu)建更加靈活,增加模型的多樣性.此外,我們的編程框架可以并行搜索最優(yōu)超參數(shù)組合,代替手動(dòng)調(diào)參的繁瑣過(guò)程.
2深度學(xué)習(xí)并行編程框架
深度學(xué)習(xí)并行編程框架包括4層:Web層、調(diào)度層、計(jì)算層和加速層.Web層面向用戶,提供可視化編程界面;調(diào)度層動(dòng)態(tài)調(diào)度計(jì)算資源和計(jì)算任務(wù);計(jì)算層接受不同的應(yīng)用數(shù)據(jù)訓(xùn)練和測(cè)試模型;加速層使用協(xié)處理器加速訓(xùn)練和測(cè)試過(guò)程.如圖3所示,各層之間通過(guò)數(shù)據(jù)傳遞緊密耦合,形成完整架構(gòu).
Fig. 3 Hardware architecture of DLPF.圖3 深度學(xué)習(xí)編程架構(gòu)硬件映射示意圖
2.1Web層
Web層目標(biāo)是提供簡(jiǎn)潔的可視化編程界面,提高深度學(xué)習(xí)使用的便捷性.該層由3個(gè)界面組成:模型管理界面、數(shù)據(jù)管理界面和任務(wù)管理界面.模型管理界面將深度學(xué)習(xí)算法以模塊形式顯示,支持通過(guò)添加算法模塊動(dòng)態(tài)創(chuàng)建深度學(xué)習(xí)模型.
圖4是Web層的可視化模型構(gòu)建界面,左側(cè)部分提供多種算法模塊,右側(cè)是根據(jù)左側(cè)算法模塊創(chuàng)建的深度信念網(wǎng)(DBN)模型.在此界面中,用戶無(wú)需編程,只需要點(diǎn)擊相應(yīng)算法模塊并加入到模型中即可,操作簡(jiǎn)單,無(wú)需任何平臺(tái)和軟件配置.
Fig. 4 Visual programming interface.圖4 可視化模型構(gòu)建界面
模型構(gòu)建完成后,用戶需要點(diǎn)擊模型的各個(gè)模塊進(jìn)行超參數(shù)設(shè)置和選擇,超參數(shù)設(shè)置有3種選項(xiàng),分別對(duì)應(yīng)設(shè)置特定值、設(shè)置搜索范圍和步長(zhǎng)以及自動(dòng)搜索.其中,設(shè)置特定值針對(duì)具備調(diào)參經(jīng)驗(yàn)的用戶;而后2種選項(xiàng)主要針對(duì)其他用戶,采用后臺(tái)并行搜索的方法搜索最優(yōu)組合.用戶使用該界面構(gòu)建好模型之后,進(jìn)入數(shù)據(jù)管理界面.數(shù)據(jù)管理界面提供數(shù)據(jù)上傳和數(shù)據(jù)管理服務(wù),用戶可以選擇已有的數(shù)據(jù)集或者上傳新的訓(xùn)練和測(cè)試數(shù)據(jù),如果數(shù)據(jù)集過(guò)大,也可以直接提供網(wǎng)址以供后臺(tái)自動(dòng)下載數(shù)據(jù)集.當(dāng)模型和數(shù)據(jù)都準(zhǔn)備完成后,用戶可以使用任務(wù)管理界面為模型分配數(shù)據(jù)從而創(chuàng)建計(jì)算任務(wù),此外,該界面還提供任務(wù)管理功能,用戶可以方便地新建、暫停、停止和刪除已有任務(wù).當(dāng)計(jì)算任務(wù)完成后,DLPF會(huì)將結(jié)果發(fā)送到Web服務(wù)器和用戶的注冊(cè)郵箱,并在任務(wù)管理界面顯示.
2.2調(diào)度層
調(diào)度層目標(biāo)是為空閑節(jié)點(diǎn)動(dòng)態(tài)分配計(jì)算任務(wù).它接受Web層傳遞的任務(wù),通過(guò)任務(wù)解析器將任務(wù)轉(zhuǎn)換為模型文件,并將模型文件放置在任務(wù)池中等待調(diào)度,當(dāng)有空閑節(jié)點(diǎn)時(shí),從任務(wù)池中選擇優(yōu)先級(jí)較高的任務(wù)進(jìn)行計(jì)算.調(diào)度過(guò)程必須保證公平性和響應(yīng)時(shí)間,而深度學(xué)習(xí)訓(xùn)練過(guò)程復(fù)雜、所需時(shí)間較長(zhǎng),如果任務(wù)耗時(shí)較長(zhǎng),將會(huì)急劇增加其他任務(wù)的響應(yīng)時(shí)間,因此采用時(shí)間片輪轉(zhuǎn)算法進(jìn)行任務(wù)調(diào)度,這可以保證每個(gè)用戶都能公平地使用資源,同時(shí)減少響應(yīng)時(shí)間.通過(guò)時(shí)間片輪轉(zhuǎn)算法調(diào)度之后,各個(gè)計(jì)算節(jié)點(diǎn)能夠盡量均衡地接受任務(wù),從而展開(kāi)進(jìn)一步計(jì)算.
2.3計(jì)算層
計(jì)算層包括多個(gè)物理節(jié)點(diǎn)或者虛擬節(jié)點(diǎn),目標(biāo)是根據(jù)已有數(shù)據(jù)完成模型參數(shù)訓(xùn)練.當(dāng)調(diào)度層將任務(wù)分配給某個(gè)計(jì)算節(jié)點(diǎn)時(shí),計(jì)算節(jié)點(diǎn)首先從相應(yīng)存儲(chǔ)設(shè)備讀取數(shù)據(jù),之后根據(jù)調(diào)度層傳遞的模型文件,通過(guò)已有深度學(xué)習(xí)模塊庫(kù)構(gòu)建深度學(xué)習(xí)模型.每個(gè)深度學(xué)習(xí)模型對(duì)應(yīng)一個(gè)代價(jià)函數(shù),而目標(biāo)是調(diào)整網(wǎng)絡(luò)參數(shù)使代價(jià)函數(shù)最小,當(dāng)代價(jià)函數(shù)最小時(shí)模型達(dá)到最優(yōu).尋找最小代價(jià)函數(shù)的過(guò)程即為優(yōu)化過(guò)程,可以采用多種優(yōu)化算法.較為常用的優(yōu)化算法包括對(duì)比散度算法(CD-K)、反向傳播算法(BP)、共軛梯度法(CG)和隨機(jī)梯度下降算法(SGD)等.算法1是計(jì)算層RBM模塊采用的CD-K算法.在算法1中,首先根據(jù)已有數(shù)據(jù)v計(jì)算隱層節(jié)點(diǎn)輸出h,然后根據(jù)h重構(gòu)輸入數(shù)據(jù)v′,再由v′計(jì)算出重構(gòu)數(shù)據(jù)的隱層輸出h′,最后根據(jù)這4個(gè)變量更新權(quán)值和偏置參數(shù).
算法1.K步對(duì)比散度算法(CD-K).
輸入:RBM [v1,v2,…,vn,h1,h2,…,hm],S;
輸出:RBM [Δwij,Δbj,Δci].
① 初始化 Δwij=0,Δbj=0,Δci=0;
②v(0)←S;
③ fort=0,1,…,K-1 do
④ fori=1,2,…,ndo
⑥ end for
⑦ forj=1,2,…,mdo
⑨ end for
⑩ fori=1,2,…,n,j=1,2,…,mdo
Fig. 5 Software architecture of DLPF.圖5 編程框架軟件架構(gòu)示意圖
所有優(yōu)化算法在尋優(yōu)過(guò)程中需要不斷計(jì)算代價(jià)函數(shù)值來(lái)判斷是否找到最優(yōu)解,而代價(jià)函數(shù)的計(jì)算過(guò)程以矩陣計(jì)算為主,當(dāng)數(shù)據(jù)量較大時(shí),這一過(guò)程成為瓶頸,為了減少矩陣運(yùn)算時(shí)間,DLPF選擇一些速度較快的開(kāi)源軟件庫(kù)用于矩陣運(yùn)算.例如Armadillo數(shù)學(xué)庫(kù)[14],其底層調(diào)用openBLAS[15],NVBLAS[16],LAPACK[17]等庫(kù)函數(shù)對(duì)矩陣運(yùn)算進(jìn)行優(yōu)化加速.此外,由于隨機(jī)梯度下降算法(SGD)可以用于除RBM和CRBM之外的其他模塊,而RBM和CRBM都使用CD-K算法優(yōu)化,因此我們選擇了RBM模塊和SGD算法進(jìn)行GPU加速.圖5是DLPF框架的軟件架構(gòu),核心在于中間的模塊庫(kù)(module library),模塊庫(kù)目前已經(jīng)實(shí)現(xiàn)了RBM、Auto-Encoder、sparse coding、極限學(xué)習(xí)機(jī)(ELM)[18]、卷積RBM、卷積神經(jīng)網(wǎng)絡(luò)(CNN)以及其他一些變形算法,與核心模塊庫(kù)緊耦合的部分包括矩陣運(yùn)算庫(kù)和優(yōu)化算法庫(kù).
2.4加速層
除在計(jì)算層中調(diào)用優(yōu)化數(shù)學(xué)庫(kù)進(jìn)行程序加速之外,我們還專門(mén)設(shè)計(jì)了高效的GPU并行算法庫(kù),使其在運(yùn)算過(guò)程中可被靈活使用.下面簡(jiǎn)單介紹加速層采用的并行算法.
深度學(xué)習(xí)一般采取分層的網(wǎng)絡(luò)結(jié)構(gòu),采用逐層貪心算法進(jìn)行訓(xùn)練.根據(jù)層間的連接方式,可以將單層網(wǎng)絡(luò)分為局部連接(如卷積神經(jīng)網(wǎng))與全連接(如深度信念網(wǎng)絡(luò))2種: 1)對(duì)于全連接網(wǎng)絡(luò),設(shè)計(jì)增強(qiáng)局部并行性的訓(xùn)練方法,如圖 6所示.單層網(wǎng)絡(luò)分為多個(gè)局部計(jì)算單元,單元間計(jì)算并行,并通過(guò)通信方式傳遞跨單元計(jì)算信息.在此條件下,每個(gè)單元存儲(chǔ)整個(gè)單層網(wǎng)絡(luò)的權(quán)值副本,并計(jì)算對(duì)其他單元中隱含層節(jié)點(diǎn)的貢獻(xiàn),每個(gè)隱含層節(jié)點(diǎn)接收各個(gè)單元的結(jié)果后規(guī)約更新.2)對(duì)于局部連接的卷積網(wǎng)絡(luò),可以對(duì)其不同的卷積核展開(kāi)并行學(xué)習(xí),對(duì)于相同的卷積核,也可以利用卷積特性進(jìn)行細(xì)粒度并行.
Fig. 6 Parallel algorithm for fully-connected network.圖6 全連接網(wǎng)絡(luò)的并行算法
Fig. 7 Block and thread parallel strategies of RBM onGPU.圖7 RBM在GPU的block和thread層面的并行策略
以RBM算法模塊的GPU加速為例,圖7給出了算法在GPU的block和thread層面的并行策略.每個(gè)樣本使用1個(gè)GPU block計(jì)算,而每個(gè)樣本需要計(jì)算該樣本與所有隱層節(jié)點(diǎn)的連接權(quán)值,這些連接權(quán)值的計(jì)算可以完全并行,使用1個(gè)線程計(jì)算1個(gè)連接權(quán)值.這種分配策略能夠更好地利用GPU的并行資源,也能更大地挖掘算法的并行性.
統(tǒng)一的編程架構(gòu)能夠?qū)⒕幊毯褪褂煤?jiǎn)單化,可以方便用戶使用和改進(jìn)機(jī)器學(xué)習(xí)算法.我們的工作是研究各類深度算法處理結(jié)構(gòu)的共性及特異性,根據(jù)提取的算法要素提煉出表達(dá)簡(jiǎn)潔的算法結(jié)構(gòu),目標(biāo)是使用戶通過(guò)高效的輸入界面、配置文件或者命令語(yǔ)言就能夠準(zhǔn)確描述所需要的深度學(xué)習(xí)算法,之后將算法結(jié)構(gòu)翻譯成為算法模塊,并通過(guò)構(gòu)建數(shù)據(jù)鏈緊密耦合各個(gè)模塊,從而形成完整計(jì)算模型.
2.5編程框架特點(diǎn)
1) 可視化編程界面
Web層提供簡(jiǎn)潔的可視化編程界面,將深度學(xué)習(xí)各種算法模塊以圖形方式展現(xiàn),用戶可以通過(guò)添加模塊的形式輕松構(gòu)建深度學(xué)習(xí)模型.圖8給出了使用Web界面構(gòu)建的2個(gè)深度學(xué)習(xí)模型結(jié)構(gòu)的例子,包括有監(jiān)督的CNN模型和無(wú)監(jiān)督的DBN模型,可視化界面可以清晰地表達(dá)模型結(jié)構(gòu)和層間連接關(guān)系.
Fig. 8 CNN and DBN models made by the Web layer.圖8 DBN和CNN模型構(gòu)建示意圖
2) 多模型和多應(yīng)用支持
DLPF編程框架支持多種應(yīng)用,目前已經(jīng)測(cè)試過(guò)的應(yīng)用包括手寫(xiě)字符識(shí)別、遙感圖像分類、三維物體分類和自然圖像分類,而且DLPF框架在這些應(yīng)用上都取得了較好的結(jié)果.同時(shí),由于算法模塊的靈活性和統(tǒng)一的接口,DLPF框架還支持構(gòu)建不同模型,除傳統(tǒng)的深度學(xué)習(xí)模型之外,還支持構(gòu)建混合算法模型,例如RBM-AE模型:第1層使用RBM模塊,第2層使用自動(dòng)編碼機(jī)模塊.混合模型的構(gòu)建是有實(shí)際意義的,在引言提到過(guò),大腦在工作時(shí)信息會(huì)在不同區(qū)域接受不同的處理,傳統(tǒng)的深度學(xué)習(xí)模型在各層使用同樣的算法(DBN)或者每幾層使用類似的算法(CNN),這實(shí)際是對(duì)大腦不同的區(qū)域使用相似的算法模擬,與實(shí)際情況并不符合.如果可以構(gòu)建混合模型,應(yīng)該能夠更好地模擬大腦工作原理,從而進(jìn)一步加深人對(duì)大腦工作原理的理解.
3) 超參數(shù)并行搜索
DLPF框架提供超參數(shù)并行搜索功能.用戶在超參數(shù)設(shè)置時(shí)可以指定多個(gè)超參數(shù)值或者指定超參數(shù)范圍和步長(zhǎng),后臺(tái)程序會(huì)啟動(dòng)多個(gè)主機(jī)運(yùn)行不同的超參數(shù)組合,進(jìn)行網(wǎng)格搜索,通過(guò)交叉驗(yàn)證的方式判斷最優(yōu)超參數(shù)組合并將最優(yōu)組合和模型返回給用戶.一般模型的超參數(shù)個(gè)數(shù)較多,因此構(gòu)成的搜索空間巨大,搜索較為耗時(shí),我們采用粗粒度并行方式搜索最佳超參數(shù)組合.
3實(shí)驗(yàn)結(jié)果與分析
實(shí)驗(yàn)平臺(tái)由4臺(tái)服務(wù)器和1臺(tái)PC組成, PC機(jī)處理器型號(hào)為4核Intel i7-4790K, 主頻4 GHz,用于做加速對(duì)比實(shí)驗(yàn).4臺(tái)服務(wù)器中1臺(tái)作為Web服務(wù)器,1臺(tái)作為調(diào)度服務(wù)器,2臺(tái)作為計(jì)算節(jié)點(diǎn),每臺(tái)有2個(gè)8核處理器,處理器型號(hào)為Intel Xeon E5-2650,主頻為2 GHz,內(nèi)存為64 GB.每臺(tái)計(jì)算節(jié)點(diǎn)包括1塊NVIDIA K40 GPU,核心頻率為0.745 GHz,共有2 880個(gè)核.在多模型實(shí)驗(yàn)、多應(yīng)用實(shí)驗(yàn)和時(shí)間性能測(cè)試過(guò)程中我們使用1臺(tái)計(jì)算節(jié)點(diǎn)完成,超參數(shù)并行搜索實(shí)驗(yàn)采用2個(gè)計(jì)算節(jié)點(diǎn)完成.
3.1多模型支持
DLPF可以靈活構(gòu)建多種模型,包括RBM,Auto-Encoder,Sparse Coding,Extreme Learning Machine (ELM),ELM-AutoEncoder等簡(jiǎn)單模型,也包括DBN,Stacked-AutoEncoder,Stacked-ELM-AE,CNN,Convolutional-ELM(卷積ELM)等深層結(jié)構(gòu)模型,還包括混合算法模型,例如RBM-AE,SC-RBM,CRBM-RBM等.我們?cè)诒?給出各個(gè)模型針對(duì)MNIST手寫(xiě)字符識(shí)別數(shù)據(jù)庫(kù)的最終預(yù)測(cè)準(zhǔn)確率.除ELM相關(guān)模型之外的所有模型使用SoftMax模塊進(jìn)行分類.
通過(guò)實(shí)驗(yàn)可以得到3點(diǎn)結(jié)論:1)使用深度模型后準(zhǔn)確率會(huì)增加,但訓(xùn)練時(shí)間也會(huì)有所增加;2)不同的模型預(yù)測(cè)的準(zhǔn)確率不相同,這不僅跟算法有關(guān),也跟初始化得到的參數(shù)矩陣相關(guān);3)混合模型也能夠得到較好的性能,這是因?yàn)樵跓o(wú)監(jiān)督網(wǎng)絡(luò)中,每層實(shí)際是獨(dú)立的,層與層之間通過(guò)數(shù)據(jù)耦合,各層接受輸入數(shù)據(jù)并抽取數(shù)據(jù)特征,不需關(guān)注這些數(shù)據(jù)的來(lái)源.
Table 1Testing Accuracy of Different Models on MNIST
Dataset
3.2多應(yīng)用支持
基于DLPF,可以便捷地設(shè)計(jì)不同模型支持多種應(yīng)用.目前,DLPF已經(jīng)成功應(yīng)用于手寫(xiě)字符識(shí)別、自然圖像識(shí)別(CIFAR-10)、合成孔徑雷達(dá)(SAR)遙感圖像分類和三維物體識(shí)別等應(yīng)用,并已有研究者愿意使用DLPF開(kāi)展醫(yī)療圖像疾病檢測(cè)、駕駛員危險(xiǎn)動(dòng)作識(shí)別等應(yīng)用的研究工作.
圖9是使用DLPF構(gòu)建的DBN模型對(duì)手寫(xiě)字符無(wú)監(jiān)督提取的特征.從特征圖可以看出,DBN有效提取了字符的一些邊緣信息和紋理特征,這些特征比原圖的像素特征具備更好的區(qū)分度.
Fig. 9 Features of MNIST dataset selected by DBN model.圖9 DBN模型提取的手寫(xiě)字符特征
CIFAR自然圖像分類直接使用無(wú)監(jiān)督網(wǎng)絡(luò)的分類精度只有46%,但使用有監(jiān)督網(wǎng)絡(luò)分類精度可達(dá)55%左右,如果進(jìn)行進(jìn)一步調(diào)參并加入RGB三通道訓(xùn)練,分類精度將會(huì)更高.
文獻(xiàn)[19]使用DLPF完成實(shí)驗(yàn),將深度學(xué)習(xí)應(yīng)用于遙感圖像分類中發(fā)現(xiàn),DBN較其他3種算法SVM[20],neural networks (NN),stochastic Expectation-Maximization (SEM)[21],取得了更好的分類效果,在總體分類精度上有較大提升,分類結(jié)果與真實(shí)的物類別更符合,如圖10所示:
Fig. 10 Remote sensing image classification[21].圖10 遙感圖像分類[21]
DLPF也可以被應(yīng)用于三維物體識(shí)別和分類.通過(guò)DLPF設(shè)計(jì)的三維卷積極限學(xué)習(xí)機(jī)在三維物體分類的數(shù)據(jù)集上能夠達(dá)到87.8%的分類精度,比普林斯頓大學(xué)在同樣數(shù)據(jù)集的分類精度(86%)更高[22]且訓(xùn)練速度更快.圖11所示是得到的三維物體的特征.
Fig. 11 Features of 3D object.圖11 三維物體特征
3.3超參數(shù)并行搜索
采用2個(gè)計(jì)算節(jié)點(diǎn)進(jìn)行超參數(shù)并行搜索實(shí)驗(yàn),一方面證明并行搜索的有效性,另一方面證明不同超參數(shù)對(duì)最終預(yù)測(cè)精度的影響.本節(jié)的實(shí)驗(yàn)數(shù)據(jù)集是MNIST手寫(xiě)字符庫(kù),模型采用單層RBM+SoftMax分類器,并行搜索學(xué)習(xí)率(learning rate)和隱層節(jié)點(diǎn)數(shù)(number of hidden nodes)這2個(gè)超參數(shù)對(duì)模型分類準(zhǔn)確率的影響,搜索過(guò)程中固定其他超參數(shù).通過(guò)測(cè)試得到不同的學(xué)習(xí)率和隱層節(jié)點(diǎn)數(shù)對(duì)最終預(yù)測(cè)準(zhǔn)確率的影響,超參數(shù)搜索可以找到分類準(zhǔn)確率最高的超參數(shù)組合.與單節(jié)點(diǎn)相比,雙節(jié)點(diǎn)測(cè)試時(shí)間減少了將近一半,表明并行搜索是有效的.圖12展示了不同超參數(shù)組合的預(yù)測(cè)錯(cuò)誤率搜索空間.
Fig. 12 The hyper-parameter search space.圖12 超參數(shù)搜索空間
Fig. 13 Speedup comparison of RBM module.圖13 RBM模塊加速效果對(duì)比
從圖12可以得出3點(diǎn)結(jié)論:1)不同超參數(shù)組合對(duì)最終預(yù)測(cè)精度是有影響的,如果超參數(shù)選擇不好,會(huì)直接導(dǎo)致預(yù)測(cè)錯(cuò)誤率偏高;2)就手寫(xiě)字符數(shù)據(jù)集而言,隱層節(jié)點(diǎn)數(shù)目越多,對(duì)應(yīng)的預(yù)測(cè)錯(cuò)誤率越低,但訓(xùn)練時(shí)間也越長(zhǎng);3)選擇好的學(xué)習(xí)率有助于快速達(dá)到最優(yōu)解(可能是局部最優(yōu)),但學(xué)習(xí)率相近時(shí)對(duì)性能影響不大.
3.4時(shí)間性能
圖13和圖14分別展示了基于CPU-GPU異構(gòu)平臺(tái)對(duì)RBM模塊和SGD算法模塊的加速效果.
Fig. 14 GPU speedup comparison of SGD algorithm.圖14 SGD算法的GPU加速效果對(duì)比
RBM模塊和SGD算法的GPU加速效果與CPU相比,已經(jīng)分別達(dá)到20多倍和30多倍.在同等硬件平臺(tái)下,RBM模塊的加速效果與文獻(xiàn)[23]相比性能更高,加速比達(dá)到1.5倍.
4結(jié)束語(yǔ)
深度學(xué)習(xí)在機(jī)器學(xué)習(xí)領(lǐng)域扮演著十分重要的角色,已被廣泛應(yīng)用于各種領(lǐng)域,具有十分巨大的研究和應(yīng)用前景.然而,深度學(xué)習(xí)也面臨著諸多方面的挑戰(zhàn).本文針對(duì)這些挑戰(zhàn),設(shè)計(jì)了一種基于異構(gòu)體系結(jié)構(gòu)的深度學(xué)習(xí)編程框架.該框架建立了統(tǒng)一的模塊庫(kù),能可視化地進(jìn)行深度學(xué)習(xí)模型構(gòu)建,從而提高了編程的便捷性;同時(shí)在異構(gòu)平臺(tái)對(duì)算法模塊進(jìn)行加速,從而減少訓(xùn)練時(shí)間,進(jìn)而提高超參數(shù)尋優(yōu)效率.實(shí)驗(yàn)結(jié)果表明,該編程框架可以靈活構(gòu)建多種模型,并且對(duì)多種應(yīng)用取得了較高的預(yù)測(cè)精度.通過(guò)超參數(shù)尋優(yōu)實(shí)驗(yàn),可以便捷地獲得最優(yōu)超參數(shù)組合,從而推斷各種超參數(shù)與不同應(yīng)用的聯(lián)系.通過(guò)GPU加速實(shí)驗(yàn)可以看到,框架的某些并行算法模塊(RBM,SGD)具有較快的計(jì)算速度,與CPU相比,加速比可達(dá)數(shù)十倍.
參考文獻(xiàn)
[1]Hinton G E, Salakhutdinov R. Reducing the dimensionality of data with neural networks[J]. Science, 2006, 313(5786): 504-507
[2]Krizhevsky A. Cuda-convnet: A fast C++/CUDA imple-mentation of convolutional (or more generally, feed-forward) neural networks[OL]. [2014-11-12]. https://code.google.com/p/cuda-convnet
[3]LeCun Y, Jackel L D, Bottou L, et al. Learning algorithms for classification: A comparison on handwritten digit recognition[J]. Neural Networks, 1995, 2(3): 261-276
[4]Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks[C] //Proc of 2012 Neural Information Processing Systems (NIPS’12). Cambridge, MA: MIT Press, 2012: 1097-1106
[5]Jia Yangqing. Caffe: An open source convolutional architecture for fast feature embedding[OL]. [2014-12-12]. http://caffe.berkeleyvision.org
[6]Bergstra J, Breuleux O, Bastien F, et al. Theano: A CPU and GPU math expression compiler[C] //Proc of the Python for Scientific Computing Conf (SciPy). Austin, Texas: No Starch Press, 2010: 3-11
[7]Povey D, Ghoshal A, Boulianne G, et al. The kaldi speech recognition toolkit[C] //Proc of 2011 Automatic Speech Recognition and Understanding(ASRU 2011). Piscataway, NJ: IEEE, 2011
[8]Curtin R R, Cline J R, Slagle N P, et al. MLPACK: A scalable C++ machine learning library[J]. Journal of Machine Learning Research, 2013, 14(1): 801-805
[9]Ronan C, Clement F, Koray K, et al. Torch7 : A scientific computing framework with wide support for machine learning algorithms[OL]. [2015-01-04]. http://torch.ch
[10]Dean J, Corrado G S, Monga R, et al. Large scale distributed deep networks[C] //Proc of the Neural Information Processing Systems (NIPS’12). Cambridge, MA: MIT Press, 2012: 1223-1232
[11]Yadan O, Adams K, Taigman Y, et al. Multi-GPU training of convnets[OL]. [2015-01-12]. http://kr.nvidia.com/content/tesla/pdf/machine-learning
[12]Yu Kai. Large-scale deep learning at Baidu[C] //Proc of Int Conf on Information and Knowledge Management (CIKM 2013). New York: ACM, 2013: 2211-2212
[13]Zou Yongqiang, Jin Xing, Li Yi, et al. Mariana: Tencent deep learning platform and its applications[C] //Proc of the Int Conf on Very Large Data Bases(VLDB 2014). Amsterdam, the Netherlands: Elsevier, 2014: 1772-1777
[14]Conrad S, Ryan C. Armadillo: An open source C++ linear algebra library for fast prototyping and computationally intensive experiments[R]. Queensland, Australia: National Information Communications Technology Australia (NICTA), the University of Queensland, 2010
[15]Zhang Xianyi. OpenBLAS: An optimized BLAS library based on GotoBLAS2 1.13 BSD version[OL]. [2014-12-11]. http://www.openblas.net
[16]NVIDIA. NVBLAS library: A GPU-accelerated library that implements BLAS[OL]. [2014-10-11]. http://developer.nvidia.com
[17]University of Tennessee, University of California, Berkeley, etc. LAPACK (linear algebra package): A standard software library for numerical linear algebra[OL]. [2014-10-12]. http://www.netlib.org/lapack
[18]Huang Guangbin, Zhu Qinyu, Siew C K. Extreme learning machine: A new learning scheme of feedforward neural networks[J]. Neural Networks, 2004, 2(3): 985-990
[19]Lü Qi, Dou Yong, Niu Xin, et al. Remote sensing image classification based on DBN model[J]. Journal of Computer Research and Development, 2014, 51(9): 1911-1918 (in Chinese)(呂啟, 竇勇, 牛新, 等. 基于DBN模型的遙感圖像分類[J]. 計(jì)算機(jī)研究與發(fā)展, 2014, 51(9): 1911-1918)
[20]Chang C, Lin C. LIBSVM: A Library for support vector machines[OL]. [2014-11-20]. http://www.csie.ntu.edu.tw/~cjlin/libsvm
[21]Nielsen S F. The stochastic EM algorithm: Estimation and asymptotic results[J]. Bernoulli, 2000, 3(6): 457-489
[22]Wu Z, Song S, Khosla A, et al. 3D ShapeNets for 2.5D object recognition and next-best-view prediction[OL]. [2015-02-02]. http://arxiv.org/abs/1406.5670
[23]Lopes N, Ribeiro B. Towards adaptive learning with improved convergence of deep belief networks on graphics processing units[J]. Pattern Recognition, 2014, 47(1): 114-127
Wang Yueqing, born in 1988. PhD candidate. His main research interests include computer architecture, machine learning and high performance computing.
Dou Yong, born in 1966. Professor and PhD supervisor. Senior member of China Computer Federation. His main research interests include computer architecture and reconfigurable computing.
Lü Qi, born in 1987. PhD candidate. Student member of China Computer Federation. His main research interests include computer architecture, machine learning and remote sensing image processing.
Li Baofeng, born in 1980. Assistant professor at National University of Defense Technology. His main research interests include design of supercomputer and high performance computer architecture.
Li Teng, born in 1991. Master candidate. His main research interests include computer architecture and high perfor-mance computing.
DLPF: A Parallel Deep Learning Programming Framework Based on Heterogeneous Architecture
Wang Yueqing1, Dou Yong1, Lü Qi1, Li Baofeng2, and Li Teng1
1(ScienceandTechnologyonParallelandDistributedProcessingLaboratory,NationalUniversityofDefenseTechnology,Changsha410073)2(CollegeofComputer,NationalUniversityofDefenseTechnology,Changsha410073)
AbstractDeep learning plays an important role in machine learning field, and it has been widely used in various applications. The prospect of research and applications of deep learning are huge. However, deep learning also faces several challenges. Firstly, there are many tools in deep learning field, but these tools are not convenient to use for non-expert users because the installation and usage of them are really complex. Secondly, the diversity of deep learning is limited because the flexibility of existing deep learning models is not enough. Furthermore, the training time of deep learning is so long that the optimal hyper-parameters combination cannot be found in a short time. To solve these problems, we design a deep learning programming framework based on heterogeneous architecture in this paper. The programming framework establishes a unified module library which can be used to build a deep model through the visual interface conveniently. Besides, the framework also accelerates the basic modules on heterogeneous platform, and makes the speed of searching optimal hyper-parameters combination be faster. Experimental results show that the programming framework can construct deep models flexibly, and more importantly, it can achieve comparative classification results and better timing performance for a variety of applications. In addition, the framework can search optimal hyper-parameters efficiently and make us infer the relationship of all hyper-parameters.
Key wordsdeep learning; programming framework; visualization; heterogeneous architecture; accelerate
收稿日期:2015-02-15;修回日期:2015-06-23
基金項(xiàng)目:國(guó)家自然科學(xué)基金項(xiàng)目(61125201,U1435219)
中圖法分類號(hào)TP183
This work was supported by the National Natural Science Foundation of China (61125201,U1435219).