一種基于大規(guī)模高性能集群的卷積神經(jīng)網(wǎng)絡(luò)并行處理方法
【專利摘要】本發(fā)明公開了一種基于大規(guī)模高性能集群的卷積神經(jīng)網(wǎng)絡(luò)并行處理方法,其步驟為:(1)將要訓(xùn)練的網(wǎng)絡(luò)模型構(gòu)建出多個副本,每個副本的模型參數(shù)均相同,副本的個數(shù)與高性能集群的節(jié)點數(shù)相同,每個節(jié)點上分布一個模型副本;選定一個節(jié)點作為主節(jié)點,負責(zé)模型參數(shù)的廣播與收集;(2)將訓(xùn)練集分為若干子集,每次將訓(xùn)練子集分發(fā)給除主節(jié)點之外的其余子節(jié)點,共同進行參數(shù)梯度的計算,并將梯度值累計,累計值用來更新主節(jié)點模型參數(shù),將更新后的模型參數(shù)廣播給各個子節(jié)點,直到模型訓(xùn)練終止。本發(fā)明具有能夠?qū)崿F(xiàn)并行化、提高模型訓(xùn)練的效率、減少訓(xùn)練時間等優(yōu)點。
【專利說明】一種基于大規(guī)模高性能集群的卷積神經(jīng)網(wǎng)絡(luò)并行處理方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明主要涉及到高性能計算集群的設(shè)計領(lǐng)域,特指一種基于大規(guī)模高性能集群 的卷積神經(jīng)網(wǎng)絡(luò)并行處理方法。
【背景技術(shù)】
[0002] 高性能計算機是一個計算機集群系統(tǒng),它通過高速互聯(lián)技術(shù)將多個計算機系統(tǒng)連 接在一起,利用所有被連接系統(tǒng)的綜合計算能力來處理大型計算問題,所以又通常被稱為 "高性能計算集群"或"高性能集群"。高性能集群主要用于處理復(fù)雜的計算問題,應(yīng)用在需 要大規(guī)??茖W(xué)計算的環(huán)境中,如天氣預(yù)報、石油勘探與油藏模擬、分子模擬、基因測序等。高 性能集群上運行的應(yīng)用程序一般使用并行算法,把一個大的普通問題根據(jù)一定的規(guī)則分為 許多小的子問題,在集群內(nèi)的不同節(jié)點上進行計算,而這些小問題的處理結(jié)果,經(jīng)過處理可 合并為原問題的最終結(jié)果。由于這些小問題的計算一般是可以并行完成的,從而可以縮短 問題的處理時間。
[0003] 高性能集群在計算過程中,各節(jié)點是協(xié)同工作的,它們分別處理大問題的一部分, 并在處理中根據(jù)需要進行數(shù)據(jù)交換,各節(jié)點的處理結(jié)果都是最終結(jié)果的一部分。高性能集 群的處理能力與集群的規(guī)模成正比,是集群內(nèi)各節(jié)點處理能力之和。隨著大量的應(yīng)用程序 開發(fā)和移植,集群架構(gòu)以更低的成本獲得更出色的性能,從而成為了高性能計算的主流,順 應(yīng)了平民化的發(fā)展趨勢,促進集群架構(gòu)在高性能計算機系統(tǒng)得到了廣泛的應(yīng)用。在CPU和 GTO計算能力的不斷提升的過程中,如何整合兩者的計算資源勢必成為一個研究熱點。
[0004] 卷積神經(jīng)網(wǎng)絡(luò)是一種特殊的深層神經(jīng)網(wǎng)絡(luò)模型。卷積網(wǎng)絡(luò)最初受視覺神經(jīng)機制 的啟發(fā)而設(shè)計,是為識別二維形狀而設(shè)計的一個多層感知器,這種網(wǎng)絡(luò)結(jié)構(gòu)對平移、比例縮 放、傾斜或者共他形式的變形具有高度不變性。1962年Hubel和Wiesel通過對貓視覺皮層 細胞的研究,提出了感受野(receptive field)的概念。1984年日本學(xué)者Fukushima基于感 受野概念提出了神經(jīng)認知機(neocognitron)模型,它可以看作是卷積神經(jīng)網(wǎng)絡(luò)的第一個 實現(xiàn),也是感受野概念在人工神經(jīng)網(wǎng)絡(luò)領(lǐng)域的首次應(yīng)用。
[0005] -般地,卷積神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)包括兩層,其一為特征提取層,每個神經(jīng)元的輸 入與前一層的局部接受域相連,并提取該局部的特征。一旦該局部特征被提取后,它與其 它特征間的位置關(guān)系也隨之確定下來;其二是特征映射層,網(wǎng)絡(luò)的每個計算層由多個特征 映射組成,每個特征映射是一個平面,平面上所有神經(jīng)元的權(quán)值相等。特征映射結(jié)構(gòu)采用 sigmoid函數(shù)作為卷積網(wǎng)絡(luò)的激活函數(shù),使得特征映射具有位移不變性。此外,由于一個映 射面上的神經(jīng)元共享權(quán)值,減少了網(wǎng)絡(luò)自由參數(shù)的個數(shù)。卷積神經(jīng)網(wǎng)絡(luò)中的每一個卷積層 都緊跟著一個用來求局部平均與二次提取的計算層,這種特有的兩次特征提取結(jié)構(gòu)減小了 特征分辨率。
[0006] 卷積神經(jīng)網(wǎng)絡(luò)主要用來識別位移、縮放及其他形式扭曲不變性的二維圖形。由于 卷積神經(jīng)網(wǎng)絡(luò)的特征檢測層通過訓(xùn)練數(shù)據(jù)進行學(xué)習(xí),所以在使用卷積神經(jīng)網(wǎng)絡(luò)時,避免了 顯示的特征抽取,而隱式地從訓(xùn)練數(shù)據(jù)中進行學(xué)習(xí);再者由于同一特征映射面上的神經(jīng)元 權(quán)值相同,所以網(wǎng)絡(luò)可以并行學(xué)習(xí),這也是卷積網(wǎng)絡(luò)相對于神經(jīng)元彼此相連網(wǎng)絡(luò)的一大優(yōu) 勢。卷積神經(jīng)網(wǎng)絡(luò)以其局部權(quán)值共享的特殊結(jié)構(gòu)在語音識別和圖像處理方面有著獨特的優(yōu) 越性,其布局更接近于實際的生物神經(jīng)網(wǎng)絡(luò),權(quán)值共享降低了網(wǎng)絡(luò)的復(fù)雜性,特別是多維輸 入向量的圖像可以直接輸入網(wǎng)絡(luò)這一特點避免了特征提取和分類過程中數(shù)據(jù)重建的復(fù)雜 度。
[0007] 卷積神經(jīng)網(wǎng)絡(luò)已成為當前語音分析和圖像識別領(lǐng)域的研究熱點,但是由于網(wǎng)絡(luò)層 數(shù)多,權(quán)值參數(shù)數(shù)量巨大,因此網(wǎng)絡(luò)模型的訓(xùn)練時間常常在數(shù)十天甚至幾個月,訓(xùn)練時間較 長也使卷積神經(jīng)網(wǎng)絡(luò)的推廣比較受限。但是由于其權(quán)值共享的獨特優(yōu)越性,卷積神經(jīng)網(wǎng)絡(luò) 并行學(xué)習(xí)為解決上述問題提供了思路,尤其是在GPU計算能力不斷攀升的當今時代,如何 整合并行計算資源對卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練進行加速也成為了研究的熱點。
[0008] 而目前國際前沿對神經(jīng)網(wǎng)絡(luò)的加速研究主要集中于兩個方向:第一,基于單個服 務(wù)器上多塊GPU進行并行加速,單個服務(wù)器不涉及多個節(jié)點之間的數(shù)據(jù)傳輸,并行加速容 易實現(xiàn),但是網(wǎng)絡(luò)模型的規(guī)模受限于單個服務(wù)器的配置;第二,使用大規(guī)模集群對神經(jīng)網(wǎng)路 的訓(xùn)練進行加速,提出了 DistBelief模型,但是并沒有應(yīng)用在卷積神經(jīng)網(wǎng)絡(luò)中,在受限玻 爾茲曼機和深信度網(wǎng)絡(luò)中應(yīng)用較為廣泛。因此結(jié)合大規(guī)模高性能集群的計算優(yōu)勢,實現(xiàn)卷 積神經(jīng)網(wǎng)絡(luò)的并行學(xué)習(xí),提高訓(xùn)練模型的效率,是本領(lǐng)域的一個技術(shù)難題,也是降低卷積神 經(jīng)網(wǎng)絡(luò)學(xué)習(xí)門檻,拓寬其應(yīng)用的一個重要方面。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明要解決的技術(shù)問題就在于:針對現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明提供一 種能夠?qū)崿F(xiàn)并行化、提1?!?型訓(xùn)練的效率、減少訓(xùn)練時間的基于大規(guī)1?!?性能集群的卷積 神經(jīng)網(wǎng)絡(luò)并行處理方法。
[0010] 為解決上述技術(shù)問題,本發(fā)明采用以下技術(shù)方案:
[0011] 一種基于大規(guī)模高性能集群的卷積神經(jīng)網(wǎng)絡(luò)并行處理方法,其步驟為:
[0012] (1)將要訓(xùn)練的網(wǎng)絡(luò)模型構(gòu)建出多個副本,每個副本的模型參數(shù)均相同,副本的個 數(shù)與高性能集群的節(jié)點數(shù)相同,每個節(jié)點上分布一個模型副本;選定一個節(jié)點作為主節(jié)點, 負責(zé)模型參數(shù)的廣播與收集;
[0013] (2)將訓(xùn)練集分為若干子集,每次將訓(xùn)練子集分發(fā)給除主節(jié)點之外的其余子節(jié)點, 共同進行參數(shù)梯度的計算,并將梯度值累計,累計值用來更新主節(jié)點模型參數(shù),將更新后的 模型參數(shù)廣播給各個子節(jié)點,直到模型訓(xùn)練終止。
[0014] 作為本發(fā)明的進一步改進:在所述步驟(1)中,每次迭代前先將網(wǎng)絡(luò)模型的參數(shù) 進行隨機初始化,初始化的模型參數(shù)包括權(quán)值參數(shù)W、偏置單元b ;先根據(jù)輸入的網(wǎng)絡(luò)參數(shù) 進行初始化,再逐層初始化網(wǎng)絡(luò)權(quán)值參數(shù)和偏置單元。
[0015] 作為本發(fā)明的進一步改進:所述初始化的方式采用rands隨機方式,使參數(shù)從-1 到1中隨機取值。
[0016] 作為本發(fā)明的進一步改進:還包括步驟(3)模型參數(shù)的更新流程,S卩:在經(jīng)過迭代 一定的步數(shù)后,各子節(jié)點將累積的參數(shù)梯度傳回主節(jié)點,并統(tǒng)一進行規(guī)約操作和模型參數(shù) 的更新;然后,再將更新后的模型參數(shù)分發(fā)給各個子節(jié)點,各子節(jié)點再進行梯度的計算,直 到模型訓(xùn)練終止。
[0017] 作為本發(fā)明的進一步改進:在步驟(2)中,令主進程單獨開一個線程預(yù)取訓(xùn)練集, 采用單進程進行數(shù)據(jù)讀取并將數(shù)據(jù)集分發(fā)給其他節(jié)點;即,將〇號進程設(shè)置為主進程,負責(zé) 數(shù)據(jù)的讀取以及發(fā)送,其余計算進程負責(zé)接收數(shù)據(jù),發(fā)送和接收采用MPI_Send和MPI_Recv 來實現(xiàn)。
[0018] 作為本發(fā)明的進一步改進:在步驟(2)中,各節(jié)點是采用并行訓(xùn)練的方式進行模 型參數(shù)的訓(xùn)練;即:各個計算節(jié)點針對分配到該節(jié)點的訓(xùn)練數(shù)據(jù)集進行網(wǎng)絡(luò)模型參數(shù)的訓(xùn) 練。
[0019] 作為本發(fā)明的進一步改進:所述模型訓(xùn)練的基本層次結(jié)構(gòu)包括卷積層,下采樣層 以及全連接層,每個層次包括前向傳播和后向反饋兩類計算;所述卷積層為特征提取層,每 個神經(jīng)元的輸入與前一層的局部感受野相連,并提取該局部特征;所述下采樣層是特征映 射層,每個特征映射為一個平面,平面上所有神經(jīng)元的權(quán)值相等;所述全連接層將提取的特 征整合為一個一維向量,最后連接到分類器上,完成整個網(wǎng)絡(luò)的分類功能;所述前向傳播 的計算,是將計算的結(jié)果與訓(xùn)練標簽相對比,其誤差進行反向傳播,根據(jù)隨機梯度下降算法 SGD計算偏導(dǎo)求出每個層次中每個模型參數(shù)的梯度Aw大小,并將Aw累計;重復(fù)上述前向 后向的過程,不斷累加模型參數(shù)梯度△?,當每個計算節(jié)點上迭代計算次數(shù)累計到一定的閾 值時,進行同步通信,完成模型參數(shù)的更新。
[0020] 作為本發(fā)明的進一步改進:所述步驟(3)中,當整個迭代計算到一定次數(shù),所有計 算節(jié)點將累計的參數(shù)梯度傳回主進程,主進程對各個進程傳回的進行規(guī)約操作,并 對模型參數(shù)w進行更新:
【權(quán)利要求】
1. 一種基于大規(guī)模高性能集群的卷積神經(jīng)網(wǎng)絡(luò)并行處理方法,其特征在于,步驟為: (1) 將要訓(xùn)練的網(wǎng)絡(luò)模型構(gòu)建出多個副本,每個副本的模型參數(shù)均相同,副本的個數(shù)與 高性能集群的節(jié)點數(shù)相同,每個節(jié)點上分布一個模型副本;選定一個節(jié)點作為主節(jié)點,負責(zé) 模型參數(shù)的廣播與收集; (2) 將訓(xùn)練集分為若干子集,每次將訓(xùn)練子集分發(fā)給除主節(jié)點之外的其余子節(jié)點,共同 進行參數(shù)梯度的計算,并將梯度值累計,累計值用來更新主節(jié)點模型參數(shù),將更新后的模型 參數(shù)廣播給各個子節(jié)點,直到模型訓(xùn)練終止。
2. 根據(jù)權(quán)利要求1所述的基于大規(guī)模高性能集群的卷積神經(jīng)網(wǎng)絡(luò)并行處理方法,其特 征在于,在所述步驟(1)中,每次迭代前先將網(wǎng)絡(luò)模型的參數(shù)進行隨機初始化,初始化的模 型參數(shù)包括權(quán)值參數(shù)W、偏置單元b;先根據(jù)輸入的網(wǎng)絡(luò)參數(shù)進行初始化,再逐層初始化網(wǎng) 絡(luò)權(quán)值參數(shù)和偏置單元。
3. 根據(jù)權(quán)利要求2所述的基于大規(guī)模高性能集群的卷積神經(jīng)網(wǎng)絡(luò)并行處理方法,其特 征在于,所述初始化的方式采用rands隨機方式,使參數(shù)從-1到1中隨機取值。
4. 根據(jù)權(quán)利要求1或2或3所述的基于大規(guī)模高性能集群的卷積神經(jīng)網(wǎng)絡(luò)并行處理方 法,其特征在于,還包括步驟(3)模型參數(shù)的更新流程,S卩:在經(jīng)過迭代一定的步數(shù)后,各子 節(jié)點將累積的參數(shù)梯度傳回主節(jié)點,并統(tǒng)一進行規(guī)約操作和模型參數(shù)的更新;然后,再將更 新后的模型參數(shù)分發(fā)給各個子節(jié)點,各子節(jié)點再進行梯度的計算,直到模型訓(xùn)練終止。
5. 根據(jù)權(quán)利要求1或2或3所述的基于大規(guī)模高性能集群的卷積神經(jīng)網(wǎng)絡(luò)并行處理方 法,其特征在于,在步驟(2)中,令主進程單獨開一個線程預(yù)取訓(xùn)練集,采用單進程進行數(shù) 據(jù)讀取并將數(shù)據(jù)集分發(fā)給其他節(jié)點;即,將〇號進程設(shè)置為主進程,負責(zé)數(shù)據(jù)的讀取以及發(fā) 送,其余計算進程負責(zé)接收數(shù)據(jù),發(fā)送和接收采用MPI_Send和MPI_Recv來實現(xiàn)。
6. 根據(jù)權(quán)利要求1或2或3所述的基于大規(guī)模高性能集群的卷積神經(jīng)網(wǎng)絡(luò)并行處理方 法,其特征在于,在步驟(2)中,各節(jié)點是采用并行訓(xùn)練的方式進行模型參數(shù)的訓(xùn)練;S卩:各 個計算節(jié)點針對分配到該節(jié)點的訓(xùn)練數(shù)據(jù)集進行網(wǎng)絡(luò)模型參數(shù)的訓(xùn)練。
7. 根據(jù)權(quán)利要求4所述的基于大規(guī)模高性能集群的卷積神經(jīng)網(wǎng)絡(luò)并行處理方法,其特 征在于,所述模型訓(xùn)練的基本層次結(jié)構(gòu)包括卷積層,下采樣層以及全連接層,每個層次包括 前向傳播和后向反饋兩類計算;所述卷積層為特征提取層,每個神經(jīng)元的輸入與前一層的 局部感受野相連,并提取該局部特征;所述下采樣層是特征映射層,每個特征映射為一個平 面,平面上所有神經(jīng)元的權(quán)值相等;所述全連接層將提取的特征整合為一個一維向量,最后 連接到分類器上,完成整個網(wǎng)絡(luò)的分類功能;所述前向傳播的計算,是將計算的結(jié)果與訓(xùn)練 標簽相對比,其誤差進行反向傳播,根據(jù)隨機梯度下降算法SGD計算偏導(dǎo)求出每個層次中 每個模型參數(shù)的梯度大小,并將累計;重復(fù)上述前向后向的過程,不斷累加模型參 數(shù)梯度Aw,當每個計算節(jié)點上迭代計算次數(shù)累計到一定的閾值時,進行同步通信,完成模 型參數(shù)的更新。
8. 根據(jù)權(quán)利要求7所述的基于大規(guī)模高性能集群的卷積神經(jīng)網(wǎng)絡(luò)并行處理方法,其 特征在于,所述步驟(3)中,當整個迭代計算到一定次數(shù),所有計算節(jié)點將累計的參數(shù)梯度 Λw傳回主進程,主進程對各個進程傳回的△w進行規(guī)約操作,并對模型參數(shù)w進行更新:
【文檔編號】G06N3/02GK104463324SQ201410674860
【公開日】2015年3月25日 申請日期:2014年11月21日 優(yōu)先權(quán)日:2014年11月21日
【發(fā)明者】王馨 申請人:長沙馬沙電子科技有限公司