任 剛 鄧 攀 楊 超 吳長茂
1(河南工學院計算機科學與技術系 河南新鄉 453003) 2(中國科學院軟件研究所并行軟件與計算科學實驗室 北京 100190) 3 (中國科學院大學 北京 100049) (rengang2013@iscas.ac.cn)
神經網絡(neural networks, NNs)也稱神經元計算網絡,是機器學習中的一類重要算法,其由許多具有層次關系的神經節點構成,能夠通過樣本學習實現權值調整從而模擬非線性映射關系[1].它借助于人類神經系統活動能夠實現處理、存儲和檢索外界信息的原理,來實現自動學習、存儲和運行等智能行為.從出現到現在的幾十年里,學術界和工業界對其進行了廣泛的研究并取得了大量成果[2].目前,神經網絡已成為一個強大的計算模型,可以有效地解決復雜的模式分類[3-5]、圖形圖像識別[6-8]、語義理解[9-11]和語音識別[12-14]等問題.
BP(back propagation)算法是一種經典的神經網絡學習算法,它采用隨機選定網絡初始值、梯度逐步下降的方法完成神經網絡的訓練.該算法訓練過程包含大量計算,屬于典型計算密集型算法,因此,BP算法的并行化成為神經網絡熱點研究方向之一.目前,其并行方法主要包括數據并行和結構并行2類.數據并行方法將樣本數據平均分配到多個計算節點,實現數據的并行處理,而單個計算節點包含整個神經網絡結構,因此該方法又稱為粗粒度并行[15-17],它適合于大數據樣本訓練.結構并行方法是將整個神經網絡劃分為多個結構,各結構之間并行訓練,因此又稱為細粒度并行[18-19],該方法適用于大規模神經網絡訓練.
近年來,神經網絡的數據訓練集規模越來越大,維度也越來越高,呈現出明顯的大數據特點[1].因此,基于Hadoop集群系統[20]MapReduce并行模型[21]的BP算法受到廣泛重視.文獻[22]于2006年首次提出了基于MapReduce并行模型的BP (MapReduce back propagation, MRBP)算法.文獻[23]針對大規模移動數據相似度較高的問題,將Adaboost算法[24]引入MRBP算法中,有效地提高相似性大數據的學習效率.文獻[25-27]在基本MRBP算法上又提出了具有局部迭代功能的MRBP算法,進一步優化了MRBP算法的效率.最近,又有學者利用智能算法提高MRBP算法訓練效率.比如,文獻[28]提出了基于遺傳算法(genetic algorithm, GA)[29]的MRBP算法.文獻[30]利用粒子群優化(particle swarm optimization, PSO)算法[31]優化MRBP算法的訓練效率.
從并行方式來講,上述MRBP算法均采用粗粒度并行方式,面對樣本較多的情況,表現出良好的性能.但是,該類算法缺乏細粒度結構并行的能力,當訓練數據維度較高、網絡中神經節點較多時,訓練效率仍顯不足.因此,如何實現MRBP算法的結構并行成為一個亟需解決的問題.
然而,現有基于消息傳遞集群系統的結構并行方法[32-33]不適用于基于Hadoop集群的MRBP算法.其原因在于Hadoop集群系統的MapReduce編程模型中沒有顯式的消息通信指令,其計算節點之間的通信由Hadoop系統自動完成.為此,本文嘗試提出一種適合Hadoop集群MapReduce編程模型的結構并行方法,來提高MRBP算法的訓練效率.本文的主要貢獻在于:
1) 提出了一個適合于MapReduce 編程模型的結構并行策略,即逐層并行-逐層集成(layer-wise parallelism and layer-wise ensemble, LPLE)結構并行策略.根據該并行策略,設計了基于結構并行的MRBP算法——SP-MRBP(structure parallelism based MRBP),并給出了該算法主要實現代碼.據作者所知,這是首次將結構并行方法引入MRBP算法;
2) 推導出了SP-MRBP算法與經典MRBP算法計算時間解析表達式,并以此分析了這2種算法的計算時間差和SP-MRBP算法最優并行結構數;
3) 通過并行結構規模擴展性、計算節點規模擴展性、樣本規模擴展性和網絡規模擴展性4組實驗,驗證了SP-MRBP算法的有效性.
人工神經網絡是一種全連接多層網絡,一個L層神經網絡如圖1所示.底層(l=1)為輸入層,頂層 (l=L)為輸出層,中間層又稱為隱含層.第l層包含nl個神經節點.每個神經節點都與上一層和下一層的所有神經節點相連.每個神經節點有一個激活值和一個誤差值,我們把l層上節點i的激活值記為ai(l),誤差值記為δi(l).l+1層的神經節點i和l層的神經節點j之間的權值表示為wi j(l+1).

