歐莉莉, 杜芳芳
(黃河交通學(xué)院智能工程學(xué)院, 河南 焦作 454950)
圖像識(shí)別技術(shù)是深度學(xué)習(xí)領(lǐng)域的一項(xiàng)重要內(nèi)容,在識(shí)別圖像時(shí),深度學(xué)習(xí)方法研究的基礎(chǔ)是對(duì)圖像進(jìn)行處理、分析、理解得出結(jié)果,圖像的預(yù)處理、特征的提取與匹配是圖像識(shí)別技術(shù)非常重要的環(huán)節(jié)。用計(jì)算機(jī)進(jìn)行圖像識(shí)別,不僅能夠提高圖像數(shù)據(jù)的處理效率,而且能對(duì)人眼很難觀察、提取到的圖像信息進(jìn)行更多細(xì)節(jié)的辨識(shí)[1]。圖像識(shí)別的方法主要有傳統(tǒng)圖像識(shí)別和深度學(xué)習(xí)圖像識(shí)別。傳統(tǒng)圖像識(shí)別方法在識(shí)別的過(guò)程中,只能對(duì)圖像的低級(jí)邊緣信息進(jìn)行處理,無(wú)法獲得圖像的深層信息,并且需要人工進(jìn)行預(yù)處理,導(dǎo)致圖像處理的效率和準(zhǔn)確率不高。而深度學(xué)習(xí)圖像識(shí)別方法能夠通過(guò)構(gòu)建多層隱藏層網(wǎng)絡(luò),利用計(jì)算機(jī)自適應(yīng)地學(xué)習(xí)圖像中的局部細(xì)節(jié)及圖像的空間全局特征,具有很強(qiáng)的識(shí)別能力,而且識(shí)別圖像的準(zhǔn)確率也很高。
2014年,GOODFELLOW等[2]提出了生成對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Networks, GAN),GAN模型的基本框架由生成器和判別器兩個(gè)部分組成。在生成器中,主要通過(guò)對(duì)隨機(jī)噪音的輸入,使得產(chǎn)生的樣本更接近實(shí)際數(shù)據(jù)的分布。在此基礎(chǔ)上,將數(shù)據(jù)和產(chǎn)生的樣本分別輸入判別器,由判別器區(qū)分兩者,最后得到樣本為真值的概率。在2015年提出的深度卷積生成對(duì)抗網(wǎng)絡(luò)(Deep Convolutional Generative Adversarial Networks, DCGAN)模型,是對(duì)GAN模型的改進(jìn),并首次使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取,從而改善了GAN模型學(xué)習(xí)的穩(wěn)定性[3]。2016年,OpenAI發(fā)布了一種改進(jìn)的GAN模型,稱為半監(jiān)督生成對(duì)抗網(wǎng)絡(luò)(Semi-Supervised Generative Adversarial Networks, SSGAN)[4]。在訓(xùn)練SSGAN模型時(shí),它的損失函數(shù)是通過(guò)有監(jiān)督和無(wú)監(jiān)督的混合學(xué)習(xí)實(shí)現(xiàn)的,可以提高半監(jiān)督分類的精度[5-6]。
為了實(shí)現(xiàn)對(duì)圖像更高效和精確的識(shí)別,文章提出了半監(jiān)督編碼深度卷積生成對(duì)抗網(wǎng)絡(luò)(Semi-Supervised Encoder Deep Convolutional Generative Adversarial Networks, SSE-DCGAN)模型,該模型將GAN、DCGAN、SSGAN和編碼器提取特征等方法相結(jié)合,最大限度地發(fā)揮每一種方法的優(yōu)勢(shì),建立更準(zhǔn)確的圖像識(shí)別模型。圖1為SSE-DCGAN模型的基本架構(gòu)。
圖1 SSE-DCGAN模型基本框架Fig.1 Basic framework of SSE-DCGAN model
在SSE-DCGAN模型中使用流形相一致的合并模式,其過(guò)程如圖2所示,通過(guò)將圖像數(shù)據(jù)和特征進(jìn)行融合,能有效地處理數(shù)據(jù)間的不匹配問(wèn)題,降低網(wǎng)絡(luò)的計(jì)算量。
為了避免因批量初始化(Batch Normalization, BN)操作不當(dāng)造成的訓(xùn)練過(guò)程異常問(wèn)題,對(duì)圖片進(jìn)行處理時(shí)采用L2范數(shù)歸一化[7]。在L2范數(shù)處理過(guò)程中,第l層的神經(jīng)元輸出如下:
(1)
將L2范數(shù)用于隱變量和特征相結(jié)合的歸一化操作,在對(duì)l-1層參數(shù)進(jìn)行逆向求導(dǎo)時(shí),要添加一個(gè)導(dǎo)數(shù)除以特征模的運(yùn)算,也就是當(dāng)SSE-DCGAN模型使用流形一致結(jié)合的方式時(shí),可以縮短模型的預(yù)計(jì)計(jì)算時(shí)間,進(jìn)而加快模型的收斂。
圖2 SSE-DCGAN模型中流形一致結(jié)合方式Fig.2 Consistent binding of manifolds in the SSE-DCGAN model
SSE-DCGAN模型的學(xué)習(xí)過(guò)程就是一個(gè)不斷優(yōu)化損失函數(shù)的過(guò)程。SSE-DCGAN模型中的損失函數(shù)包括判別器的損失LD、生成器的損失LG、編碼器的損失LE。將三種類型的數(shù)據(jù)(有標(biāo)記數(shù)據(jù)、無(wú)標(biāo)記數(shù)據(jù)、生成數(shù)據(jù))和數(shù)據(jù)相應(yīng)的特征輸入判別器,并且都有各自對(duì)應(yīng)的損失函數(shù),即有標(biāo)簽數(shù)據(jù)損失Llabel、無(wú)標(biāo)簽數(shù)據(jù)損失Lunlabel、生成樣本損失Lgen、數(shù)據(jù)特征(編碼器)損失LE。如公式(2)所示,有標(biāo)簽數(shù)據(jù)損失是真實(shí)類標(biāo)簽分布和預(yù)測(cè)類標(biāo)簽的交叉熵?fù)p失;無(wú)標(biāo)簽數(shù)據(jù)損失是無(wú)標(biāo)簽數(shù)據(jù)來(lái)自真實(shí)數(shù)據(jù),此時(shí)y≠K+1;生成樣本損失是生成器生成的偽樣本被判別器判斷為假樣本的損失,此時(shí)y=K+1;數(shù)據(jù)特征損失編碼器用來(lái)提取真實(shí)數(shù)據(jù)的特征。
在對(duì)判別器損失函數(shù)進(jìn)行優(yōu)化時(shí),有標(biāo)記的數(shù)據(jù)需要被監(jiān)督的學(xué)習(xí),無(wú)標(biāo)記數(shù)據(jù)、偽樣本用于無(wú)監(jiān)督學(xué)習(xí)。即
LD=LE+Llabel+Lunlabel+Lgen=LE+Lsupervised+Lunsupervised
(2)
公式(2)中:
(3)
編碼器損失LE用于解決數(shù)據(jù)之間的偏移問(wèn)題,它的損失函數(shù)是交叉熵?fù)p失,如公式(4)所示:
(4)
監(jiān)督損失Lsupervised主要由Llabel組成,相當(dāng)于一種有監(jiān)督的分類工作,對(duì)于一個(gè)K分類問(wèn)題,網(wǎng)絡(luò)參數(shù)的優(yōu)化要求使標(biāo)記數(shù)據(jù)的樣本和模型預(yù)測(cè)分布Pmodel(y|x)之間的交叉熵最小,其表達(dá)式如公式(5)所示:
Llabel=-Ex,y~PdatalgPmodel(y|x,y (5) 無(wú)監(jiān)督損失Lunsupervised主要由Lunlabel和Lgen組成。其中,Lunlabel在訓(xùn)練時(shí)盡可能最大化無(wú)標(biāo)簽數(shù)據(jù)來(lái)自真實(shí)數(shù)據(jù)的概率如公式(6);以及Llabel盡可能最大化樣本來(lái)自生成樣本的概率如公式(7): Lunlabel=-Ex~Pdatalg[1-Pmodel(y=K+1|x)] (6) Lgen=-Ex~Glg[Pmodel(y=K+1)] (7) 對(duì)于生成器的損失函數(shù)LG來(lái)說(shuō),為了讓生成器對(duì)實(shí)際數(shù)據(jù)分布有更好的學(xué)習(xí)能力,本文使用特征匹配法定義LG[8]。在訓(xùn)練的時(shí)候,用偽樣本和真樣本特征匹配的結(jié)果作為生成器的損失函數(shù),使損失函數(shù)達(dá)到最小值,它的定義在公式(8)中已給出。 (8) 本文將SSE-DCGAN模型應(yīng)用于MNIST、CIFAR-10和Fashion-MNIST數(shù)據(jù)集進(jìn)行圖像識(shí)別研究。三種數(shù)據(jù)集中的圖片類型如圖3所示。 (a)MNIST (b)CIFAR-10 (c)Fashion-MNIST 本文的所有實(shí)驗(yàn)都是以Tensorflow為基礎(chǔ),用Python語(yǔ)言完成編程。硬件為通用PC機(jī)(CPU 3.60 GHz、RAM 32.0 GB);操作系統(tǒng)為Windows 10專業(yè)版(64位)。 在MNIST、CIFAR-10、Fashion-MNIST三種數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)時(shí),實(shí)驗(yàn)參數(shù)的設(shè)置如表1所示。 表 1 參數(shù)設(shè)置 本文對(duì)SSE-DCGAN模型的有效性進(jìn)行分析和驗(yàn)證,具體步驟如下。 3.3.1 MNIST數(shù)據(jù)集的實(shí)驗(yàn) 在MNIST數(shù)據(jù)集中,為了減少模型占用的運(yùn)算時(shí)間,在訓(xùn)練開(kāi)始時(shí),先對(duì)數(shù)據(jù)進(jìn)行歸一化處理。為防止模型過(guò)擬合,將Dropout參數(shù)設(shè)定為0.5。有標(biāo)記樣本的數(shù)被設(shè)定為100個(gè)、1 000個(gè)和10 000個(gè),一共做了三個(gè)對(duì)照實(shí)驗(yàn),實(shí)驗(yàn)對(duì)比的結(jié)果列于表2中。從表2中可以看出,當(dāng)用相同的有標(biāo)記數(shù)據(jù)進(jìn)行測(cè)試時(shí),在半監(jiān)督對(duì)抗訓(xùn)練下,SSE-DCGAN模型能提高圖像識(shí)別的精度。 表 2 MNIST數(shù)據(jù)集上測(cè)試精度的對(duì)比結(jié)果 從表3中的實(shí)驗(yàn)結(jié)果可以看出,在模型中加入編碼器后,識(shí)別精度提高0.43%,這表明在SSE-DCGAN模型中添加編碼器對(duì)于提高模型的性能是可行的,編碼器的引入還可以幫助模型對(duì)圖像進(jìn)行更深層次的學(xué)習(xí)。 表 3 MNIST數(shù)據(jù)集上的消融實(shí)驗(yàn) 圖4顯示了在訓(xùn)練期間由生成器生成的局部圖片的視覺(jué)效果:當(dāng)epoch=1(剛剛開(kāi)始訓(xùn)練)時(shí),僅能獲得一幅模糊的灰度圖,但是隨著訓(xùn)練次數(shù)的增多,各種數(shù)值的特征會(huì)逐漸呈現(xiàn)出來(lái),其中訓(xùn)練到1 500輪時(shí),各種數(shù)值的特征呈現(xiàn)更為顯著,說(shuō)明該生成器對(duì)實(shí)際數(shù)據(jù)的分布有著較好的擬合效果。 (a)eopch1 (b)epoch1 500 3.3.2 CIFAR-10數(shù)據(jù)集的實(shí)驗(yàn) CIFAR-10是一種自然圖像數(shù)據(jù)集,它的圖像中包含非常復(fù)雜和豐富的細(xì)節(jié),生成器中Dropout系數(shù)的設(shè)定可能會(huì)在訓(xùn)練時(shí)產(chǎn)生誤差,因此本文對(duì)SSE-DCGAN模型進(jìn)行了大量的實(shí)驗(yàn),最終將Dropout系數(shù)設(shè)定為0.3。根據(jù)這個(gè)系數(shù),本文進(jìn)行了3組不同的實(shí)驗(yàn),有標(biāo)記的樣本數(shù)為1 000個(gè)、2 000個(gè)和4 000個(gè),實(shí)驗(yàn)結(jié)果列于表4中。由表4可知,相比較于其他模型,SSE-DCGAN模型在半監(jiān)督對(duì)抗學(xué)習(xí)條件下具有更高的識(shí)別率。 表 4 CIFAR-10數(shù)據(jù)集上測(cè)試精度的對(duì)比結(jié)果 為了測(cè)試模型在增加了一個(gè)編碼器之前和之后的辨識(shí)能力,消融實(shí)驗(yàn)選擇在CIFAR-10數(shù)據(jù)集有標(biāo)記數(shù)據(jù)為4 000時(shí)進(jìn)行,對(duì)比各種模型的實(shí)驗(yàn)結(jié)果見(jiàn)表5:在GAN模型中添加編碼器后,模型的預(yù)測(cè)準(zhǔn)確率從89.23%上升到91.78%,提升了2.55%。實(shí)驗(yàn)結(jié)果顯示,編碼器加入SSE-DCGAN模型中,能夠改善實(shí)際數(shù)據(jù)中的圖像特征,從而使SSE-DCGAN模型不但能對(duì)更復(fù)雜的圖像進(jìn)行有效的處理,還能在一定程度上提高圖像的識(shí)別精度。 表 5 CIFAR-10數(shù)據(jù)集上的消融實(shí)驗(yàn) 圖5是生成器在不同的訓(xùn)練次數(shù)時(shí)產(chǎn)生的局部圖像。可以從圖中看到,每一幅圖像的特征都越來(lái)越清楚,特別是模型訓(xùn)練到1 500輪時(shí),每一幅畫的特征都很明顯。此外,隨著訓(xùn)練次數(shù)的增加,模型趨于穩(wěn)定,生成器的性能增強(qiáng),所生成的虛假樣本可以騙過(guò)判別器,與實(shí)際數(shù)據(jù)一起訓(xùn)練判別器,最后得到準(zhǔn)確的判別表面。 (b)epoch1 500 3.3.3 Fashion-MNIST數(shù)據(jù)集實(shí)驗(yàn) 在Fashion-MNIST數(shù)據(jù)集上,與MNIST數(shù)據(jù)集上采用相同的參數(shù)設(shè)置。同時(shí),在此數(shù)據(jù)集中,有標(biāo)記的樣本數(shù)為1 000個(gè)和10 000個(gè)。表6中列出了實(shí)驗(yàn)結(jié)果:在使用相同數(shù)據(jù)和同樣帶標(biāo)記的數(shù)據(jù)時(shí),SSE-DCGAN模型有效地提升圖像識(shí)別準(zhǔn)確率,獲得優(yōu)于對(duì)比模型的識(shí)別準(zhǔn)確率。 表 6 Fashion-MNIST數(shù)據(jù)集上測(cè)試精度的對(duì)比結(jié)果 為了檢驗(yàn)SSE-DCGAN模型對(duì)圖像的處理效果,消融實(shí)驗(yàn)是在標(biāo)記數(shù)據(jù)為10 000個(gè)時(shí)進(jìn)行的,將使用編碼器之前和之后的模型識(shí)別結(jié)果進(jìn)行比較,實(shí)驗(yàn)結(jié)果見(jiàn)表7。四種識(shí)別Fashion-MNIST數(shù)據(jù)集模型的準(zhǔn)確率不斷提高,特別是加入編碼器之后,SSE-DCGAN模型的精度從89.02%到93.46%提高了4.44%。 表 7 Fashion-MNIST數(shù)據(jù)集上的消融實(shí)驗(yàn) 圖6顯示了該生成器在訓(xùn)練期間生成的一部分圖像。從圖中我們可以看到,訓(xùn)練到50輪次時(shí),生成的圖片都比較模糊,沒(méi)有T恤和裙子之類的特征。然而,隨著訓(xùn)練輪次不斷增加,圖像中的特征會(huì)越來(lái)越顯著,當(dāng)epoch為1 500時(shí),這些特征在圖片上更明顯,這也說(shuō)明生成器可以很好地對(duì)真實(shí)數(shù)據(jù)進(jìn)行仿真。 (a)epoch50 (b)epoch1 500 本文將半監(jiān)督學(xué)習(xí)引入到生成對(duì)抗網(wǎng)絡(luò),并且針對(duì)生成對(duì)抗網(wǎng)絡(luò)的不足之處,提出了一種基于生成對(duì)抗網(wǎng)絡(luò)的新算法,并通過(guò)在三種不同類型的數(shù)據(jù)集上進(jìn)行試驗(yàn),證明了新模型的優(yōu)勢(shì)。盡管文中提出的模型可以有效地提高圖像識(shí)別的準(zhǔn)確率,但是仍然存在不足之處:(1)增加了訓(xùn)練模型的參數(shù)。采用編碼器結(jié)構(gòu)后,雖然提高了圖像識(shí)別的準(zhǔn)確率,但是學(xué)習(xí)過(guò)程中存在大量的參數(shù),使得模型耗時(shí)較長(zhǎng)。在以后的研究中,可以對(duì)該模型進(jìn)行改進(jìn),從而提高其計(jì)算效率和識(shí)別結(jié)果的準(zhǔn)確性。(2)近幾年來(lái),針對(duì)生成對(duì)抗網(wǎng)絡(luò)的研究多集中于對(duì)生成器或判別器的改進(jìn),該領(lǐng)域尚無(wú)新的研究方法,今后可考慮將生成對(duì)抗網(wǎng)絡(luò)與傳統(tǒng)的機(jī)器學(xué)習(xí)方法相結(jié)合,以達(dá)到半監(jiān)督對(duì)抗訓(xùn)練的目的。3 實(shí)驗(yàn)結(jié)果與分析(Experimental results and analysis)
3.1 數(shù)據(jù)集
3.2 實(shí)驗(yàn)環(huán)境
3.3 SSE-DCGAN模型驗(yàn)證實(shí)驗(yàn)
4 結(jié)論(Conclusion)