摘要:針對大數據環境下并行深度卷積神經網絡(DCNN)算法中存在數據冗余特征多、卷積層運算速度慢、損失函數收斂性差等問題,提出了一種基于Im2col方法的并行深度卷積神經網絡優化算法IA-PDCNNOA。首先,提出基于Marr-Hildreth算子的并行特征提取策略MHO-PFES,提取數據中的目標特征作為卷積神經網絡的輸入,有效避免了數據冗余特征多的問題;其次,設計基于Im2col方法的并行模型訓練策略IM-PMTS,通過設計馬氏距離中心值去除冗余卷積核,并結合MapReduce和Im2col方法并行訓練模型,提高了卷積層運算速度;最后提出改進的小批量梯度下降策略IM-BGDS,排除異常節點的訓練數據對批梯度的影響,解決了損失函數收斂性差的問題。實驗結果表明,IA-PDCNNOA算法在大數據環境下進行深度卷積神經網絡計算具有較好的性能表現,適用于大規模數據集的并行化深度卷積神經網絡模型訓練。
關鍵詞:大數據;深度卷積神經網絡算法;并行計算;特征提取;圖像分類
中圖分類號:TP311文獻標志碼:A
文章編號:1001-3695(2022)10-009-2950-07
doi:10.19734/j.issn.1001-3695.2022.03.0114
Parallel deep convolution neural network optimization based on Im2col
Hu Jian1,2,Gong Ke1,Mao Yimin1,Chen Zhigang3,Chen Liang2
(1.School of Information Engineering,Jiangxi University of Science amp; Technology,Ganzhou Jiangxi 341000,China;2.School of Electronic Information Engineering,Gannan University of Science amp; Technology,Ganzhou Jiangxi 341000,China;3.School of Computer Science amp; Engineering,Central South University,Changsha 410083,China)
Abstract:In the large data environment,there are many problems in the parallel deep convolution neural network (DCNN) algorithm,such as excessive data redundancy,slow convolution layer operation and poor convergence of loss function.This paper proposed a parallel deep convolution neural network optimization algorithm based on Im2col method(IA-PDCNNOA).Firstly,the algorithm proposed a parallel feature extraction strategy based on Marr-Hildreth operator to extract target features from data as input of convolution neural network,which could effectively avoid the problem of excessive data redundancy.Se-condly,it designed a parallel model training strategy based on Im2col method,which removed the redundant convolution kernel by designing the Mahalanobis distance center value and improved the convolution layer operation speed by combining Map-Reduce and Im2col methods.Finally,it proposed an improved small-batch gradient descent strategy,which eliminated the effect of abnormal data on the batch gradient and solved the problem of poor convergence of the loss function.The experimental results show that IA-PDCNNOA algorithm performs well in deep convolution neural network calculation under large data environment and is suitable for parallel DCNN model training of large datasets.
Key words:big data;DCNN algorithm;parallel computing;feature extraction;image classification
0引言
DCNN[1]作為深度學習領域中一類重要的分類算法,具有強大的表征能力、泛化能力和擬合能力,效果穩定且無須對數據做額外的特征工程,常被運用于圖像分類[2]、語音識別[3]、對象檢測[4]、語義分割[5]、人臉識別[6]、自動駕駛[7]等領域,受到人們的廣泛關注和深入研究。近年來,隨著移動互聯網的發展以及數據存儲介質容量的突破,產生了海量的、多模態的、高價值的數據[8],眾多科研者和公司嘗試從中提取高價值的信息,但海量的數據使得DCNN模型的訓練面臨大量時間消耗,數據與模態變化又將導致模型參數需要反復訓練等困難。因此,如何降低大數據環境下DCNN模型訓練的代價成為了一個亟待解決的問題。
Google公司開發的 MapReduce 并行計算模型以其易于編程、高容錯性、均衡負載和擴展性強等優點深受廣大學者和企業的青睞,許多基于MapReduce計算模型的DCNN算法也得到了廣泛的研究[9~12]。文獻[13]提出基于MapReduce的并行化DCNN算法,該算法采用分而治之的思想,通過MapReduce的split方法對數據進行劃分,構建多個計算節點同時訓練DCNN模型,選取準確率最高的網絡模型作為算法的輸出,實現了DCNN并行化訓練過程。文獻[14]提出并行深度卷積神經網絡算法FCNN(fully CNN for processing CT scan image),算法將全視圖轉變為稀疏視圖,并通過高斯濾波器對特征邊緣進行平滑處理,增強重要的紋理特征信息。雖然算法在將全視圖轉變為稀疏視圖的過程會加快讀取速度,但由于稀疏視圖的特征結構變化,導致其難以對特征進行篩選,使得模型在訓練的過程中會存在數據冗余特征多的問題。文獻[15]基于Im2col方法,提出單跨步優化CNN算法 SSOCNN (optimization of Im2col,an important method of CNNs based on continuous address access),該算法設計基于連續內存地址讀取的單跨步情況下的Im2col加速方法,通過改變數據讀取順序加速圖像映射成矩陣的進程,并利用通用矩陣乘法對列向量和卷積核進行矩陣相乘運算,實現了對卷積層運算的加速,其本質是一種模型并行方法;但在構建并行卷積運算的過程中,算法難以篩除分散在各個節點的冗余卷積核,導致在大數據環境下無法解決卷積層運算速度慢的問題。文獻[16]通過將DCNN與螢火蟲算法相結合,提出MR-FPDCNN算法(deep convolutional neural network algorithm based on feature graph and parallel computing entropy using MapReduce),該算法將信息共享搜索策略與螢火蟲算法相結合來尋找網絡模型最優參數,并通過MapReduce通信機制共享DCNN參數,加快了損失函數的收斂速度,其本質是一種數據并行方法;但該算法沒有針對異常節點的訓練數據進行甄別處理,使得算法在反向傳播過程中的損失函數收斂振蕩,導致損失函數收斂性差。
綜上,盡管上述算法取得了一定的成效,但對于數據冗余特征多、卷積層運算速度慢、損失函數收斂性差等問題仍然是目前亟待解決的。針對以上問題,本文在MapReduce并行計算框架的基礎上提出一種基于Im2col算法的并行深度卷積神經網絡優化算法IA-PDCNNOA,算法在三個方面對并行深度卷積神經網絡進行優化:a)在特征并行提取階段,對于數據的預處理,現有算法大多是去除噪聲和缺失值進行數據標準化與正則化,但在大數據環境下,常規的數據預處理操作不僅難以提升模型精度,而且不能降低大數據所帶來的計算資源消耗,IA-PDCNNOA算法改進了Marr-Hildreth算子提出MHO-PFES策略,通過提取圖像數據的全部邊緣特征評估同類型數據的特征相似度,并刪除低相似度的特征來解決數據冗余特征多的問題,不僅去除了無關特征對模型訓練的精度影響,而且降低了計算資源的開銷;b)在模型并行訓練階段,對于模型的卷積運算,算法提出基于數據并行的IM-PMTS策略,設計了馬氏距離中心值MDCV來去除當前卷積層中的冗余卷積核,并結合Im2col算法將卷積運算的過程轉換為矩陣運算,進而使得這一過程能夠與MapReduce結合,進行并行化運算來提升卷積層的運算速度;c)在參數并行更新階段,對于反向傳播過程,大多并行算法采用隨機梯度下降法或批梯度下降法進行參數的更新,然而,它們沒有考慮到計算節點由于程序中斷、內存溢出等因素而導致訓練數據異常,這些異常數據會使得反向傳播過程中的損失函數收斂振蕩,進而導致損失函數收斂性差。IA-PDCNNOA算法基于模型并行提出IM-BGDS策略,通過評估每個節點的梯度與批梯度間的距離來去除批梯度中的異常值,實現批梯度的自適應調整,解決了損失函數收斂性差的問題。
1相關概念
定義1非局部均值算法[17]。非局部均值算法是一種基于鄰域像素的濾波方法,可以結合圖像中的全局信息進行數據降噪。假設g表示數據樣本,x、y∈g,x表示搜索窗口,y表示鄰域窗口,則降噪后灰度值(x)可以表示為
(x)=∑y∈G(x,y)*θ(y)(1)
其中:(x,y)為x與y區域間的相似度;θ(y)為含噪聲圖像。
定義2余弦相似度[18]。余弦相似度是度量個體之間的相似性指標,可以將個體的指標數據映射到向量空間,并測量兩個個體向量之間的內積空間夾角余弦值,從而比較個體相似度。假設X、Y表示對比個體,x、y表示個體X、Y的一維形式,則余弦相似度sim(X,Y)可以表示為
sim(X,Y)=cos θ=x·y‖x‖+‖y‖(2)
其中:‖x‖、‖y‖為個體的模。
定義3image to column(Im2col[19])。Im2col是一種將卷積計算變換成矩陣乘法計算的變換函數,可以將輸入值的3D matrix轉換為2D matrix,并將卷積核轉換為1D matrix,從而實現將卷積計算轉換成矩陣相乘計算。假設x表示輸入特征圖,w表示卷積核,i、j表示像素點橫縱坐標,則卷積結果ai,j可以表示為
ai,j=∑kH-1h=0∑kW-1w=0wh,wxi+h,j+w(3)
其中:kH、kW為款集合的寬和高。
定義4馬氏距離[20]。馬氏距離是度量學習中一種常用的距離指標,它是一種有效的計算兩個未知樣本集相似度的方法。假設S表示多維隨機變量的協方差矩陣,μ表示樣本均值,x表示當前數據點,則馬氏距離DM(x)可以表示為
DM(x)=(x-μ) TS-1(x-μ)(4)
2IA-PDCNNOA算法
IA-PDCNNOA算法主要包括三個階段:a)特征并行提取階段,提出MHO-PFES策略,首先通過改進Marr-Hildreth算子提取原始數據集的數據特征,然后篩選數據的目標特征作為卷積神經網絡的輸入,從而解決了數據冗余特征多的問題;b)模型并行訓練階段提出IM-PMTS策略,首先設計馬氏距離中心值MDCV對同層卷積核剪枝,然后通過結合MapReduce和Im2col方法并行訓練的方式加速卷積運算的過程,提高了卷積層運算速度;c)參數并行更新階段,提出IM-BGDS策略,首先設計損失求和梯度LSG(T)構建小批量數據梯度,然后通過誤差反向傳播算法對參數并行更新,排除異常節點的訓練數據對批梯度的影響,解決了損失函數收斂性差的問題。
2.1特征并行提取
目前在大數據環境下的并行DCNN算法中,初始圖像數據中存在大量冗余特征,這些冗余特征未能經過有效篩選,使得在模型訓練過程中存在數據冗余特征多的問題。為了解決此問題,提出了基于Marr-Hildreth算子的MHO-PFES策略,該策略主要包含兩個步驟:a)特征提取,提出改進的非局部均值濾波器FT(a,b)(filter transformation)對輸入的圖像數據進行濾波,并計算濾波數據的拉普拉斯方程h(x,y),尋找拉普拉斯方程的零交叉來提取圖像特征;b)特征篩選,為進一步篩選目標特征,提出特征相關指數FCI(x,y)(feature correlation indices)來對比任意兩個圖像塊間的相似度,并設定相關性系數ε,通過去除FCI(x,y)lt;ε的圖像塊來減少數據中的冗余特征。
1)特征提取
為了獲取高精度的圖像特征,需先對初始數據集進行噪聲去除,因此提出基于余弦相似度的非局部均值濾波器FT(a,b),通過圖像在不同區域的自相似性來去除數據噪聲;然后再通過卷積核f(x,y)與圖像g(x,y)的拉普拉斯運算構建并尋找拉普拉斯方程的零交叉來提取數據特征。其具體過程為:a)在目標圖像設置以像素點a為中心的鄰域窗口矩陣與以像素點b為中心的搜索窗口矩陣,使鄰域窗口在當前圖像中滑動,通過對比像素點a、b所在矩陣的余弦相似度得到鄰域窗口的加權值,并根據權重值以及各個點本身的灰度值對數據進行降噪處理,得到降噪后圖像g(x,y);b)設置大小為3×3的卷積核f(x,y),對g(x,y)進行拉普拉斯運算,得到拉普拉斯方程h(x,y)=2(f(x,y)·FT(a,b));c)判斷當前節點的拉普拉斯方程的二階導數是否為交叉零點,且此節點的一階導數處在較大峰值,若滿足條件則保留此節點,否則將此像素點置零,然后合并當前數據節點得到特征提取后的圖像。
定理1基于余弦相似度的非局部均值濾波器FT(a,b)。已知a,b分別表示以像素點a為中心的鄰域窗口矩陣與以像素點b為中心的搜索窗口矩陣,變換函數FT(a,b)的計算公式如下:
FT(a,b)=∑b∈Gia·b‖a‖+‖b‖×θ(a)(5)
其中:θ為含噪聲圖像;Gi為當前圖像數據。
證明非局部均值濾波原理利用了噪聲非相關性特征,設無噪聲像素塊的值為ω(x,y),噪聲值為ψ(x,y),則與噪聲融合后的像素塊的值為ρ(x,y)=ω(x,y)+ψ(x,y),相似像素塊疊加后取均值得到(x,y)=1/k×∑ki=1ρi(x,y),則(x,y)的期望為E[(x,y)]=1/k×∑ki=1(E[ωi(x,y)]+E[ψ(x,y)])。由于像素塊的相似性,E[ωi(x,y)]可簡化為ω(x,y),當噪聲為0時,E[ψ(x,y)]=0,故E[(x,y)]=ω(x,y)。此外,由于噪聲的非相關性,ω(x,y)的方差為σ[(x,y)]2=σ[ω(x,y)]2+1/k2(∑ki=1σ2ψi)2,由于ω(x,y)無噪聲,方差為0,所以σ[(x,y)]2=1/k×σ[ψ(x,y)]2,則表明噪聲ψ(x,y)與方差相關,FT(a,b)通過減小ψ(x,y)來降低數據噪聲。證畢。
2)特征篩選
在完成特征提取后,策略將batch中圖像切塊,并提出特征相關指數FCI(x,y)來計算任意兩個圖像塊之間的特征相似度,然后去除FCI(x,y)lt;ε的圖像塊來實現數據中冗余特征的去除。具體過程如下:a)將相同類別的圖像切分至等大小的圖像塊,并提出特征相關指數FCI(x,y)來計算任意兩個圖像塊之間的相似度,其中x、y表示兩個互不相同的圖像塊;b)映射鍵值對〈(x,y),FCI(x,y)〉存儲至HDFS中,設定并根據相關性系數ε去除鍵值對中FCI(x,y)lt;ε的項,減少圖像中的冗余特征;c)再次遍歷鍵值對,讀取HDFS中剩余鍵值對的key來獲取冗余特征篩選后圖像塊的編號,并將篩選后的圖像塊作為卷積神經網絡的輸入完成數據的特征篩選。
定理2特征相關指數FCI(x,y)。已知x和y分別表示兩條特征向量,μx、μy表示x和y的期望,σx、σy表示x和y的方差。特征相關指數FCI(x,y)的計算公式為
FCI(x,y)=2σxσyσ2x+σ2y+(μx-μy)2(6)
證明FCI(x,y)是衡量x和y之間特征相似度的指標,設μx、μy表示x和y的期望,σx、σy為x和y的方差,當特征向量x在σx=0時,卷積過程在x上的操作屬于線性疊加,無法對特征進行抽取,此時FCI(x,y)=0 ;當σx≠0,σy≠0且特征向量x和y的特征相似時,FCI(x,y)→1。證畢。
算法1特征并行提取算法
輸入: 批數據batch;超參數ε。
輸出: 特征提取后數據batch。
RunMapRedece(batch,ε);
for each gi in batch do
MapReduce.map (gi);
for each xj in gi do
xj=FT(a,b),(a,b)gi;
end for
end map
MapReduce.reduce (gi,ε)
spilt gi to block bi;
for each bi,bj in gi
calculate FCI(bi,bj);
save key-value 〈(x,y),FCI(x,y)〉;
end for
while(〈(x,y),FCI(x,y)〉)
if(FCI(x,y)lt;ε)
delete data block where index=x amp;amp; y;
end while
end reduce
end for
return batch.
2.2模型并行訓練
在目前大數據環境下的DCNN算法中,模型的并行訓練需要將特征圖與卷積核分散到不同的計算節點進行運算,但在構建并行卷積運算的過程中,算法難以篩除分散在各節點的冗余卷積核,導致在大數據環境下傳統DCNN算法無法解決卷積層運算速度慢的問題。為了解決此問題,本文提出IM-PMTS策略,該策略主要包含兩個步驟:a)卷積核剪枝,設計馬氏距離中心值MDCV(Mahalanobis distance center value),通過求解MDCV值來尋找與網絡模型中卷積核線性相關的向量,并計算此向量到各個卷積核之間的距離dist,通過設定閾值α,裁剪distlt;α的卷積核來減少網絡模型中冗余參數;b)并行Im2col卷積,利用Im2col算法將特征圖映射成矩陣,將矩陣與對應卷積核存儲鍵值對分發到各計算節點進行矩陣運算來加快卷積層的運算,得到運算卷積層運算結果,并將結果存入HDFS中。
1)卷積核剪枝
為了減少卷積神經網絡中冗余卷積核所產生的無效計算,設計馬氏距離中心值MDCV篩除當前卷積層中冗余卷積核,進而加速卷積層運算。其具體過程為:a)各節點計算卷積層所有的卷積核X1,X2,…,Xn的協方差矩陣S和均值μ,構建MDCV的目標函數f(x);b)計算f(x)在其駐點xk處的二階泰勒展開f(x)=xk+f(xk)(x-xk)+12(x-xk)T2f(xk)(x-xk),若當前二階導數非奇異,則下一個迭代點為xk+1=xk+2f(xk)-1f(xk),若當前二階導數奇異,先求解2f(xk)d=-f(xk)確定搜索方向dk,再確定下一個迭代點xk+1=xk+dk,直至找到最優MDCV值;c)計算卷積層中所有卷積核到MDCV值的距離dist,并設定閾值α,裁剪distlt;α的卷積核完成卷積核剪枝過程。
定理3馬氏距離中心值MDCV。已知X1,X2,…,Xn表示網絡模型中的卷積核,S表示所有卷積核的協方差矩陣,μ表示所有卷積核的均值。馬氏距離中心值MDCV的計算公式如下:
MDCV=x*=min ∑x∈Rn(x-μ)TS-1(x-μ)(7)
證明MDCV是特征向量x*到特征向量組X1,X2,…,Xn的最小距離,設S為向量組X1,X2,…,Xn的協方差矩陣,μ為向量組的均值,其中引入協方差矩陣S來排除變量之間的相關性的干擾,當特征向量x→MDCV值時,特征向量x就越容易被特征向量組替代,當x=MDCV,x與X1,X2,…,Xn線性相關,故MDCV值為表示特征向量x*到特征向量組X1,X2,…,Xn的最小距離。證畢。
2)并行Im2col卷積
在完成卷積核剪枝后,便可結合Map-Reduce計算框架實現Im2col卷積的并行運算。其具體過程為:a)通過Im2col方法將輸入特征圖Mi映射為卷積計算矩陣Ii,并將每張映射矩陣Ii與對應的卷積核存儲鍵值對〈Ii,Kz〉;b)調用map()函數,將鍵值對中的矩陣Ii與對應卷積核的一維向量進行矩陣相乘運算,得到卷積中間結果;c)調用reduce()函數合并同一條數據的特征圖,獲得最終輸出特征圖NMi。
算法2模型并行訓練算法
輸入:卷積核K;輸入特征圖M;超參α。
輸出: 輸出特征圖NM。
RunMapRedece (K,M,α)
for each kz in K do
MapReduce.map(kz,α)
calculate MDCV;
while (|kz-MDCV|≤α)
delete kz;
end while
end map
MapReduce.reduce (kz,M)
Ii= Im2col (kz,M);
save key-value 〈Ii,Kz〉;
NM=Ii×Kz;
end reduce
end for
return NM.
2.3參數并行更新
目前大數據下的并行DCNN算法中,分布式集群中各節點首先進行正向傳播獲得各卷積層結果,并將結果統一傳遞至master節點進行聚合,再通過反向傳播,采用隨機梯度下降法或批梯度下降法進行參數的更新。然而在實現梯度下降的過程中,異常節點的訓練數據會使得反向傳播過程中的損失函數收斂振蕩,進而導致損失函數收斂性差。為解決此問題,提出IM-BGDS策略,該策略主要包含兩個步驟:a)梯度構建,提出損失均值權重LAW(gi)(loss average weight) 來排除異常節點的訓練數據對批梯度的影響,并設計損失求和梯度LSG(T)(loss sum gradient)來構建批數據平均梯度,解決了損失函數收斂性差的問題;b)參數并行更新,在得到批數據的平均梯度后,結合MapReduce計算框架和反向傳播的誤差傳導公式來并行化地計算誤差,實現參數的并行更新。
1)梯度構建
為了排除異常節點的訓練數據對批梯度的影響,設計損失均值權重LAW(gi)和損失求和梯度LSG(T)來解決損失函數收斂性差的問題。其具體過程為:a)根據損失函數公式計算批數據損失函數的均值,并計算批數據的損失函數與此均值的差得到損失均值權重LAW(gi),將結果映射為鍵值對〈gi,LAW(gi)〉存入HDFS中;b)計算批數據中每條數據gi的損失函數對當前參數δz的偏導Jδi,同樣將結果映射為鍵值對〈gi,Jδi〉存入HDFS中;c)以gi為索引遍歷鍵值對〈gi,LAW(gi)〉和〈gi,Jδi〉,構造批數據平均梯度LSG(T),獲得當前參數的批梯度。
定理4損失均值權重LAW(gi)。已知gi表示批數據中的一條數據,J(ω,b)i表示數據gi的損失函數值,batch_size表示批數據大小,LAD(gi)為數據gi的損失函數值與損失函數值均值之差的絕對值。損失均值權重LAW(gi)的計算公式如下:
LAW(gi)=1LAD(gi)lt;τ
0LAD(gi)≥τ (8)
其中:LAD(gi)=∑batch_sizei=1J(ω,b)ibatch_size-J(ω,b)i(9)
證明LAW(gi)是數據gi的損失函數值的權重指標,設batch_size為批數據大小,τ為衡量LAD(gi)的閾值,當LAD(gi)lt;τ時,則當前數據gi的損失函數值屬于常規值,故令LAW(gi)=1將其保留;當LAD(gi)≥τ時,則當前數據gi的損失函數值屬于異常值,故令LAW(gi)=0。證畢。
定理5損失求和梯度LSG(T)。已知T表示批中所有數據,Jxi表示數據gi的損失函數對于參數x的梯度,batch_size表示批數據大小。損失求和梯度LSG(T)的計算公式如下:
LSG(T)=∑batch_sizei=1Jxi×LAW(gi)batch_size(10)
證明LSG(T)是批數據batch的平均梯度,設Jxi為數據gi的損失函數對于參數x的梯度,batch_size為批數據大小,當LIW(gi)=1時,數據gi的梯度Jxi朝著最優方向下降;當LIW(gi)=0時,數據gi的梯度Jxi與最優方向偏差較大,不計入LSG(T)梯度之中。證畢。
2)參數并行更新
在獲得批數據平均梯度后,使用誤差反向傳播算法并行化地對誤差項參數進行更新,得到參數并行更新后的網絡模型。參數并行更新過程具體為:a)計算第l-1層卷積核Wl-1k所有參數的梯度∑ki=1LSG(T)l-1,并將結果映射為鍵值對〈Wl-1k,∑ki=1LSG(T)l-1〉存入HDFS中;b)計算網絡模型中卷積核Wl-1k參數的改變量ΔWl-1k,以此更新第l-1層卷積核的網絡參數;c)通過HDFS將更新后參數同步至所有計算節點并進行下一步更新,直至網絡模型中所有參數更新完成。
算法3參數并行更新算法
輸入:批數據batch;模型參數W;超參τ。
輸出: 更新后網絡模型參數W。
RunMapRedece(batch,W,τ)
for each gi in batch do
calculate LSG(T) by using LAW(gi);
MapReduce.map (Wl-1k,LSG(T)l-1);
end for
for each 〈Wl-1k,∑ki=1 LSG(T)l-1〉 do
MapReduce.reduce(Wl-1k,LSG(T)l-1)
calculateΔWlk by using LSG(T)l-1;
update Wlk by using ΔWlk;
end reduce
end for
return ∑W.
2.4IA-PDCNNOA算法的并行化流程
IA-PDCNNOA算法的并行化流程具體實現步驟如下:
a)在特征并行提取階段輸入原始數據集,啟動一次Map-Reduce任務,按照數據類別劃分為若干chunk,依次將chunk中的數據輸入到mapper節點中執行MHO-PFES策略,根據目標特征壓縮原始數據集發送至reducer節點,最后將reducer節點中的目標特征保存至HDFS。
b)在模型并行訓練階段,讀取HDFS中的數據并隨機打亂,劃分為若干batch,啟動一個新的MapReduce任務,依次將batch中的數據輸入到mapper節點執行IM-PMTS策略,進行卷積、ReLU、池化等操作,得到下一階段特征圖,最終得到輸出的預測值存入HDFS中。
c)在參數并行更新階段,master節點上讀取上一階段batch輸出的預測值,執行IM-BGDS策略,根據反向傳播公式求全連接層、卷積層參數批梯度,經過多次循環步驟b)c)求解損失函數最小值,得到最終訓練的網絡模型。
IA-PDCNNOA算法的并行化流程如圖1所示。
2.5算法時間復雜度分析
IA-PDCNNOA 算法的時間復雜度主要由特征并行提取、模型并行訓練和參數并行更新三個步驟構成。各部分具體時間復雜度計算如下:
a)特征并行提取階段是結合MapReduce計算框架的并行單元運算結構,其時間復雜度主要分為并行架構下的數據特征提取和主節點對數據的特征篩選兩個部分。設樣本數為n,集群節點數為k,拉普拉斯最大迭代次數為m,算法在數據特征提取階段利用a、b兩個滑動窗口對數據進行遍歷,并計算目標窗口a的交叉零點,其時間復雜度為O(mn log n/k);算法在特征篩選階段計算任意兩個數據切片相似度的時間復雜度為O(n2),則特征并行提取階段的時間復雜度為
T1=O(mn log n/k+n2)(11)
b)在模型并行訓練階段,算法提出MDCV值的求解和卷積并行運算兩個部分。設集群節點數為k,模型中卷積核數量為p,卷積核尺寸為s,樣本數為n,算法在MDCV值求解的過程需要求解卷積核的標準差,并尋找最大線性相關卷積核,其時間復雜度為O(ps2/k);經過上個階段的數據處理,算法在卷積并行運算時只需要進行矩陣乘法運算,其時間復雜度為O(n2),則模型并行訓練的時間復雜度為
T2=O(ps2/k+n2)(12)
c)在參數并行更新階段,算法提出了批數據的梯度構建,設集群節點數為k,模型全連接輸入的尺寸為c,批數據梯度構建的時間復雜度為O(kc2),所以參數并行更新的時間復雜度為
T3=O(kc2)(13)
綜上,本文提出的IA-PDCNNOA算法的時間復雜度為TIA-PDCNNOA=T1+T2+T3=O(mn log n+ps2k+n2+kc2)。
對于FCNN[14]算法,該算法首先將稀疏視圖轉換為全視圖,再構建數據重建和處理技術并行化進行高精度模型訓練,因此FCNN的時間復雜度為
TFCNN=O(dn·log n·s2+n2)(14)
其中:s為卷積核尺寸;d為算法迭代次數。
對于SSOCNN[15]算法,設計了連續內存地址讀取的單跨步情況下的Im2col加速方法,并利用通用矩陣乘法對列向量和卷積核進行卷積運算,因此SSOCNN的時間復雜度為
TSSOCNN=O(an2·log n·k/k2)(15)
其中:a為單跨步數。
對于MR-FPDCNN[16]算法,該算法將信息共享搜索策略與螢火蟲算法相結合來尋找網絡模型最優參數,并通過Map-Reduce并行訓練網絡模型,因此MR-FPDCNN的時間復雜度為
TMR-FPDCNN=O((n log n+pn3)/k)(16)
其中:p為特征圖剪枝數量。
由算法理論分析可得IA-PDCNNOA、FCNN、SSOCNN以及MR-FPDCNN算法的時間復雜度,在大數據環境下,n的基數遠大于其他指標,可知(mn·log n+ps2)/k+n2+kc2lt;dn·log n·s2+n2lt;an2·log n·k/k2lt;(n log n+pn3)/k,相比于FCNN、SSOCNN和MR-FPDCNN算法,本文提出的IA-PDCNNOA算法在大數據環境下有著更為理想的時間復雜度。
3實驗結果以及分析
3.1實驗環境
為了驗證IA-PDCNNOA 算法的性能表現,本文設計了相關實驗。實驗硬件包含一臺master機和七臺slaver機組成,所有節點的CPU都為AMD Ryzen 7 3800X,內存32 GB,GPU為NVIDIA RTX2080Ti,通過1000 Mbps的以太網相連。實驗的編程環境為Python 3.8,TensorFlow 2.3,JDK 1.8,Apache Hadoop 3.3,Windows 10 Enterprise 2016 LTSB,節點配置如表1所示。
3.2實驗數據
實驗采用CIFAR10、CIFAR100、ImageNet 1K和CompCars數據集。CIFAR10數據集包含10個類別,由尺寸為32×32彩色圖像組成,每個類有6 000個圖像,有50 000條訓練集和10 000條測試集;CIFAR100數據集包含100個類別,由尺寸為32×32彩色圖像組成,每個類有600個圖像,每個類各有500個訓練集和100個測試集;ImageNet是目前世界上最大的圖像識別數據庫,ImageNet 1K包含1 000個類別,120多萬條訓練集和50 000條的驗證集,通過邊界填充保持圖像長寬比,將圖像調整為224×224;CompCars數據集共包含208 826個車輛圖片,共有163個汽車品牌的1 716款車輛型號。數據集的具體信息如表2所示。
3.3實驗準備
本文采用ResNet50作為算法的訓練網絡,ResNet50作為神經網絡中具有跨層連接的代表,能夠很好地反映出卷積神經網絡算法對模型的優化效果。為了減小頻繁讀取小文件的開銷,將圖像轉換為灰度圖,并通過MapReduce算法并行化地將數據集中的圖片轉換為TFRecord格式,完成實驗數據準備。
3.4評價指標
實驗主要通過模型的加速比、top-1準確率/浮點運算量FLOPs(floating point operations)和算法運行時間四個評價指標衡量算法性能,加速比和top-1準確率定義如下:
a)加速比。加速比是通過并行計算以降低總體的運行時間而獲得的性能提升的數值化表示形式,加速比越大,算法并行程度越高,定義如下:
Sn=Ts/Tn(17)
其中:Ts為算法串行運行時間;Tn為算法并行運行時間。
b)top-1準確率。top-1準確率是深度學習中評價模型預測錯誤率的重要指標,top-1準確率越高,模型性能越好,定義為
ACCtop-1=Tb/N(18)
其中:Tb為所有驗證集中正確標簽在模型輸出的最佳標記中的樣本數;N為樣本總數。
3.5算法可行性比較分析
為驗證IA-PDCNNOA算法在大數據環境下的并行訓練可行性,采用算法的加速比來進行衡量,對IA-PDCNNOA算法在CIFAR10、CIFAR100、ImageNet 1K和CompCars數據集上進行測試。同時為確保實驗結果的準確性,取各算法平均10次運行時長來計算加速比。實驗結果如圖2所示。
從圖2可以看出,IA-PDCNNOA算法隨著節點數的增加,其加速比總體呈現上升趨勢,且隨著四個數據集規模的增加逐步增長。其中當節點數為2時,IA-PDCNNOA算法在四個數據集上的加速比差異較小;當節點數為4時,算法相比于單節點的加速比分別增加了2.205、2.417、3.824和4.735;當節點數為8時,IA-PDCNNOA算法在各數據集上有顯著提升,分別達到了6.861、6.876、9.828和8.915。這是由于IA-PDCNNOA算法設計了IM-PMTS策略,將等大小的圖像塊均勻分布至集群各計算節點,在減少節點通信時間的同時保證了數據的負載均衡,極大地提升了算法的運行效率。此外算法還設計了IM-BGDS策略,排除了異常節點所產生的數據計算,避免了這類數據的讀寫與傳輸對系統資源的消耗,在一定程度上提升了算法的性能,隨著數據規模的增大,這種提升的效果也逐漸明顯,表明IA-PDCNNOA算法適用于大數據環境下并行DCNN模型的訓練。
3.6算法性能實驗分析比較
3.6.1算法加速比實驗分析
為驗證IA-PDCNNOA算法在大數據環境中的并行化性能,本文基于CIFAR10、CIFAR100、ImageNet 1K和CompCars數據集,將加速比作為衡量指標,分別與MR-FPDCNN、SSOCNN、FCNN進行比較。為確保實驗結果的準確性,取各算法平均10次運行時長來計算加速比,實驗結果如圖3所示。
從圖3(a)(b)可以看出,在處理CIFAR10、CIFAR100這樣規模相對較小的數據集時,各算法的加速比隨著節點數的增加而緩慢增加,其中,當集群節點數為4時,IA-PDCNNOA的加速比相比于并行化程度不高的FCNN和SSOCNN,分別低了0.325、0.435和0.276、0.102;在圖3(c)(d)中,算法處理ImageNet 1K、CompCars這樣相對較大的數據集時,IA-PDCNNOA的加速比增速較大,在集群節點數為8時分別達到了9.804和8.912,相比MR-FPDCNN、FCNN和SSOCNN分別高出1.148、4.173、4.652和0.965、2.678、2.094。產生這些結果的原因是:當IA-PDCNNOA在處理規模相對較小的數據集時,數據分布到各個計算節點會導致各節點間的通信時間開銷快速增長,通過并行化運算獲得的運行速度提升極為有限;當IA-PDCNNOA在處理規模相對較大的數據集時,因為其設計的IM-PMTS策略,通過提出馬氏距離中心值MDCV對同層卷積核剪枝,減少了卷積層參數在網絡通信中的開銷,然后通過結合MapReduce和Im2col方法并行訓練的方式加速卷積運算的過程,提高了卷積層運算速度,并提升了算法的加速比。實驗表明,IA-PDCNNOA的并行化能力隨著集群節點數的增多而顯著增強,其適用于大數據集進行并行化處理,且具有較好的性能。
3.6.2算法準確率實驗分析
為了進一步驗證IA-PDCNNOA算法的訓練效果,使用top-1準確率作為衡量指標評價算法的訓練效果,將IA-PDCNNOA、MR-FPDCNN、SSOCNN和FCNN分別在CIFAR10、CIFAR100、ImageNet 1K和CompCars數據集上進行訓練,計算其top-1準確率作為實驗結果,實驗結果如圖4所示。
從圖4(a)(b)可以看出,在處理CIFAR10、CIFAR100這樣規模相對較小的數據集時,各算法的top-1準確率均能穩定在較高的數值,其中,IA-PDCNNOA算法的top-1準確率最高,且較早地完成了收斂,達到了89.72%和72.31%,相比于MR-FPDCNN、SSOCNN和FCNN算法,提高了2.87%、4.62%、6.48%和2.14%、4.57%、3.53%;在圖4(c)(d)中,算法處理ImageNet 1K、CompCars相對較大的數據集時,各算法的top-1準確率和算法收斂情況有較大差異,其中,IA-PDCNNOA的top-1準確率在四個并行化算法中最高,達到了72.41%和69.17%,相比于MR-FPDCNN、SSOCNN和FCNN高了2.31%、7.98%、2.85%和2.81%、7.58%、4.84%,但其他三個算法均出現了不同程度難以收斂的情況。產生這些結果是因為:IA-PDCNNOA算法提出IM-BGDS策略,其設計損失求和梯度LSG(T)構建小批量數據梯度,并通過誤差反向傳播算法對參數并行更新,排除異常節點的訓練數據對批梯度的影響,增強了IA-PDCNNOA的收斂性。因此可以得出,IA-PDCNNOA相較于其他三個并行化算法有著較高的收斂速度和準確率,其適用于大數據集下的深度卷積神經網絡的模型并行化訓練。
3.6.3算法運行時間和FLOPs實驗分析
為驗證IA-PDCNNOA算法在大數據環境中算法執行速度和模型優化效果,本文基于CIFAR10、CIFAR100、ImageNet 1K和CompCars數據集,分別計算Baseline、IA-PDCNNOA、MR-FPDCNN、SSOCNN和FCNN的運行時間和FLOPs,其中Baseline為ResNet50模型在1/8數據負載量下的基準數據,實驗結果如表3所示。
從表3可以看出,在處理CIFAR10、CIFAR100這樣規模相對較小的數據集時,各算法運行時間沒有較大的差距,但它們的浮點運算量均有不同程度的減少,其中,IA-PDCNNOA的浮點運算量相比于MR-FPDCNN、SSOCNN和FCNN分別減少了5%、21%、16%和5%、25%、27%;在處理ImageNet 1K、CompCars這樣較大的數據集時,IA-PDCNNOA算法的運行時間和浮點運算量均優于其他三個算法,其中,IA-PDCNNOA的運行時間相比于MR-FPDCNN、SSOCNN和FCNN快了1.32×104 s、3.85×104 s、5.29×104 s和1.05×104 s、4.13×104 s、5.59×104 s,浮點運算量分別減少了3%、13%、8%和3%、15%、15%。對比四個算法在CIFAR10、CIFAR100、ImageNet 1K和CompCars數據集上的運行時間和浮點運算量的變化趨勢可以看出,IA-PDCNNOA算法隨著訓練數據集的增大,其運行時間和浮點運算量的減少與其他算法拉開了較大差距,產生這些結果的原因是:IA-PDCNNOA提出的MHO-PFES策略,通過提出特征相關指數FCI(x,y)去除了數據中的冗余特征,并篩選數據的目標特征作為卷積神經網絡的輸入,減少了模型的浮點運算量,加快了算法的運行速度。所以可以得出IA-PDCNNOA優于MR-FPDCNN、SSOCNN和FCNN,適用于大數據集下的DCNN模型并行化訓練。
3.6.4算法并行方式性能實驗分析
為驗證在大數據環境下算法并行方式對模型構建時間影響,本文選取基于數據并行的MR-FPDCNN和基于模型并行的SSOCNN與IA-PDCNNOA進行比較,IA-PDCNNOA在正向傳播階段是數據并行方式,反向傳播階段是模型并行方式。比較算法在CIFAR10、CIFAR100、ImageNet 1K和CompCars數據集訓練至模型準確率為70%所需運行時間的實驗結果如圖5所示。
從圖5可以看出,算法在面對CIFAR10、CIFAR100這樣的小規模數據集時訓練時間相差不大,但在面對ImageNet 1K、CompCars這樣的大數據環境下,IA-PDCNNOA算法的運行時間相比于數據并行的MR-FPDCNN和模型并行的SSOCNN分別降低了1 322 s、3 837 s和1 049 s、4 127 s,可以看出IA-PDCNNOA算法隨著訓練數據規模的增大,訓練時間相比于數據并行的MR-FPDCNN和模型并行的SSOCNN顯現了明顯的優勢。產生這些結果的原因是:對于數據并行算法MR-FPDCNN,由于其將數據分散至不同節點單獨訓練,不同節點間的模型參數沒有共享,導致需要花費更長時間訓練才能達到目標準確率;對于模型并行算法SSOCNN,其在卷積計算階段各節點特征圖合并使得算法承受了極大的通信開銷,降低了算法的運行速度。相比于數據并行算法MR-FPDCNN和模型并行算法SSOCNN,IA-PDCNNOA在卷積計算的正向傳播階段,各節點分別計算batch中的特征圖,免去了不同節點間的通信開銷;在反向傳播階段,算法將計算結果構建批梯度訓練模型參數,使得IA-PDCNNOA相比于MR-FPDCNN和SSOCNN運行時間大幅度減少。實驗表明,相比于MR-FPDCNN和SSOCNN,IA-PDCNNOA的混合式并行更適用于大規模深度卷積神經網絡的訓練。
4結束語
針對傳統的深度卷積神經網絡算法在大數據環境下的不足,本文提出一種基于Im2col算法的并行深度卷積神經網絡優化算法IA-PDCNNOA。首先提出MHO-PFES策略,設計改進的非局部均值濾波器FT(a,b)對輸入數據進行濾波,并計算濾波數據的拉普拉斯方程h(x,y),尋找拉普拉斯方程的零交叉來提取數據特征,并提出特征相關指數FCI(x,y)去除冗余數據,從而解決了數據冗余特征多的問題;提出IM-PMTS策略,設計馬氏距離中心值MDCV尋找與網絡模型中卷積核線性相關的向量,并以此對同層卷積核剪枝,然后通過結合Map-Reduce和Im2col方法并行訓練的方式加速卷積運算的過程,提高了卷積層運算速度;最后提出IM-BGDS策略,設計損失均值權重LAW(gi)來排除異常節點的訓練數據對批梯度的影響,并設計損失求和梯度LSG(T)構建批數據平均梯度,結合MapReduce計算框架和反向傳播的誤差傳導公式對參數并行更新,排除異常節點的訓練數據對批梯度的影響,解決了損失函數收斂性差的問題。為了驗證IA-PDCNNOA算法的性能,本文在ResNet50網絡上設計了相關實驗,在CIFAR10、CIFAR100、ImageNet 1K和CompCars數據集上將IA-PDCNNOA分別與MR-FPDCNN、SSOCNN和FCNN進行比較。最終的實驗結果和實驗分析均反映出與其他算法相比,IA-PDCNNOA在處理大數據時具有相對較好的性能表現。雖然IA-PDCNNOA在深度卷積神經網絡的模型訓練方面取得進步,但該算法在預測準確率上依然存在一定的提升空間,算法的并行性能也有待加強,這將是今后的重點研究內容。
參考文獻:
[1]張珂,馮曉晗,郭玉榮,等.圖像分類的深度卷積神經網絡模型綜述[J].中國圖象圖形學報,2021,26(10):2305-2325.(Zhang Ke,Feng Xiaohan,Guo Yurong,et al.Overview of deep convolutional neural networks for image classification[J].Journal of Image and Graphics,2021,26(10):2305-2325.)
[2]楊真真,匡楠,范露,等.基于卷積神經網絡的圖像分類算法綜述[J].信號處理,2018,34(12):1474-1489.(Yang Zhenzhen,Kuang Nan,Fan Lu,et al.Review of image classification algorithms based on convolutional neural networks[J].Journal of Signal Processing,2018,34(12):1474-1489.)
[3]朱方圓,馬志強,陳艷,等.語音識別中說話人自適應方法研究綜述[J].計算機科學與探索,2021,15(12):2241-2255.(Zhu Fangyuan,Ma Zhiqiang,Chen Yan,et al.Survey of speaker adaptation methods in speech recognition[J].Journal of Frontiers of Computer Science amp; Technology,2021,15(12):2241-2255.)
[4]羅會蘭,袁璞,童康.基于深度學習的顯著性目標檢測方法綜述[J].電子學報,2021,49(7):1417-1427.(Luo Huilan,Yuan Pu,Tong Kang.Review of the methods for salient object detection based on deep learning[J].Acta Electronica Sinica,2021,49(7):1417-1427.)
[5]徐輝,祝玉華,甄彤,等.深度神經網絡圖像語義分割方法綜述[J].計算機科學與探索,2021,15(1):47-59.(Xu Hui,Zhu Yuhua,Zhen Tong,et al.Survey of image semantic segmentation methods based on deep neural network[J].Journal of Frontiers of Compu-ter Science amp; Technology,2021,15(1):47-59.)
[6]白子軼,毛懿榮,王瑞平.視頻人臉識別進展綜述[J].計算機科學,2021,48(3):50-59.(Bai Ziyi,Mao Yirong,Wang Ruiping.Survey on video-based face recognition[J].Computer Science,2021,48(3):50-59.)
[7]朱向雷,王海弛,尤翰墨,等.自動駕駛智能系統測試研究綜述[J].軟件學報,2021,32(7):2056-2077.(Zhu Xianglei,Wang Haichi,You Hanmo,et al.Survey on testing of intelligent systems in autonomous vehicles[J].Journal of Software,2021,32(7):2056-2077.)
[8]Amalina F,Hashem I A T,Azizul Z H,et al.Blending big data analy-tics:review on challenges and a recent study[J].IEEE Access,2020,8:3629-3645.
[9]Gomes V C F,Queiroz G R,Ferreira K R.An overview of platforms for big earth observation data management and analysis[J].Remote Sensing,2020,12(8):1253.
[10]肖文,胡娟,周曉峰.基于MapReduce計算模型的并行關聯規則挖掘算法研究綜述[J].計算機應用研究,2018,35(1):13-23.(Xiao Wen,Hu Juan,Zhou Xiaofeng.Parallel association rules mining algorithm based on MapReduce:a survey[J].Application Research of Computers,2018,35(1):13-23.)
[11]金國棟,卞昊穹,陳躍國,等.HDFS存儲和優化技術研究綜述[J].軟件學報,2020,31(1):137-161.(Jin Guodong,Bian Haoqiong,Chen Yueguo,et al.Survey on storage and optimization techniques of HDFS[J].Journal of Software,2020,31(1):137-161.)
[12]Mahdi M A,Hosny K M,Elhenawy I.Scalable clustering algorithms for big data:a review[J].IEEE Access,2021,9:80015-80027.
[13]Leung J,Chen Min.Image recognition with MapReduce based convolutional neural networks[C]//Proc of the 10th IEEE Annual Ubiquitous Computing,Electronics amp; Mobile Communication Conference.Piscataway,NJ:IEEE Press,2019:119-125.
[14]Takam C A,Samba O,Kouanou A T,et al.Spark architecture for deep learning-based dose optimization in medical imaging[J].Informatics in Medicine Unlocked,2020,19:100335.
[15]Wang Haoyu,Ma Chengguang.An optimization of Im2col,an important method of CNNs,based on continuous address access[C]//Proc of IEEE International Conference on Consumer Electronics and Computer Engineering.Piscataway,NJ:IEEE Press,2021:314-320.
[16]毛伊敏,張瑞朋,高波.大數據下基于特征圖的深度卷積神經網絡[J].計算機工程與應用,2022,58(15):110-116.(Mao Yimin,Zhang Ruipeng,Gao Bo.Deep convolutional neural network algorithm based on feature map in big data environment[J].Computer Engineering and Applications,2022,58(15):110-116.)
[17]Park J,Kang C K,Lee Y.Quantitative evaluation of the image quality using the fast nonlocal means denoising approach in diffusion-weighted magnetic resonance imaging with high b-value[J].Journal of the Korean Physical Society,2021,78(2):244-250.
[18]陳俊,何慶.基于余弦相似度的改進蝴蝶優化算法[J].計算機應用,2021,41(9):2668-2677.(Chen Jun,He Qing.Improved butterfly optimization algorithm based on cosine similarity[J].Journal of Computer Applications,2021,41(9):2668-2677.)
[19]Ji Zeyu,Zhang Xingjun,Wei Zheng,et al.A tile-fusion method for accelerating Winograd convolutions[J].Neurocomputing,2021,460(10):9-19.
[20]王燕,亓祥惠,段亞西.基于核函數與馬氏距離的FCM圖像分割算法[J].計算機應用研究,2020,37(2):611-614,624.(Wang Yan,Qi Xianghui,Duan Yaxi.Image segmentation of FCM algorithm based on kernel function and Markov distance[J].Application Research of Computers,2020,37(2):611-614,624.)
收稿日期:2022-03-20;修回日期:2022-05-13基金項目:科技創新2030—“新一代人工智能”重大項目(2020AAA0109605);國家自然科學基金資助項目(41562019);江西省教育廳科技項目(GJJ209405,GJJ209406,GJJ209407)
作者簡介:胡健(1967-),男,江西贛州人,教授,碩導,博士,主要研究方向為數據挖掘和人工智能;龔克(1997-),男,江西南昌人,碩士,主要研究方向為數據挖掘和人工智能;毛伊敏(1970-),女(通信作者),江西贛州人,教授,碩導,博士,主要研究方向為分布式計算和人工智能(mymlyc@163.com);陳志剛(1960-),男,湖南長沙人,教授,博導,博士,主要研究方向為分布式計算和人工智能;陳亮(1982-),男,江西贛州人,講師,碩士,主要研究方向為數據挖掘和人工智能.