Fig. 1 Fully connected multiple layer network圖1 全連接多層神經網絡
BP算法是一個有導師的機器學習訓練算法,它使用一組樣本集合去訓練一個多層神經網絡.訓練過程的實質是尋找網絡權重的過程.該算法包括3個階段:信號向前傳播、誤差向后反饋和權值更新.1)在信號向前傳播階段,一個樣本的輸入部分從輸入層輸入,然后逐層傳播,計算出每層節點的輸出值,最后在輸出層,每個節點的激活值與該樣本的輸出部分的差值作為該節點的誤差.2)在誤差反饋階段,輸出層的誤差逐層向底層傳播,計算出下面每層節點的誤差.3)在權值更新階段,根據新的激活值和誤差更新權值矩陣.第1階段計算過程如圖2所示,第2階段和第3階段這2個階段可以合并計算,其詳細過程如圖3所示.

Fig. 2 Forward stage of signal transmission圖2 信號向前傳播階段

Fig. 3 Backward and weight update stage圖3 誤差向后傳播與權值矩陣更新階段
具有單隱含層的多層神經網絡,只要具有足夠多的神經節點,就足以逼近任意一個輸入輸出函數[34].因此,本文以3層(l=1,2,3),每層有nl個神經節點的多層神經網絡為例,來分析上述3個階段的時間復雜度.
信號向前傳播階段如圖2所示,對于給定的輸入樣本P,隱含層和輸出層的激活值計算公式如下:

(1)
i=1,2,…,nl,l=2,3,
其中,f(·)為sigmod函數,θ為閾值常數.我們分別用tm,ta和tac表示浮點數乘法、加法和計算激活值所消耗的時間.同時,不失一般性,忽略θ的計算時間,那么向前階段所消耗時間可近似表示為
t1=n2(n1+n3)(tm+ta)+tac(n2+n3),
(2)
令Ma=tm+ta,tac=αMa,則:
t1=n2(n1+n3)Ma+αMa(n2+n3)=
n2(n1+n3+α)Ma+αn3Ma.
(3)
誤差向后反饋階段如圖3所示,該階段網絡輸出值與期望值的誤差通過權值矩陣向底層神經節點反饋.輸出層第i個節點的誤差值δi(2)可表示如下:
δi(3)=(ai(3)-ti))f′(·),i=1,2,…,n3,
(4)
其中,f′(·)是激活函數的一階導數,ai(3)是輸出層神經節點i的實際輸出,ti是其期望輸出.
中間層誤差項δi(2)可表示如下:
(5)
整個過程所需要的時間t2可近似表示為
t2=n2n3Ma.
(6)
權值更新階段利用誤差項δj(l+1)和激活值ai(l)來更新wj i(l).
wj i(l)=wj i(l)+ηδj(l+1)ai(l),
(7)
其中,η表示學習率.權值矩陣更新時間可表示為
t3=n2(n1+n3)Ma.
(8)
輸入樣本P的1次訓練時間Tseq可表示為
Tseq=t1+t2+t3=(2n2n1+3n2n3+
αn2+αn3)Ma=(n2K+αn3)Ma,
(9)
其中,K=2n1+3n3+α.
Hadoop集群系統是一種為實現大數據處理的云計算系統,主要由Hadoop分布式文件系統(Hadoop distributed file system, HDFS)[35]和MapReduce編程模型[21]構成.HDFS文件系統總體框架如圖4所示,它包含名稱節點(NameNode)和數據節點(DataNode)2個角色.一個文件被分為若干個塊(Block),分布存儲在多個數據節點.通常情況下,為了提高系統可靠性,每個文件塊還會有2個副本.文件塊的位置信息由名稱節點管理.當客戶端需要寫入文件時,首先向名稱節點請求寫入位置,然后按照名稱節點指定的位置寫入文件,而另外的2個副本則由數據節點負責寫入.當客戶端讀取文件時,則向名稱節點請求文件位置信息,然后按照指定位置信息讀取文件.HDFS集群節點之間通過Java socket組播傳輸模式通信.另外,名稱節點和數據節點上分別有1個JobTracker進程和1個TaskTracker進程,負責作業指派和任務管理.

