本發(fā)明涉及神經(jīng)網(wǎng)絡(luò)訓(xùn)練技術(shù),具體涉及一種基于超網(wǎng)的層稀疏化神經(jīng)網(wǎng)絡(luò)分布式訓(xùn)練系統(tǒng)及其方法。
背景技術(shù):
1、隨著深度神經(jīng)網(wǎng)絡(luò)(dnn)復(fù)雜度不斷增加,其參數(shù)規(guī)模不斷增大,導(dǎo)致訓(xùn)練極度耗時(shí)。分布式訓(xùn)練策略被引入神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程加快訓(xùn)練速度,減少訓(xùn)練時(shí)間,比如在訓(xùn)練圖像分類的卷積網(wǎng)絡(luò)或者自然語(yǔ)言處理神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程中,單個(gè)計(jì)算機(jī)節(jié)點(diǎn)的訓(xùn)練耗時(shí)為1h,理論上增加1個(gè)節(jié)點(diǎn),可以實(shí)現(xiàn)2倍加速,減少50%的訓(xùn)練時(shí)間,但是實(shí)際上我們只能減少20~30%的訓(xùn)練時(shí)間。原因是分布式訓(xùn)練的效率受到不同計(jì)算機(jī)節(jié)點(diǎn)之頻繁通信引入的開(kāi)銷而降低加速效果,使得訓(xùn)練效率并未達(dá)到預(yù)期效果。
2、為了解決上述問(wèn)題,相關(guān)研究工作已經(jīng)引入了多種梯度壓縮技術(shù)(如稀疏化、量化、低秩)來(lái)降低通信開(kāi)銷,減少整體訓(xùn)練時(shí)間。然而,這些方法主要關(guān)注數(shù)值特性,例如,減少數(shù)據(jù)傳輸規(guī)或?qū)⒏↑c(diǎn)存儲(chǔ)的梯度改為位數(shù)少的數(shù)據(jù)結(jié)構(gòu),忽視了神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程本身具備的收斂特性。此外,這些技術(shù)需要在所有張量上完成操作,針對(duì)每個(gè)元數(shù)進(jìn)行壓縮操作,這會(huì)耗費(fèi)大量計(jì)算時(shí)間。上述方法雖然可以減少通信時(shí)間,但是增加了數(shù)據(jù)壓縮時(shí)間,整體時(shí)間并沒(méi)有明顯減少,即神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效率提高程度并不理想。
技術(shù)實(shí)現(xiàn)思路
1、針對(duì)現(xiàn)有技術(shù)中的上述不足,本發(fā)明提供的基于超網(wǎng)的層稀疏化神經(jīng)網(wǎng)絡(luò)分布式訓(xùn)練系統(tǒng)及其方法解決了現(xiàn)有方法進(jìn)行神經(jīng)網(wǎng)絡(luò)進(jìn)行分布式訓(xùn)練時(shí)效率低的問(wèn)題。
2、為了達(dá)到上述發(fā)明目的,本發(fā)明采用的技術(shù)方案為:
3、第一方面,提供一種基于超網(wǎng)的層稀疏化神經(jīng)網(wǎng)絡(luò)分布式訓(xùn)練系統(tǒng),其包括全局節(jié)點(diǎn)和多個(gè)計(jì)算機(jī)節(jié)點(diǎn),每個(gè)計(jì)算機(jī)節(jié)點(diǎn)上設(shè)置有一個(gè)超網(wǎng);
4、所述計(jì)算機(jī)節(jié)點(diǎn)用于獲取待訓(xùn)練神經(jīng)網(wǎng)絡(luò)副本,并基于本地訓(xùn)練數(shù)據(jù)集對(duì)待訓(xùn)練神經(jīng)網(wǎng)絡(luò)和超網(wǎng)進(jìn)行訓(xùn)練,得到待訓(xùn)練神經(jīng)網(wǎng)絡(luò)當(dāng)次訓(xùn)練的完整梯度;根據(jù)超網(wǎng)的輸出進(jìn)行層的稀疏化操作,選取出待訓(xùn)練神經(jīng)網(wǎng)絡(luò)中多層的梯度進(jìn)行傳輸;
5、所述全局節(jié)點(diǎn)用于接收所有計(jì)算機(jī)節(jié)點(diǎn)上傳的梯度并進(jìn)行聚合,更新全局神經(jīng)網(wǎng)絡(luò)權(quán)重,并判斷全局神經(jīng)網(wǎng)絡(luò)是否收斂或者訓(xùn)練次數(shù)是否達(dá)到預(yù)設(shè)次數(shù),若是,基于多個(gè)計(jì)算機(jī)節(jié)點(diǎn)訓(xùn)練完成的網(wǎng)絡(luò)模型確定訓(xùn)練完成的神經(jīng)網(wǎng)絡(luò)模型,否則將全局神經(jīng)網(wǎng)絡(luò)權(quán)重分發(fā)給所有的計(jì)算機(jī)節(jié)點(diǎn)進(jìn)行再次訓(xùn)練;
6、所述待訓(xùn)練神經(jīng)網(wǎng)絡(luò)為圖像分類resnet或自然語(yǔ)言處理神經(jīng)網(wǎng)絡(luò)。
7、進(jìn)一步低,根據(jù)超網(wǎng)的輸出進(jìn)行層的稀疏化操作的方法包括:
8、計(jì)算超網(wǎng)相鄰兩次訓(xùn)練的輸出之間的差值,并采用指數(shù)移動(dòng)平均值對(duì)差值進(jìn)行平滑處理,得到超網(wǎng)生成的待訓(xùn)練神經(jīng)網(wǎng)絡(luò)每一層被選中的概率;
9、根據(jù)超網(wǎng)生成的待訓(xùn)練神經(jīng)網(wǎng)絡(luò)每一層被選中的概率,選取概率最大的k層的梯度進(jìn)行傳輸。
10、進(jìn)一步地,所述超網(wǎng)的輸出的表達(dá)式為:
11、αi=hni(vi,ψi)其中,hni()為第i個(gè)計(jì)算機(jī)節(jié)點(diǎn)的超網(wǎng),υi和ψi分別為第i個(gè)計(jì)算機(jī)節(jié)點(diǎn)的嵌入向量和超網(wǎng)的網(wǎng)絡(luò)權(quán)重;αi為第i個(gè)計(jì)算機(jī)節(jié)點(diǎn)的超網(wǎng)的輸出,即第i個(gè)計(jì)算機(jī)節(jié)點(diǎn)的超網(wǎng)對(duì)待訓(xùn)練神經(jīng)網(wǎng)絡(luò)每層被選中的概率;
12、采用指數(shù)移動(dòng)平均值對(duì)差值進(jìn)行平滑處理的表達(dá)式為:
13、
14、其中,∈為超參數(shù);分別為第i個(gè)計(jì)算機(jī)節(jié)點(diǎn)的超網(wǎng)在第t-1次和第t次迭代時(shí),超網(wǎng)生成的待訓(xùn)練神經(jīng)網(wǎng)絡(luò)每一層網(wǎng)絡(luò)被選中的概率;為第i個(gè)計(jì)算機(jī)節(jié)點(diǎn)的超網(wǎng)在第t次迭代時(shí)的輸出與第t-1次迭代時(shí)的輸出之間的差值。
15、進(jìn)一步地,所述超網(wǎng)的目標(biāo)函數(shù)的表達(dá)式為:
16、
17、其中,fi(θi;αi)為第i個(gè)計(jì)算機(jī)節(jié)點(diǎn)的超網(wǎng)的目標(biāo)函數(shù)值;θi為第i個(gè)計(jì)算機(jī)節(jié)點(diǎn)上的待訓(xùn)練神經(jīng)網(wǎng)絡(luò)權(quán)重;和分別為θi中第l1和ln層的權(quán)重;li(·)為損失函數(shù);和分別αi中對(duì)待訓(xùn)練神經(jīng)網(wǎng)絡(luò)的第l1和ln層被選中的概率;⊙為哈達(dá)曼積。
18、進(jìn)一步地,每次迭代時(shí)更新嵌入向量和超網(wǎng)網(wǎng)絡(luò)權(quán)重的梯度的表達(dá)式為:
19、
20、其中,為υi的梯度;為ψi的梯度;θi為第i個(gè)計(jì)算機(jī)節(jié)點(diǎn)上的待訓(xùn)練神經(jīng)網(wǎng)絡(luò)權(quán)重;為中間參數(shù);和分別為θi中第l1和ln層的權(quán)重;li(·)為損失函數(shù);和分別αi中對(duì)待訓(xùn)練神經(jīng)網(wǎng)絡(luò)的第l1和ln層被選中的概率;⊙為哈達(dá)曼積。
21、進(jìn)一步地,每個(gè)計(jì)算機(jī)節(jié)點(diǎn)的超網(wǎng)包括輸入層、兩層全連接層和輸出層,每層全連接層包括多個(gè)神經(jīng)元。
22、第二方面,提供一種基于超網(wǎng)的層稀疏化神經(jīng)網(wǎng)絡(luò)分布式訓(xùn)練方法,其包括步驟:
23、s1、在每個(gè)計(jì)算機(jī)節(jié)點(diǎn)上布置一個(gè)超網(wǎng),每個(gè)計(jì)算機(jī)節(jié)點(diǎn)獲取待訓(xùn)練神經(jīng)網(wǎng)絡(luò)副本;
24、s2、基于本地訓(xùn)練數(shù)據(jù)集對(duì)待訓(xùn)練神經(jīng)網(wǎng)絡(luò)和超網(wǎng)進(jìn)行訓(xùn)練,得到待訓(xùn)練神經(jīng)網(wǎng)絡(luò)當(dāng)次訓(xùn)練的完整梯度;
25、s3、根據(jù)超網(wǎng)的輸出進(jìn)行層的稀疏化操作,選取出待訓(xùn)練神經(jīng)網(wǎng)絡(luò)中多層的梯度進(jìn)行傳輸;
26、s4、接收所有計(jì)算機(jī)節(jié)點(diǎn)上傳的梯度并進(jìn)行聚合,更新全局神經(jīng)網(wǎng)絡(luò)權(quán)重;
27、s5、判斷全局神經(jīng)網(wǎng)絡(luò)是否收斂或者訓(xùn)練次數(shù)是否達(dá)到預(yù)設(shè)次數(shù),若是,進(jìn)入步驟s6,否則將全局神經(jīng)網(wǎng)絡(luò)權(quán)重分發(fā)給所有的計(jì)算機(jī)節(jié)點(diǎn),返回步驟s2;
28、s6、基于多個(gè)計(jì)算機(jī)節(jié)點(diǎn)訓(xùn)練完成的網(wǎng)絡(luò)模型,確定訓(xùn)練完成的神經(jīng)網(wǎng)絡(luò)模型;
29、所述待訓(xùn)練神經(jīng)網(wǎng)絡(luò)為圖像分類resnet或自然語(yǔ)言處理神經(jīng)網(wǎng)絡(luò)。
30、進(jìn)一步地,根據(jù)超網(wǎng)的輸出進(jìn)行層的稀疏化操作的方法包括:
31、計(jì)算超網(wǎng)相鄰兩次訓(xùn)練的輸出之間的差值,并采用指數(shù)移動(dòng)平均值對(duì)差值進(jìn)行平滑處理,得到超網(wǎng)生成的待訓(xùn)練神經(jīng)網(wǎng)絡(luò)每一層被選中的概率;
32、根據(jù)超網(wǎng)生成的待訓(xùn)練神經(jīng)網(wǎng)絡(luò)每一層被選中的概率,選取概率最大的k層的梯度進(jìn)行傳輸。
33、進(jìn)一步地,所述超網(wǎng)的輸出的表達(dá)式為:
34、αi=hni(vi,ψi)
35、其中,αi為第i個(gè)計(jì)算機(jī)節(jié)點(diǎn)的輸出;hni()為第i個(gè)計(jì)算機(jī)節(jié)點(diǎn)的超網(wǎng),vi和ψi分別為第i個(gè)計(jì)算機(jī)節(jié)點(diǎn)的嵌入向量和超網(wǎng)的網(wǎng)絡(luò)權(quán)重;αi為第i個(gè)計(jì)算機(jī)節(jié)點(diǎn)的超網(wǎng)的輸出,即第i個(gè)計(jì)算機(jī)節(jié)點(diǎn)的超網(wǎng)對(duì)待訓(xùn)練神經(jīng)網(wǎng)絡(luò)每層被選中的概率;
36、采用指數(shù)移動(dòng)平均值對(duì)差值進(jìn)行平滑處理的表達(dá)式為:
37、
38、其中,∈為超參數(shù);分別為第i個(gè)計(jì)算機(jī)節(jié)點(diǎn)的超網(wǎng)在第t-1次和第t次迭代時(shí),超網(wǎng)生成的待訓(xùn)練神經(jīng)網(wǎng)絡(luò)每一層網(wǎng)絡(luò)被選中的概率;為第i個(gè)計(jì)算機(jī)節(jié)點(diǎn)的超網(wǎng)在第t次迭代時(shí)的輸出與第t-1次迭代時(shí)的輸出之間的差值。
39、本發(fā)明的有益效果為:本方案在每個(gè)計(jì)算機(jī)節(jié)點(diǎn)上設(shè)計(jì)一個(gè)獨(dú)立的超網(wǎng),并被訓(xùn)練以生成待訓(xùn)練神經(jīng)網(wǎng)絡(luò)每一層的權(quán)重以代表該層的重要性,即使用超網(wǎng)來(lái)識(shí)別每次迭代中最“重要”的層,并對(duì)這些“重要”的神經(jīng)網(wǎng)絡(luò)層的梯度進(jìn)行傳輸,其他的層則拋棄并進(jìn)行梯度累計(jì),在后續(xù)操作中進(jìn)行傳輸。本方案通過(guò)該種方式提高了分布式訓(xùn)練過(guò)程中的傳輸效率,避免當(dāng)前主流梯度壓縮方法對(duì)張量元素進(jìn)行頻繁操作帶來(lái)額外的計(jì)算成本,從而提高了神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效率。
40、本方案通過(guò)在resnet-18和vgg-16上進(jìn)行綜合實(shí)驗(yàn),結(jié)果表明,本方案可以在精度損失較小的情況下降低通信開(kāi)銷。此外,本方案所提供的方法可以與其他壓縮方法重疊使用,從而進(jìn)一步減少通信量,尤其適用于目前主流圖形分類、自然語(yǔ)言處理神經(jīng)網(wǎng)絡(luò)的分布式訓(xùn)練,可以大幅減少通信開(kāi)銷、降低訓(xùn)練時(shí)間。