黃振文,謝凱
(長(zhǎng)江大學(xué)電子信息學(xué)院,湖北 荊州 434023)
文暢
(長(zhǎng)江大學(xué)計(jì)算機(jī)科學(xué)學(xué)院,湖北 荊州 434023)
盛冠群,文方青
(長(zhǎng)江大學(xué)電子信息學(xué)院,湖北 荊州 434023)
人臉識(shí)別[1]是計(jì)機(jī)利用人臉圖像進(jìn)行分析處理和比較的一種“智能技術(shù)”[2]。近些年隨著硬件設(shè)備的快速發(fā)展,深度學(xué)習(xí)[3]的算法不斷被完善,相對(duì)于傳統(tǒng)的人臉識(shí)別算法,卷積神經(jīng)網(wǎng)絡(luò)的算法在人臉識(shí)別中也取得了極大的突破。卷積神經(jīng)網(wǎng)絡(luò)[4]與傳統(tǒng)算法最大的不同在于它是通過(guò)從圖像的低層到高層逐步提取能代表人臉圖像的高級(jí)語(yǔ)義的結(jié)構(gòu)化特征,當(dāng)數(shù)據(jù)量足夠大時(shí),人臉識(shí)別效果比較理想。但是當(dāng)人臉數(shù)據(jù)量不足時(shí)人臉識(shí)別的效果并不是很好。僅用小樣本人臉數(shù)據(jù)集去訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)CNN(Convolutional Neural Network)時(shí),由于網(wǎng)絡(luò)所學(xué)習(xí)的參數(shù)數(shù)據(jù)不足使得CNN不能較好的收斂,導(dǎo)致人臉識(shí)別率不高[5]。
遷移學(xué)習(xí)是指將某個(gè)領(lǐng)域上學(xué)習(xí)的知識(shí)應(yīng)用到不同的但相關(guān)的領(lǐng)域中[6],是利用大樣本解決小樣本問(wèn)題的關(guān)鍵技術(shù)。在遷移過(guò)程中,不可避免源數(shù)據(jù)集和目標(biāo)數(shù)據(jù)集之間的差異,導(dǎo)致人臉識(shí)別率低。20世紀(jì)90年代,受限玻爾茲曼機(jī)[7]被Hinton和Sejnowski提出來(lái),其最大的優(yōu)點(diǎn)是擁有強(qiáng)大的無(wú)監(jiān)督學(xué)習(xí)能力,能夠從極大似然的角度快速學(xué)習(xí)輸入人臉的高階抽象特征。因此,筆者想通過(guò)利用受限玻爾茲曼機(jī)RBM(Restricted Boltzmann Machine)來(lái)解決人臉數(shù)據(jù)集間的差異性,并且將訓(xùn)練好的卷積層與降采樣層遷移過(guò)來(lái),用RBM代替CNN中的全連接層,從而構(gòu)成一個(gè)全新的網(wǎng)絡(luò)模型——TL-CNN-RBM模型。
圖1 TL-CNN-RBM模型流程圖
利用小樣本人臉數(shù)據(jù)去訓(xùn)練CNN模型時(shí),由于人臉的數(shù)據(jù)量較小且人臉數(shù)據(jù)集之間存在差異,導(dǎo)致直接提取的人臉特征識(shí)別率很低。為提高小樣本人臉識(shí)別性能,筆者提出遷移預(yù)訓(xùn)練的改進(jìn)CNN模型。在此基礎(chǔ)上,為了提高特征識(shí)別力,用RBM替換CNN網(wǎng)絡(luò)的全連接層,該層不僅全連接卷積后的所有人臉特征圖,還可以從特征圖中進(jìn)一步學(xué)習(xí)小樣本人臉特有的高階人臉特征,從而提取更多的人臉特征,提高識(shí)別率。其算法流程如圖1所示。
通過(guò)使用2個(gè)卷積層(C1、C2)和2個(gè)子采樣層(S1、S2)以及2個(gè)全連接層(F1、F2)的CNN網(wǎng)絡(luò)模型來(lái)處理100×100分辨率的人臉圖像。
輸入層的人臉圖像大小為 100 × 100,與 20 個(gè)大小為 5 × 5 的卷積核進(jìn)行卷積得到卷積層C1,從而得到20個(gè)人臉圖像的特征圖,每一個(gè)特征圖圖像的分辨率為(100-5+1) × (100-5+1) =96×96。
從卷積層C1得到大小為2×2的子采樣層S1,對(duì) C1 層中尺寸為96 ×96 的特征圖進(jìn)行二次采樣得到(96÷ 2) × (96 ÷ 2) =48×48大小的圖像。其中,S1 層包含20個(gè)人臉特征圖。
將S1層中48×48大小的圖像與50個(gè)5×5卷積核進(jìn)行卷積,得到卷積層C2。其所得到特征圖的大小為50個(gè)(48-5 +1) × (48-5 + 1) = 44×44的人臉特征圖。
對(duì) C2 層使用2×2的子區(qū)域來(lái)進(jìn)行采樣獲得S2層,每層包含50個(gè)人臉圖像,每個(gè)圖像的大小為(44 ÷2) × (44 ÷2) =22×22。最后通過(guò)全連接層F1鏈接得到一個(gè)24200維的的特征圖,將特征圖展開(kāi)成一列之后通過(guò)全連接層F2來(lái)實(shí)現(xiàn)人臉?lè)诸?lèi)。
網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 大樣本人臉識(shí)別的CNN網(wǎng)絡(luò)結(jié)構(gòu)
1.1.1 通過(guò)前向傳導(dǎo)學(xué)習(xí)網(wǎng)絡(luò)參數(shù),獲得從輸入層到輸出層網(wǎng)絡(luò)的激活函數(shù)值
輸入特征在每層中的神經(jīng)元公式計(jì)算如下:
T(l+1)=W(l+1)x(l)+b(l+1)
(1)
x(l+1)=d(T(l+1))
(2)
式中:W(l+1)是各個(gè)網(wǎng)絡(luò)層系數(shù)組成的矩陣;x(l)和x(l+1)分別是第l層和l+1層的向量輸出;b(l+1)是偏差向量,由第(l+1)層的偏差組成;d(·)為激活函數(shù)。
1.1.2 BP算法反向傳播調(diào)整人臉識(shí)別網(wǎng)絡(luò)的相關(guān)參數(shù)
對(duì)于含N個(gè)人臉的樣本集x={(x(1),y(1)),…,(x(N),y(N))},網(wǎng)絡(luò)輸出層誤差函數(shù)定義為:
(3)
式中:M表示M類(lèi)人臉;on表示輸入人臉樣本集x對(duì)應(yīng)的實(shí)際輸出。
(4)
(5)
式中:ρ為學(xué)習(xí)率;Eτ為當(dāng)前批次訓(xùn)練人臉樣本數(shù)目為τ的誤差。
使用BP算法[8]可以使網(wǎng)絡(luò)的相關(guān)參數(shù)更新的更快,減少時(shí)間復(fù)雜度,使網(wǎng)絡(luò)層的誤差函數(shù)更小。
將預(yù)訓(xùn)練好的CNN模型遷移到小樣本人臉數(shù)據(jù)集上,在此基礎(chǔ)上,利用RBM層和新的SoftMax層去替代預(yù)訓(xùn)練的CNN網(wǎng)絡(luò)的全連接層,卷積層和子采樣層保留不變。在子采樣層S2之后輸出50個(gè)22×22的二維特征圖,將50個(gè)特征圖合并輸入RBM層,R3層含50×484個(gè)顯性節(jié)點(diǎn)和3000個(gè)隱藏節(jié)點(diǎn),R4層含1000個(gè)隱藏節(jié)點(diǎn),將最后得到的1000維向量輸入SoftMax層中計(jì)算,找到概率最大所對(duì)應(yīng)的人臉。卷積人臉模型遷移與改進(jìn)的新網(wǎng)絡(luò)如圖3所示。
圖3 卷積人臉模型遷移與改進(jìn)的新網(wǎng)絡(luò)
1.3.1 小樣本人臉重訓(xùn)練RBM層
RBM網(wǎng)絡(luò)由若干個(gè)可視節(jié)點(diǎn)和隱藏節(jié)點(diǎn)所組成,對(duì)于?,i、j,vi,hj∈{0,1},vi、hj分別表示可視節(jié)點(diǎn)和隱藏節(jié)點(diǎn),其中0和1分別代表節(jié)點(diǎn)是否被激活。在RBM中,可視節(jié)點(diǎn)與隱藏節(jié)點(diǎn)的聯(lián)合能量定如下:
(6)
式中:θ=(wij,ai,bj);wij表示權(quán)重;ai、bj和n、m分別表示vi、hj的偏置值和節(jié)點(diǎn)個(gè)數(shù)。
聯(lián)合概率分布Pθ(v,h)為:
(7)
在RBM模型中,當(dāng)參數(shù)已經(jīng)確定時(shí),第j個(gè)隱藏節(jié)點(diǎn)的激活概率為:
(8)
第i個(gè)可視節(jié)點(diǎn)的激活概率可表示為:
(9)
各參數(shù)的迭代公式可表示為:
(10)
(11)
(12)
1.3.2 小樣本人臉模型中新網(wǎng)絡(luò)的自適應(yīng)
在實(shí)際試驗(yàn)中,由于方差損失函數(shù)[9]的權(quán)重更新過(guò)慢,使網(wǎng)絡(luò)不能很快的達(dá)到收斂。筆者采用交叉熵代價(jià)函數(shù)[10]來(lái)替代函數(shù)的更新,當(dāng)誤差小時(shí),網(wǎng)絡(luò)參數(shù)更新變慢。當(dāng)誤差過(guò)大時(shí)網(wǎng)絡(luò)參數(shù)更新加快;交叉熵代價(jià)函數(shù)定義為:
(13)
式中:N表示人臉訓(xùn)練樣本容量;y(i)表示第i組數(shù)據(jù)對(duì)應(yīng)的人臉類(lèi)別標(biāo)記。
在整個(gè)神經(jīng)網(wǎng)絡(luò)中,權(quán)重w和偏置b由式(14)和(15)決定:
(14)
(15)
然后利用式(4)和式(5)調(diào)整網(wǎng)絡(luò)各層的參數(shù)。
圖4 人臉識(shí)別軟件操作界面
圖4為采用TL-CNN-RBM模型算法所開(kāi)發(fā)的一款人臉識(shí)別應(yīng)用程序界面截圖。
該試驗(yàn)采用了實(shí)驗(yàn)室自建的人臉數(shù)據(jù)庫(kù)小樣本與中國(guó)人臉圖像數(shù)據(jù)庫(kù)CAS-PEAL。在CAS-PEAL庫(kù)中,包括1040人的30900幅人臉圖像。將CAS-PEAL數(shù)據(jù)庫(kù)中的圖像作為大樣本數(shù)據(jù)的預(yù)訓(xùn)練集,用實(shí)驗(yàn)室自建的人臉數(shù)據(jù)庫(kù)作為小樣本的人臉數(shù)據(jù)集來(lái)重新訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)模型,其人臉庫(kù)包含40人不同性別、不同年齡的中國(guó)人,選取人均30幅的人臉片段作為部分人臉庫(kù)數(shù)據(jù)。
表1 幾種不同方法的識(shí)別率
針對(duì)筆者所提出的TL-CNN網(wǎng)絡(luò)模型,用CAS-PEAL人臉數(shù)據(jù)庫(kù)進(jìn)行預(yù)訓(xùn)練、驗(yàn)證和測(cè)試,并與經(jīng)常使用于人臉識(shí)別的主要算法PCA[11]、PCA+LBP[12]、BP等進(jìn)行對(duì)比。試驗(yàn)采用CAS-PEAL中的740人的每人10張人臉圖像作為試驗(yàn)的訓(xùn)練集,為了測(cè)試筆者訓(xùn)練的模型,采用余下的全部數(shù)據(jù)集(300人),并且隨機(jī)選用每人10張不同的圖片,最終采用比率接近為7∶3(驗(yàn)證集∶測(cè)試集)來(lái)測(cè)試。幾種不同方法的識(shí)別率如表1所示。
由表1可以看出,TL-CNN模型的人臉識(shí)別率明顯高于其他傳統(tǒng)識(shí)別模型,PCA、LBP算法所提取的人臉特征并不是由訓(xùn)練自動(dòng)獲取,識(shí)別率沒(méi)有TL-CNN的識(shí)別率高;BP反饋算法利用了Sigmoid激活函數(shù)[13],當(dāng)輸入非常大或非常小的時(shí)候神經(jīng)元的梯度接近于0,不易更新權(quán)值而且在實(shí)際的人臉圖片訓(xùn)練中函數(shù)不容易收斂,導(dǎo)致在試驗(yàn)中的識(shí)別率最低;傳統(tǒng)的人臉識(shí)別模型算法只能提取人臉信號(hào)中有限的特征,而且可能提取的特征并不是人臉關(guān)鍵點(diǎn)的特征,因此其魯棒性很差,無(wú)法建立一個(gè)很好的人臉模型。試驗(yàn)結(jié)果表明,TL-CNN算法能夠更加精確提取關(guān)鍵點(diǎn)信息,保證了提取人臉特征的質(zhì)量,進(jìn)而能有效提高人臉識(shí)別率。
遷移學(xué)習(xí)放寬了機(jī)器學(xué)習(xí)的基本假設(shè),通過(guò)將某個(gè)領(lǐng)域或任務(wù)上學(xué)習(xí)到的知識(shí)或模型應(yīng)用到不同但相關(guān)的領(lǐng)域中,其在人臉識(shí)別中具有很好的運(yùn)用,將大數(shù)據(jù)人臉數(shù)據(jù)“遷移”到小樣本人臉數(shù)據(jù)領(lǐng)域,可以解決小樣本人臉數(shù)據(jù)稀缺等問(wèn)題。
筆者提出的小樣本人臉識(shí)別算法,先將CAS-PEAL人臉數(shù)據(jù)庫(kù)作為預(yù)訓(xùn)練集來(lái)訓(xùn)練CNN網(wǎng)絡(luò),預(yù)訓(xùn)練的樣本容量集約為30900。小樣本數(shù)據(jù)集采用實(shí)驗(yàn)室自采集的人臉數(shù)據(jù),包含40人的1200張(人均30張)人臉圖片。遷移模型后再?gòu)淖越ǖ娜四槑?kù)中選取30人,其中男女各15人,每人20張圖片組成一個(gè)數(shù)據(jù)。在訓(xùn)練的過(guò)程中選取每人14張圖片做訓(xùn)練集,余下的圖片做測(cè)試集。按以下4種方案做對(duì)比試驗(yàn)。
方案1:用上述小目標(biāo)人臉數(shù)據(jù)集分別去訓(xùn)練和測(cè)試常用于人臉識(shí)別的PCA、PCA-LBP、BP模型算法。
方案2:僅用小目標(biāo)人臉數(shù)據(jù)去訓(xùn)練傳統(tǒng)的CNN網(wǎng)絡(luò)模型算法。
方案3:用大樣本人臉數(shù)據(jù)CAS-PEAL預(yù)訓(xùn)練傳統(tǒng)CNN網(wǎng)絡(luò);然后將訓(xùn)練好的模型遷移到目標(biāo)集中,用小樣本人臉數(shù)據(jù)進(jìn)行訓(xùn)練和測(cè)試。
方案4:用大樣本人臉數(shù)據(jù)預(yù)訓(xùn)練CNN網(wǎng)絡(luò),然后遷移模型到小樣本集中,并且將全連接層替換為RBM,再用小樣本人臉數(shù)據(jù)進(jìn)行重訓(xùn)練和測(cè)試。
4種方案下6種算法識(shí)別率如圖5所示。試驗(yàn)結(jié)果表明,4種方案在相同的小樣本人臉數(shù)據(jù)訓(xùn)練樣本容量下,CNN網(wǎng)絡(luò)模型由于訓(xùn)練樣本參數(shù)嚴(yán)重不足,導(dǎo)致識(shí)別率較低,而經(jīng)過(guò)遷移學(xué)習(xí)改進(jìn)后,使用RBM和SoftMax替換CNN全連接層既可以全連接所有特征圖獲得豐富的不變性特征,還能充分無(wú)監(jiān)督參數(shù)訓(xùn)練,獲得目標(biāo)集本身的高階統(tǒng)計(jì)特征,提高了小數(shù)據(jù)集上CNN模型圖像分類(lèi)的準(zhǔn)確率。其中,TL-CNN-RBM模型在這幾種對(duì)比方案中的識(shí)別率最高。
采用上述30900張人臉圖像訓(xùn)練TL-CNN-RBM網(wǎng)絡(luò),比較在相同的訓(xùn)練集下網(wǎng)絡(luò)訓(xùn)練迭代次數(shù)對(duì)小樣本人臉識(shí)別率的影響,結(jié)果如圖6所示。由圖6可知,隨著試驗(yàn)迭代次數(shù)的逐漸增多,該模型的人臉識(shí)別率也呈現(xiàn)上升趨勢(shì);當(dāng)?shù)螖?shù)達(dá)到一定狀態(tài),網(wǎng)絡(luò)達(dá)到收斂,人臉識(shí)別率逐漸趨于平穩(wěn)。
將訓(xùn)練好的模型遷移到小樣本目標(biāo)集中, 測(cè)試TL-CNN-RBM網(wǎng)絡(luò)模型在不同訓(xùn)練樣本容量下的試驗(yàn)性能。在自建的40位人臉庫(kù)中隨機(jī)抽取30位人臉作為小樣本人臉數(shù)據(jù)集的訓(xùn)練集,平均每人分別使用5、10、15、20個(gè)人臉樣本圖,余下10人的人臉圖作為測(cè)試樣本(人均10個(gè)人臉圖),試驗(yàn)結(jié)果如圖7所示。
圖5 4種方案6種算法識(shí)別率比較構(gòu)
圖6 迭代次數(shù)對(duì)TL-CNN-RBM模型識(shí)別率的影響 圖7 TL-CNN-RBM在不同訓(xùn)練樣本容量的性能對(duì)比
試驗(yàn)結(jié)果表明,隨著測(cè)試樣本容量的逐漸增加,TL-CNN-RBM模型算法的誤識(shí)率與拒識(shí)率都呈現(xiàn)下降趨勢(shì),識(shí)別率呈現(xiàn)上升的趨勢(shì),最后趨向于平穩(wěn)。
提出了一種遷移模型下的小樣本人臉識(shí)別方法,用大樣本參數(shù)預(yù)訓(xùn)練CNN網(wǎng)絡(luò)模型,在遷移預(yù)訓(xùn)練模型時(shí)將全連接成改為RBM。RBM不僅全連接卷積后的所有特征圖,而且還能進(jìn)一步提取人臉圖像的高階抽象特征,消除了數(shù)據(jù)集之間的差異性,提高了人臉識(shí)別率。在此基礎(chǔ)上,還通過(guò)BP算法調(diào)整網(wǎng)絡(luò)參數(shù),使新的網(wǎng)絡(luò)模型更適用于小樣本人臉目標(biāo)集,進(jìn)一步提高人臉識(shí)別率,解決了小樣本人臉識(shí)別率低的問(wèn)題。與傳統(tǒng)的CNN模型相比,TL-CNN-RBM模型提高了人臉識(shí)別率。