Fig. 4 HDFS file system圖4 HDFS文件系統

Fig. 5 MapReduce programming model圖5 MapReduce編程模型
MapReduce編程模型包括Mapper和Reducer這2個任務,其詳細處理流程如圖5所示:首先,在每個數據節點上,由TaskTracker進程啟動Mapper任務,1個Mapper依次讀取1個數據分片(Split)中的每個鍵值對,該數據分片一般對應于1個數據塊,讀取完畢后,按具體業務邏輯產生新的鍵值對,如下所示:
Mapper∷(key1,value1)→
list(key2,value2).
(10)
在Mapper任務完成后,根據具體的業務邏輯,可以直接將計算結果存入HDFS供下次迭代使用;或者把(key2,value2)合并成鏈表形式發送給Reducer節點,進行規約處理.其Reducer處理邏輯如下所示:
Reducer∷(key2,list(value2))→
list(key3,value3).
(11)
目前存在的基于消息傳遞集群結構并行方法,常采用垂直分割的方法[32-33],該方法將每層神經節點平均映射到多個集群計算節點上,逐層計算,每計算一層,各計算節點彼此通信,交換計算結果,以此提高訓練效率.但是,由于Hadoop集群中各計算節點的通信不由用戶直接控制,現有方法并不能直接應用于MapReduce編程模型.為了在Hadoop集群環境下實現結構并行,本文提出逐層并行-逐層集成(LPLE)策略.

