李 偉,黃鶴鳴,張會(huì)云,更藏措毛
(1. 青海師范大學(xué)計(jì)算機(jī)學(xué)院,青海 西寧 810008;2. 藏文信息處理教育部重點(diǎn)實(shí)驗(yàn)室,青海 西寧 810008)
隨著大容量存儲(chǔ)設(shè)備的廣泛使用和數(shù)字化技術(shù)的普及,出現(xiàn)了大規(guī)模的圖像數(shù)據(jù)庫(kù)。圖像已成為人們獲取信息的主要方式。從浩瀚的圖像數(shù)據(jù)庫(kù)中搜索圖像,需要對(duì)數(shù)據(jù)庫(kù)中的圖像進(jìn)行分析處理,前提是對(duì)這些海量圖像進(jìn)行分類。
近年來,隨著大數(shù)據(jù)和硬件計(jì)算能力的發(fā)展,神經(jīng)網(wǎng)絡(luò)作為一種新興的深度學(xué)習(xí)方法,在各個(gè)領(lǐng)域不斷取得了突破性進(jìn)展[1]。Yann Le Cun于1998年提出的卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network, CNN)[2]能更好地獲取圖像的空間和位置信息,有利于圖像分類。Dave Steinkraus等人于2005年發(fā)現(xiàn)了圖形處理器(Graphics Processing Unit, GPU)在機(jī)器學(xué)習(xí)(Machine Learning, ML)方面的獨(dú)特優(yōu)勢(shì)[3],提出了基于GPU的高效CNN訓(xùn)練方法,大幅提高了CNN的運(yùn)算能力。Alex Krizhevsky等人于2012年提出了AlexNet[4]網(wǎng)絡(luò),采用ReLU激活函數(shù)并使用GPU分組卷積方式進(jìn)行并行訓(xùn)練。Christian Szegedy等人于2014年提出了GoogLeNet[5],在分類結(jié)果和運(yùn)算效率上均取得了較大提升。Sergey Loffe等人于2015年將批標(biāo)準(zhǔn)化(Batch Normalization)[6]應(yīng)用于神經(jīng)網(wǎng)絡(luò),保證了網(wǎng)絡(luò)中各層的輸出分布基本穩(wěn)定;同時(shí),大幅降低了網(wǎng)絡(luò)對(duì)初始參數(shù)的依賴,提升了網(wǎng)絡(luò)性能。
CNN具有良好的擴(kuò)展性和魯棒性,但利用CNN進(jìn)行圖像分類時(shí),會(huì)存在過擬合、梯度爆炸或梯度消失等問題。文獻(xiàn)[4]使用Dropout技術(shù)有效緩解了網(wǎng)絡(luò)過擬合問題。受圖像自身特性的啟發(fā),提出了一種融合分割權(quán)重和Attention機(jī)制的CNN圖像分類算法:基于分割權(quán)重的二次預(yù)訓(xùn)練方法,通過降低圖像背景噪聲的干擾,有效抑制了訓(xùn)練過程中出現(xiàn)的過擬合現(xiàn)象。在訓(xùn)練好的網(wǎng)絡(luò)上,使用三種不同Attention類型的激活函數(shù)充分進(jìn)行實(shí)驗(yàn)。結(jié)果表明:不同Attention類型的激活函數(shù)對(duì)網(wǎng)絡(luò)模型的作用不盡相同,混合Attention的實(shí)驗(yàn)效果最優(yōu);同時(shí),將其應(yīng)用于標(biāo)準(zhǔn)圖像庫(kù)Corel-1000進(jìn)行分類時(shí),分類精確度有了較大提高。
在神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)和訓(xùn)練過程中,過擬合是一個(gè)普遍存在的問題。過擬合指僅能擬合訓(xùn)練數(shù)據(jù),但不能很好地?cái)M合訓(xùn)練數(shù)據(jù)以外的數(shù)據(jù),其原因是:①模型擁有大量參數(shù)、表現(xiàn)力強(qiáng);②訓(xùn)練數(shù)據(jù)少。而神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的目標(biāo)是提高網(wǎng)絡(luò)泛化能力,即便是沒有包含在訓(xùn)練數(shù)據(jù)里的未觀測(cè)數(shù)據(jù),也希望模型可以進(jìn)行正確的識(shí)別。因此,在搭建復(fù)雜有效的網(wǎng)絡(luò)模型時(shí),尋找有效抑制過擬合的方法很重要。
受圖像自身特性的啟發(fā),提出了一種基于分割權(quán)重的二次預(yù)訓(xùn)練方法,通過降低圖像背景噪聲的干擾,對(duì)訓(xùn)練過程中出現(xiàn)的過擬合現(xiàn)象起到一定程度的抑制作用。其具體方法是將圖像I分割成4*4的16塊,選取靠近中心點(diǎn)的4塊作為圖像的中心塊,提取出原始圖像I的中心塊域Ω,剩余的塊作為背景塊B,如圖1。具體圖像分割后的效果圖如圖2。
圖1 圖像的中心塊區(qū)域Ω
圖2 圖像分割前后的對(duì)比效果
基于圖像分割權(quán)重的二次預(yù)訓(xùn)練方法有兩種:①首先,使用圖像中心塊對(duì)網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練;其次,使用完整圖像進(jìn)行第二次預(yù)訓(xùn)練。②通過設(shè)定閾值減小圖像的背景塊像素值。使用減小后的背景塊像素值和原始中心塊像素值預(yù)訓(xùn)練神經(jīng)網(wǎng)絡(luò),再使用完整圖像對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行第二次預(yù)訓(xùn)練。
二次預(yù)訓(xùn)練方法減小背景塊像素值的算法,用偽代碼描述如下:
Begin
圖像I分割成4*4的16塊;
提取原始圖像I的背景塊域B;
將背景塊像素值存于矩陣BG;
for(i=0;i for(j=0;j BG[i][j]=BG[i][j]*threshold value; end for end for End 僅獲取一種類型的關(guān)注,如比例關(guān)注[7]或空間關(guān)注[8],需要通過權(quán)重共享或歸范化對(duì)網(wǎng)絡(luò)結(jié)構(gòu)施加額外的約束。文獻(xiàn)[9][10]研究了混合關(guān)注?;旌详P(guān)注在沒有附加約束的情況下,通過改變不同的關(guān)注度,可以獲得最佳的網(wǎng)絡(luò)性能。文獻(xiàn)[11]使用了Sigmoid混合關(guān)注、通道關(guān)注和空間關(guān)注三種類型的激活函數(shù)?;旌详P(guān)注f1是在沒有施加額外約束的條件下,針對(duì)每一個(gè)通道和空間位置,使用激活函數(shù)Sigmoid。通道關(guān)注f2對(duì)所有通道內(nèi)的每個(gè)空間位置的像素點(diǎn)執(zhí)行L2標(biāo)準(zhǔn)化,達(dá)到移除空間信息的目的??臻g關(guān)注f3的作用與通道關(guān)注f2相反,對(duì)每個(gè)通道的所有特征圖進(jìn)行標(biāo)準(zhǔn)化,移除通道信息僅保留空間信息。其計(jì)算公式如下方法 (1) (2) (3) 其中,i表示所有空間位置,c表示所有通道,meanc和stdc分別表示第c個(gè)通道的均值和標(biāo)準(zhǔn)差,xi表示第i個(gè)空間位置的特征向量。 由于Sigmoid為飽和非線性函數(shù),而ReLU為非飽和非線性函數(shù),所以ReLU比Sigmoid的訓(xùn)練速度快;同時(shí),ReLU函數(shù)具有單側(cè)抑制作用,使得網(wǎng)絡(luò)具有稀疏激活性,能夠更好地學(xué)習(xí)數(shù)據(jù)特征,所以ReLU還具有學(xué)習(xí)準(zhǔn)確度高的特點(diǎn)。綜上所述,使用了帶有隨機(jī)失活和數(shù)據(jù)增強(qiáng)的ReLU激活函數(shù)[10],其計(jì)算公式如下方法 (4) (5) (6) 實(shí)驗(yàn)使用的圖像庫(kù)是Corel公司提供的標(biāo)準(zhǔn)圖像素材庫(kù)Corel-1000。該庫(kù)包含了人物、建筑物、公交車、花卉、動(dòng)物等10類共1000幅圖像,800張作為訓(xùn)練集,剩余200張作為測(cè)試集。為了方便網(wǎng)絡(luò)讀取,對(duì)圖像庫(kù)進(jìn)行了預(yù)處理操作,將圖像尺寸由原來的3*100*128壓縮成3*48*48。 實(shí)驗(yàn)中使用二次預(yù)訓(xùn)練方法對(duì)圖像庫(kù)進(jìn)行分類實(shí)驗(yàn)時(shí),將圖像填充為正方形后,將其等分為16塊,取靠近中心點(diǎn)的4塊作為中心塊,剩余的塊作為背景塊。神經(jīng)網(wǎng)絡(luò)模型的Epoch設(shè)為50,每次迭代次數(shù)為8,批處理大小為100幅圖像。第一層卷積有2304個(gè)神經(jīng)單元,卷積核大小是3*3;中間卷積層有100個(gè)神經(jīng)單元,卷積核大小是2*2,濾波器是40個(gè)。卷積步長(zhǎng)設(shè)為1,填充設(shè)為0。池化層步長(zhǎng)設(shè)置為2,池化窗口大小為2*2。最后,Softmax層有10個(gè)神經(jīng)單元,表示將圖像分為10類。 通過最小化損失函數(shù)來獲得最優(yōu)解。本研究使用交叉熵誤差函數(shù)[12]作為損失函數(shù),其表達(dá)式為 (7) 要使損失函數(shù)最優(yōu)化,需要用到優(yōu)化方法,實(shí)驗(yàn)采用Adam優(yōu)化器[13]。結(jié)合AdaGrad和RMSProp兩種優(yōu)化算法的優(yōu)點(diǎn)。綜合考慮梯度的一階矩估計(jì)(梯度的均值)和二階矩估計(jì)(梯度的未中心化的方差),計(jì)算更新步長(zhǎng)。 更新步驟可總結(jié)如下: 1)計(jì)算時(shí)刻t的梯度 gt=?θJ(θt-1) (8) 2)計(jì)算梯度的指數(shù)移動(dòng)平均數(shù) mt=β1mt-1+(1-β1)gt (9) 其中,將m0初始化為0,系數(shù)β1為指數(shù)衰減率,控制權(quán)重分配(動(dòng)量與當(dāng)前梯度),默認(rèn)為0.9。 3)計(jì)算梯度平方的指數(shù)移動(dòng)平均數(shù) (10) 其中,v0初始化為0,β2為指數(shù)衰減率,控制之前梯度平方的影響情況,默認(rèn)為0.999。 4)對(duì)梯度均值mt進(jìn)行偏差糾正 (11) 5)對(duì)梯度方差vt進(jìn)行偏差糾正 (12) 6)更新參數(shù),默認(rèn)學(xué)習(xí)率α=0.00 (13) 其中,ε=10-8,避免除數(shù)為0。步長(zhǎng)通過梯度均值和梯度均方根進(jìn)行自適應(yīng)調(diào)節(jié)。 本研究將基于中心塊的二次預(yù)訓(xùn)練方法的卷積神經(jīng)網(wǎng)絡(luò)(Center-based Convolution Neural Network, CTCNN)和降低背景噪聲的二次預(yù)訓(xùn)練方法的卷積神經(jīng)網(wǎng)絡(luò)(Background Convolution Neural Network, BGCNN)統(tǒng)稱為TPCNN(Two pre-training Convolution Neural Network, TPCNN)。背景塊閾值設(shè)為0.5時(shí),CNN和TPCNN在測(cè)試集上的實(shí)驗(yàn)結(jié)果見表1。 表1 CNN和TPCNN在測(cè)試集的準(zhǔn)確率比較 其中,分類算法的提高率為: (14) 從表1可以看出:由于CTCNN算法在第一次預(yù)訓(xùn)練時(shí)突出了圖像中的目標(biāo)物體,分類準(zhǔn)確率有了一定提高;而BGCNN算法在第一次預(yù)訓(xùn)練時(shí),不僅突出了圖像中的目標(biāo)物體,還降低了背景噪聲的干擾,從而較大程度地提升了分類效果。CTCNN比CNN分類準(zhǔn)確率提高了5.71%,BGCNN比CNN提高了11.43%。TPCNN抑制了訓(xùn)練過程中出現(xiàn)的過擬合現(xiàn)象,從而提高了分類準(zhǔn)確率。 從圖3中看到,BGCNN和CTCNN比CNN都有效提高了分類精度。并且,由于BGCNN降低了背景噪聲的干擾,從而性能比CTCNN和CNN相對(duì)穩(wěn)定。 圖3 TPCNN和CNN在測(cè)試集的曲線精度對(duì)比圖 使用BGCNN模型對(duì)圖像庫(kù)進(jìn)行分類時(shí),選取不同的背景塊閾值會(huì)產(chǎn)生不同的實(shí)驗(yàn)效果。將背景塊閾值分別設(shè)為0.3、0.5、0.7時(shí),其在測(cè)試集上的實(shí)驗(yàn)結(jié)果見表2。 表2 不同背景塊閾值的實(shí)驗(yàn)效果比較 當(dāng)背景塊閾值分別選取0.3、0.5、0.7時(shí),準(zhǔn)確率分別為71.7%、74.1%和72.9%。從準(zhǔn)確率分析來看,當(dāng)閾值是0.5時(shí),實(shí)驗(yàn)效果最優(yōu)。這是由于閾值為0.3時(shí),過度降低了背景塊區(qū)域?qū)D像分類所產(chǎn)生的影響。其準(zhǔn)確率接近于CTCNN的實(shí)驗(yàn)效果,原因在于選取的背景塊像素值過小,對(duì)圖像分類的影響不大。閾值為0.7時(shí),選取了過高的背景塊域值,容易造成過擬合,使實(shí)驗(yàn)結(jié)果未達(dá)到最優(yōu)。而閾值為0.5時(shí),選取了恰當(dāng)?shù)谋尘皦K域值,實(shí)驗(yàn)性能最優(yōu)。 混合關(guān)注分別是Sigmoid激活函數(shù)和ReLU激活函數(shù)時(shí),BGCNN神經(jīng)網(wǎng)絡(luò)模型在測(cè)試集上的實(shí)驗(yàn)效果見表3。 表3 兩種不同混合關(guān)注的實(shí)驗(yàn)效果比較 通過實(shí)驗(yàn)看出,與Sigmoid函數(shù)相比,ReLU函數(shù)能夠更好地學(xué)習(xí)數(shù)據(jù)特征,錯(cuò)誤率更低。 通過圖4的曲線圖可以看出,與Sigmoid函數(shù)相比,ReLU函數(shù)還能夠更快地學(xué)習(xí)數(shù)據(jù)特征,不但錯(cuò)誤率更低且收斂速度也較快。 圖4 Sigmoid和ReLU函數(shù)在測(cè)試集上的錯(cuò)誤率 當(dāng)BGCNN模型第一個(gè)卷積層使用三種不同Attention類型的激活函數(shù)進(jìn)行實(shí)驗(yàn)時(shí),在測(cè)試集上得到的實(shí)驗(yàn)結(jié)果見表4和箱線圖5。 表4 三種不同Attention機(jī)制實(shí)驗(yàn)效果 圖5 三種不同Attention機(jī)制在測(cè)試集上的錯(cuò)誤率 表4可以看出:通道關(guān)注和空間關(guān)注,僅關(guān)注了一種類型,分別去除了空間位置信息和通道信息,與混合關(guān)注相比,實(shí)驗(yàn)結(jié)果數(shù)據(jù)不夠理想;而混合關(guān)注同時(shí)考慮了空間位置和通道信息,其性能最優(yōu)。 從圖5的箱線圖中,可以觀察到,混合關(guān)注的最大、最小和中值錯(cuò)誤率均小于空間關(guān)注和通道關(guān)注。此外,混合關(guān)注的下四分位數(shù)均小于其它兩種關(guān)注的上四分位數(shù)。因此,混合關(guān)注不僅有較低的錯(cuò)誤率,而且性能也相對(duì)穩(wěn)定。相比于通道關(guān)注,空間關(guān)注性能略有提高。 當(dāng)BGCNN模型兩個(gè)卷積層均使用三種Attention機(jī)制時(shí),在測(cè)試集上得到的實(shí)驗(yàn)結(jié)果見表5。 表5 三種不同Attention機(jī)制實(shí)驗(yàn)效果 可以看出:當(dāng)兩層卷積都使用通道關(guān)注或空間關(guān)注時(shí),實(shí)驗(yàn)結(jié)果差距明顯。表4空間關(guān)注比通道關(guān)注的分類錯(cuò)誤率低;而表5中當(dāng)兩層卷積僅使用單一關(guān)注時(shí),相比于通道關(guān)注,f1(xi,c)空間關(guān)注不但未達(dá)到表4中的性能,反而錯(cuò)誤率迅速上升。 本文提出了一種基于分割權(quán)重的二次預(yù)訓(xùn)練方法,通過降低圖像背景噪聲的干擾,抑制了CNN圖像分類訓(xùn)練過程中出現(xiàn)的過擬合現(xiàn)象;同時(shí),使用三種不同Attention類型的激活函數(shù),在二次預(yù)訓(xùn)練方法上充分進(jìn)行驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,二次預(yù)訓(xùn)練方法對(duì)圖像分類效果有較大程度的提升;同時(shí),加入混合Attention的實(shí)驗(yàn)效果最優(yōu)。在未來的研究工作中,逐漸嘗試將優(yōu)化算法用于參數(shù)優(yōu)化,使模型性能達(dá)到更優(yōu)。2.2 Attention機(jī)制
3 實(shí)驗(yàn)結(jié)果及分析
3.1 實(shí)驗(yàn)參數(shù)與圖像庫(kù)
3.2 實(shí)驗(yàn)結(jié)果
4 總結(jié)