Fig. 6 LPLE strategy圖6 逐層并行-逐層集成結構并行策略
圖6顯示了基于3層神經網絡的LPLE并行策略,該策略將隱含層和輸出層均分為m個并行結構;而輸入層不進行結構劃分.在信號向前傳播階段,隱含層各結構首先根據輸入層數據,計算出各自神經節點激活值;然后集成各結構結果,為輸出層激活值計算提供數據.在誤差反饋階段,輸出層各并行結構根據已計算出的激活值,計算出本結構所有節點誤差值,然后集成所有結構的輸出,為隱含層誤差值計算提供準備.
在具體MapReduce模型的實現上,LPLE策略中每個結構的計算任務都由1個MapReduce作業完成,并行結構輸出結果集成由另一個MapReduce作業來完成.這樣,每層計算由m個并行結構作業和1個集成作業完成.下面給出代碼實現中主要符號含義.
Pi:輸入樣本i;
yj:輸出層第j個神經節點期望輸出;
A(l)=(a1(l),a2(l),…,anl(l)):l層激活值向量;
Infor_A(l)=(A(1),A(2),…,A(l)):從輸入層到l層激活值向量集合;
δ(l)=(δ1(l),δ2(l),…,δnl(l)):l層各節點誤差值;
Infor_δ(l)=(δ(L),δ(L-1),…,δ(l)):從輸出層到l層的誤差值集合;
Structure_Fk=(as tart(l),…,ae nd(l)):向前階段l層并行結構k各神經節點激活值集合,start為開始神經節點,end為結尾神經節點;
Structure_Bk=(δs tart(l),…,δe nd(l)):向后階段l層并行結構k神經節點誤差值集合.
2.3.1 結構并行作業
向前階段并行結構的Mapper從HDFS的文件分片中依次讀取樣本數據,計算出該結構所有節點激活值,再存回HDFS中,待后繼集成作業處理.若當前層是輸出層的話,為了提高計算速度,本文把誤差值δi(l)計算及權值增量Δwi j(l)計算也一并完成,并把Δwi j(l)作為key2,δi(l)aj(l-1)作為value2,發送給Reducer任務.l層Mapper任務主要算法如下.
算法1. 前向階段第l層第k個并行結構Mapper算法.
① for (i=start;i+ +;i ② for (j=1;j+ +;j ③sum_ai(l)=aj(l-1)wi j(l); ④ end for ⑤ai(l)=f(sum_ai(l)+θ); ⑥Structure_Fk=Structure_Fk∪ai(l); ⑦ ifl=Lthen ⑧δi(l)=(ai(l)-yi)f′(·); ⑨Structure_Bk=Structure_Bk∪ai(l); 本文算法中,權值矩陣采用全局變量形式.值得注意的是,由于在計算l誤差值時,還需要用到l+1層權值矩陣,因此,l+1層權值矩陣必須在l層誤差值全部計算完畢后,才能更新.為此,本文設置2個權值矩陣,一個是權值矩陣(wi j(l)),一個是權值增量矩陣(Δwi j(l)).這里,Reducer任務只負責更新輸出層權值增量矩陣(Δwi j(l)),而權值矩陣在后繼作業中更新. 算法2. 向前階段第l層Reducer算法. ① for eachvalueinValueListdo ②sum=sum+value; ③num+ +; ④ end for ⑤avg=sumnum; ⑥ Update Δwi j(l) withavg. 2.3.2 結構集成作業 向前階段集成作業中,Mapper負責將各個數據節點的結構信息發送給Reducer數據節點. 算法3. 向前階段第l層結構集成Mapper算法. ① ifl=Lthen ③ else ⑤ end if Reducer收到Mapper發送來的結構數據后,將各結構數據集成后,重新寫回HDFS,為下層計算提供數據.若當前層是輸出層,則還需集成誤差值. 算法4. 向前階段第l層結構集成Reducer算法. ① ifl=Lthen ② for (k=1;k+ +;k ③A(l)=A(l)∪Structure_Fk(l); ④δ(l)=δ(l)∪Structure_Bk(l); ⑤ end for ⑥Infor_A(l)=Infor_A(l-1)∪A(l); ⑦Infor_δ(l)=Infor_δ(l-1)∪δ(l); ⑨ else ⑩ for (k=1;k+ +;k 向后階段負責逐層計算各結構神經節點誤差值并集成各結構輸出,同時更新相應權值矩陣,為下一層計算提供數據.下面分別給出向后階段結構并行和結構集成MapReduce模型實現主要代碼. 2.4.1 結構并行作業 在求得樣本Pi各層激活值及其輸出層誤差值后,開始向后求隱含層誤差值并更新權值矩陣.假設l層被平均分割為m個并行結構,則每個并行結構對應1個MapReduce作業,其Mapper有3個任務:1)計算結構內節點誤差值;2)計算神經節點權值增量,并發送給Reducer;3)更新上一層權值矩陣. 算法5. 向后階段第l層第k個并行結構Mapper算法. ①num+ +; ② for (i=start;i+ +;i ③ for (j=1;j+ +;j ④sum_δi(l+1)=sum_δi(l+1)+δj(l+1)wj i(l+1); ⑤ Updatewj i(l+1) with Δwj i(l+1); ⑥ end for ⑦δi(l)=f′(·)sum_δi(l+1); ⑧Structure_Bk=Structure_Bk∪δi(l); ⑨ for (j=1;j+ +;j Reducer對收到的所有權值增量取平均值,并更新權值增量矩陣Δwi j(l).如果當前層是隱含層最后一層(2層),直接更新權值矩陣wi j(l). 算法6. 向后階段第l層結構并行Reducer算法. ① for eachvalueinValueListdo ②sum=sum+value; ③num+ +; ④ end for ⑤avg=sumnum; ⑥ ifl=2 then ⑦ Updatewi j(l) withavg; ⑧ else ⑨ Update Δwi j(l) withavg; ⑩ end if 2.4.2 結構集成作業 該階段由1個MapReduce作業來完成,其Mapper從HDFS讀取l+1層的各結構數據后,發送給Reducer. 算法7. 向后階段第l層第k個結構Mapper算法. Reducer接收到經過系統整理過的樣本結構數據后,合并各結構誤差值,并存入HDFS,為下層計算做好數據準備. 算法8. 向后階段第l層結構集成Reducer算法. ① for (k=1;k+ +;k ②δ(l)=δ(l)∪Structure_Bk(l); ③ end for ④Infor_δ(l)=Infor_δ(l+1)∪δ(l); 準確的算法執行時間涉及眾多因素,很難準確表示.為了分析影響算法效率的主要因素,本節以3層網絡為例,給出SP-MRBP算法和MRBP算法復雜度近似解析表達式,旨在分析影響SP-MRBP算法和MRBP算法時間差及SP-MRBP算法最優并行結構數的主要因素. 假設神經網絡隱含層和輸出層都被分為m個并行子結構,則1個樣本的訓練時間可計算如下. 3.1.1 向前激活值計算階段 (12) tcom(w)=m(tini+tcg(w)), (13) 其中,tc表示發送或接收一個浮點數的時間,tini是通信啟動時間,g(w)是分組廣播模式的規模大小.通常g(w)?w.根據式(13),可得: (15) 根據式(14)(15)則有: (16) (17) 則第1階段時間可近似表示為 (18) 3.1.2 誤差向后反饋階段 (19) (20) 根據式(19)(20),可得: (21) 3.1.3 權值更新階段 (22) (23) 由式(22)(23)可得: (24) 從上述分析可知,SP-MRBP算法1次訓練時間TSP-MRBP可近似表示為 (25) (26) 假設共有A條樣本,p個數據節點,則每個數據節點有Ap條樣本,則整個訓練時間為 (27) 式(27)由2項構成,第1項可以認為是樣本計算時間,第2項可以認為是樣本通信時間.可知,在樣本總數和計算節點一定的情況下,隨著并行結構數m增加,其計算時間會隨之減少,而通信時間會隨之增加. (28) 1個樣本訓練還包括1次通信過程,每次廣播大小為n2(n1+n3),根據式(13),其通信時間可表示為 (29) (30) (31) 假設樣本數為A,數據節點數為p,則每個數據節點有Ap個樣本.整個MRBP算法所需時間為 (32) 根據式(27)(32),可得MRBP算法和SP-MRBP算法時間差如下: (33) (35) 則式(33)可進一步簡化為 (36) 當m逐步增大,1-1m趨近1,6m-1趨近6m,則進一步簡化為 (37) 根據式(37),不難推出,當 (38) 時,SP-MRBP算法計算時間會小于原MRBP算法時間. 從式(27)來看,當不斷增加并行結構數m,計算時間會不斷減少,而通信成本會不斷增加.總計算時間呈現出先減少后增加的趨勢,對式(27)求m的一階偏導數,可得: (39) 令式(39)等于零,求出最優并行結構數m*: (40) 本節給出SP-MRBP算法與經典MRBP算法[22]和PSO-MRBP算法[30]的性能比較實驗. 本實驗用于測試并行結構數對算法性能的影響,實驗數據包括100萬條樣本.計算節點數為16.整個系統包含Mapper任務總數為16×4=64個.神經網絡設置為3層.各層神經節點數都設置相同.實驗考慮小型網絡、中型網絡和大型網絡3種規模,其單層節點數分別為50,100,200.并行結構數從1增加到16. 實驗結果如圖7所示,可以看出,隨著并行結構數的增多,計算時間總體下降,證明了本文算法的有效性.但是,隨著并行結構數的增加,計算時間反而會小幅增長,其原因有2個:首先,并行結構數的增加會造成通信成本的增大.其次,并行結構數增加會導致在單個數據節點上待運行的Mapper任務數超過最大并發數. Fig. 7 Scalability of parallel structure size圖7 并行結構擴展性 同時,我們觀察到,對于大規模網絡來說,其系統瓶頸要大于小規模網絡,說明本文算法對大規模網絡更有效. 本實驗用于測試計算節點數對計算時間的影響.此實驗中,神經網絡設置為3層,每層100個神經節點,樣本總數控制在100萬條,根據上個實驗得到的結果,單層并行結構數設置為7.集群節點數從1增加到16,這樣系統Mapper任務總數從4逐步增加到64. 實驗結果如圖8所示,可以看出,隨著計算節點的增加,3個算法計算時間都隨之減少,這是因為計算任務被平均分配到個節點,從而縮短了計算時間.同時又注意到,在計算節點較小時,3個算法計算時間差別不大,這是由于在計算節點較少的情況下,計算節點滿負載工作,結構并行優勢不能發揮.而隨著計算節點的進一步增加,原算法得到了足夠多的資源,計算時間就不再下降,而本文算法仍然保持下降趨勢,表明本文算法具有更好的擴展性. Fig. 8 Scalability of computing node size圖8 計算節點擴展性 本實驗用于測試樣本規模對算法性能的影響.實驗中,神經網絡設置為3層,每層100個神經節點,單層并行結構為7,使用16個計算節點,整個系統包含16×4=64個Mapper任務,樣本數從10萬增加到100萬. 實驗結果如圖9所示,可以看出,3種算法計算時間都隨著樣本數的增加而增加.但是本文算法的增加幅度更小、更平穩.其原因在于,增加的計算量被平均分配到本文算法的各個并行結構中. Fig. 9 Scalability of sample size圖9 樣本規模擴展性 本實驗用于測試網絡規模對算法性能的影響,樣本總數100萬條,使用全部16個計算節點,整個系統共運行16×4=64個Mapper任務,SP-MRBP并行結構數設置為7,神經網絡設置為3層,每層節點從50逐步增加到500. 實驗結果圖10所示,可以看出,隨著網絡規模增加,3種算法計算時間都大幅增加,但是本文算法的增加幅度遠小于原算法,這是因為本文算法的并行結構可以平均分配增加的計算量. Fig. 10 Scalability of network size圖10 網絡規模擴展性 為了解決經典MRBP算法處理較大規模神經網絡時性能不足的問題,本文提出了一種支持結構并行的MRBP算法:SP-MRBP.該算法采用逐層并行-逐層集成(LPLE)的結構并行策略,來提高神經網絡的學習效率.同時,推導出了SP-MRBP算法和MRBP算法執行時間解析表達式,并據此分析了2種算法的時間差和SP-MRBP算法的最優并行結構數.實驗結果說明,對于規模較大的神經網絡,較之經典MRBP算法,本文算法具有較高效率. [1]Zhang Lei, Zhang Yi. Big data analysis by infinite deep neural networks[J]. Journal of Computer Research and Development, 2015, 53(1): 68-79 (in Chinese)(張蕾, 章毅. 大數據分析的無限深度神經網絡方法[J]. 計算機研究與發展, 2015, 53(1): 68-79) [2]Jiao Licheng, Yang Shuyuan, Liu Fang, et al. Seventy years Beyond neural networks: Restrospect and prospect[J]. Chinese Journal of Computers, 2016, 39(8): 1697-1707 (in Chinese)(焦李成, 楊淑媛, 劉芳, 等. 神經網絡七十年:回顧與展望[J]. 計算機學報, 2016, 39(8): 1697-1707) [3]Urszula M K, Mateusz K. Spiking neural network vs multilayer perceptron: Who is the winner in the racing car computer game[J]. Soft Computing, 2014, 23(5): 44-56 [4]Xu Jin, Yang Gugang, Yin Yafei, et al. Sparse-representation-based classification with structure-preserving dimension reduction[J]. Cognitive Computation, 2014, 6(3): 608-621 [5]Murphey Y L, Luo Yun. Feature extraction for a multiple pattern classification neural network system[C]Proc of the 16th Int Conf on Pattern Recognition. Piscataway, NJ: IEEE, 2002: 220-223 [6]Ciresan D C, Meier U, Gambardella L M, et al. Deep, big, simple neural nets for bandwritten digit recognition[J]. Neural Computation, 2010, 22(12): 3207-3220 [7]Graves A, Liwicki M, Fernández S, et al. A novel connectionist system for unconstrained handwriting recognition[J]. IEEE Trans on Pattern Analysis & Machine Intelligence, 2009, 31(5): 855-868 [8]Farabet C, Couprie C, Najman L, et al. Learning hierarchical features for scene labeling[J]. IEEE Trans on Pattern Analysis & Machine Intelligence, 2013, 35(8): 1915-1925 [9]Wang Lijun, Lu Huchuan, Xiang Ruan, et al. Deep networks for saliency detection via local estimation and global search[C]Proc of IEEE Conf on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2015: 3183-3192 [10]Li Guangbin, Yu Yizhou. Visual saliency based on multiscale deep features[C]Proc of IEEE Conf on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2015: 5455-5463 [11]Zhao Rui, Ouyang Wanli, Li Hongsheng, et al. Saliency detection by multi-context deep learning[C]Proc of IEEE Conf on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2015: 1265-1274 [12]Mohamed A R, Dahl G E, Hinton G. Acoustic modeling using deep belief networks[J]. IEEE Trans on Audio Speech & Language Processing, 2012, 20(1): 14-22 [13]Caceres N, Wideberg J P, Benitez F G. Deriving origin-destination data from a mobile phone network[J]. IET Intelligent Transport Systems, 2007, 1(1): 15-26 [14]Dahl G E, Yu Dong, Deng Li, et al. Context-dependent pre-trained deep neural networks for large-vocabulary speech recognition[J]. IEEE Trans on Audio Speech & Language Processing, 2012, 20(1): 30-42 [15]Tallada M G. Coarse grain parallelization of deep neural networks[C]Proc of the 21st ACM SIGPLAN Symp on Principles and Practice of Parallel Programming. New York: ACM, 2016: 1-12 [16]Volodymyr T, Anatoly S. Efficiency of parallel large-scale two-layered MLP training on many-core system[C]Proc of the 8th Int Conf on Neural Networks and Artificial Intelligence. Berlin: Springer, 2014: 201-210 [17]Turchenko V, Grandinetti L, Efficiency analysis of parallel batch pattern NN training algorithm on general-purpose supercomputer [G]LNCS 5518: Proc of Int Conf on Artificial Neural Networks. Berlin: Springer, 2009: 223-226 [18]Pethick M, Liddle M, Werstein P, et al. Parallelization of a backpropagation neural network on a cluster computer[J]. Parallel and Distributed Computing Systems, 2003, 23(1): 44-56 [19]Suresh S, Omkar S N, Mani V. Parallel implementation of back-propagation algorithm in networks of workstations[J]. IEEE Trans on Parallel & Distributed Systems, 2005, 16(1): 24-34 [20]White T. Hadoop: The Definitive Guide[M]. Sebastopol, CA: O’Reilly Media Inc, 2012 [21]Dean J, Ghemawat S. MapReduce: Simplified data processing on large clusters[J]. ACM Communication, 2008, 51(1): 107-113 [22]Chu Chengtao, Kim S K. Map-Reduce for machine learning on multicore[J]. Advances in Neural Information Processing Systems, 2006, 19(3): 281-288 [23]Liu Zhiqiang, Li Hongyan, Miao Gaoshan. MapReduce-based backpropagation neural network over large scale mobile data[C]Proc of the 6th Int Conf on Natural Computation. Piscataway,NJ: IEEE, 2010: 1726-1730 [24]Cao Ying, Miao Qiguang, Liu Jiachen, et al. Advance and prospects of AdaBoost algorithm[J]. Acta Electronica Sinica, 2013, 39(6): 745-758 (in Chinese)(曹瑩, 苗啟廣, 劉家辰, 等. AdaBoost 算法研究進展與展望[J]. 自動化學報, 2013, 39(6): 745-758) [25]Zhang Haijun. Research on parallel implementation of neural networks based on cloud computing and their learning methods [D]. Guangzhou: South China University of Technology, 2015 (in Chinese)(張海軍. 基于云計算的神經網絡并行實現及其學習方法研究[D]. 廣州:華南理工大學, 2015) [26]Zhang Haijun, Xiao Nanfeng. Parallel implementation of multilayered neural networks based on Map-Reduce on cloud computing clusters[J]. Soft Computing, 2016, 20(4): 1471-1483 [27]Zhu Chenjie, Yang Yongli. Research of MapReduce based on BP neural network algorithm[J]. Microcomputer Applications, 2012, 10(3): 44-56 (in Chinese)(朱晨杰, 楊永麗. 基于MapReduce 的BP 神經網絡算法研究[J]. 微型計算機應用, 2012, 10(3): 44-56) [28]Zhu Chenje, Rao Ruonan. The improved BP algorithm based on MapReduce and genetic algorithm[C]Proc of Int Conf on Computer Science and Service System. Piscataway, NJ: IEEE, 2012: 1567-1570 [29]Wang Qing, Ma Guangfu, Mi Man. Research on neural network control based on genetic algorithm[J]. Journal of System Simulation, 2006, 18(4): 1070-1072 (in Chinese)(王清, 馬廣富, 彌曼. 一種基于遺傳算法的神經網絡控制方法研究[J]. 系統仿真學報, 2006, 18(4): 1070-1072) [30]Cao Jianfang, Cui Hongyan, Shi Hao, et al. Big data: A parallel particle swarm optimization-back-propagation neural network algorithm Based on MapReduce[J]. Plos One, 2016, 11(6): 1134-1143 [31]Li Zuoyong, Wang Jiayang, Guo Chen. A new method of BP network optimized based on particle swarm optimization and simulation test[J]. Acta Electronica Sinica, 2008, 36(11): 2224-2228 (in Chinese)(李祚泳, 汪嘉楊, 郭淳. PSO算法優化BP網絡的新方法及仿真實驗[J]. 電子學報, 2008, 36(11): 2224-2228) [32]Wah B W, Chu Lonchuan. Efficient mapping of neural networks on multicomputers[C]Proc of Int Conf on Parallel Processing. Piscataway, NJ: IEEE, 1990: 234-241 [33]Sudhakar V, Murthy C S. Efficient mapping of back-propagation algorithm onto a network of workstations[J]. IEEE Trans on Systems Man & Cybernetics, 1998, 28(6): 841-848 [34]Haykins S, Neural Networks: A Comprehensive Foundation[M]. New York: Prentice Hall, 1999 [35]Ghemawat S, Gobioff H, Leung S T. The google file system[C]Proc of the 9th ACM Symp on Operating Systems Principles. New York: ACM, 2003: 29-43 RenGang, born in 1978. PhD and associate professor. His main research interests include intelligent algorithm, parallel algorithm and formal methods. DengPan, born in 1983. PhD and associate professorr. Her main research interests include smart city, big data, cloud computing, parallel computing, and the Internet of things. YangChao, born in 1979. Professor and PhD supervisor. His main research interests include numerical analysis and modeling, large-scale scientific computing, and parallel numerical software. WuChangmao, born in 1974. PhD, research assistant. Member of CCF. Currently, his main research interests include parallel software and parallel algorithm.2.4 向后階段算法
3 時間復雜度分析與比較
3.1 SP-MRBP算法計算時間分析



















3.2 MRBP算法時間復雜度分析







3.3 計算時間差比較






3.4 最優并行結構數


4 實驗分析與比較
4.1 實驗平臺
4.2 并行結構擴展性

4.3 計算節點擴展性

4.4 樣本規模擴展性

4.5 網絡規模擴展性

5 總 結



