黃振文,謝凱
(長江大學電子信息學院,湖北 荊州 434023)
文暢
(長江大學計算機科學學院,湖北 荊州 434023)
盛冠群,文方青
(長江大學電子信息學院,湖北 荊州 434023)
人臉識別[1]是計機利用人臉圖像進行分析處理和比較的一種“智能技術”[2]。近些年隨著硬件設備的快速發展,深度學習[3]的算法不斷被完善,相對于傳統的人臉識別算法,卷積神經網絡的算法在人臉識別中也取得了極大的突破。卷積神經網絡[4]與傳統算法最大的不同在于它是通過從圖像的低層到高層逐步提取能代表人臉圖像的高級語義的結構化特征,當數據量足夠大時,人臉識別效果比較理想。但是當人臉數據量不足時人臉識別的效果并不是很好。僅用小樣本人臉數據集去訓練卷積神經網絡CNN(Convolutional Neural Network)時,由于網絡所學習的參數數據不足使得CNN不能較好的收斂,導致人臉識別率不高[5]。
遷移學習是指將某個領域上學習的知識應用到不同的但相關的領域中[6],是利用大樣本解決小樣本問題的關鍵技術。在遷移過程中,不可避免源數據集和目標數據集之間的差異,導致人臉識別率低。20世紀90年代,受限玻爾茲曼機[7]被Hinton和Sejnowski提出來,其最大的優點是擁有強大的無監督學習能力,能夠從極大似然的角度快速學習輸入人臉的高階抽象特征。因此,筆者想通過利用受限玻爾茲曼機RBM(Restricted Boltzmann Machine)來解決人臉數據集間的差異性,并且將訓練好的卷積層與降采樣層遷移過來,用RBM代替CNN中的全連接層,從而構成一個全新的網絡模型——TL-CNN-RBM模型。

圖1 TL-CNN-RBM模型流程圖
利用小樣本人臉數據去訓練CNN模型時,由于人臉的數據量較小且人臉數據集之間存在差異,導致直接提取的人臉特征識別率很低。為提高小樣本人臉識別性能,筆者提出遷移預訓練的改進CNN模型。在此基礎上,為了提高特征識別力,用RBM替換CNN網絡的全連接層,該層不僅全連接卷積后的所有人臉特征圖,還可以從特征圖中進一步學習小樣本人臉特有的高階人臉特征,從而提取更多的人臉特征,提高識別率。其算法流程如圖1所示。
通過使用2個卷積層(C1、C2)和2個子采樣層(S1、S2)以及2個全連接層(F1、F2)的CNN網絡模型來處理100×100分辨率的人臉圖像。
輸入層的人臉圖像大小為 100 × 100,與 20 個大小為 5 × 5 的卷積核進行卷積得到卷積層C1,從而得到20個人臉圖像的特征圖,每一個特征圖圖像的分辨率為(100-5+1) × (100-5+1) =96×96。
從卷積層C1得到大小為2×2的子采樣層S1,對 C1 層中尺寸為96 ×96 的特征圖進行二次采樣得到(96÷ 2) × (96 ÷ 2) =48×48大小的圖像。其中,S1 層包含20個人臉特征圖。
將S1層中48×48大小的圖像與50個5×5卷積核進行卷積,得到卷積層C2。其所得到特征圖的大小為50個(48-5 +1) × (48-5 + 1) = 44×44的人臉特征圖。
對 C2 層使用2×2的子區域來進行采樣獲得S2層,每層包含50個人臉圖像,每個圖像的大小為(44 ÷2) × (44 ÷2) =22×22。最后通過全連接層F1鏈接得到一個24200維的的特征圖,將特征圖展開成一列之后通過全連接層F2來實現人臉分類。
網絡結構如圖2所示。

圖2 大樣本人臉識別的CNN網絡結構
1.1.1 通過前向傳導學習網絡參數,獲得從輸入層到輸出層網絡的激活函數值
輸入特征在每層中的神經元公式計算如下:
T(l+1)=W(l+1)x(l)+b(l+1)
(1)
x(l+1)=d(T(l+1))
(2)
式中:W(l+1)是各個網絡層系數組成的矩陣;x(l)和x(l+1)分別是第l層和l+1層的向量輸出;b(l+1)是偏差向量,由第(l+1)層的偏差組成;d(·)為激活函數。
1.1.2 BP算法反向傳播調整人臉識別網絡的相關參數
對于含N個人臉的樣本集x={(x(1),y(1)),…,(x(N),y(N))},網絡輸出層誤差函數定義為:
(3)
式中:M表示M類人臉;on表示輸入人臉樣本集x對應的實際輸出。

(4)
(5)
式中:ρ為學習率;Eτ為當前批次訓練人臉樣本數目為τ的誤差。
使用BP算法[8]可以使網絡的相關參數更新的更快,減少時間復雜度,使網絡層的誤差函數更小。
將預訓練好的CNN模型遷移到小樣本人臉數據集上,在此基礎上,利用RBM層和新的SoftMax層去替代預訓練的CNN網絡的全連接層,卷積層和子采樣層保留不變。在子采樣層S2之后輸出50個22×22的二維特征圖,將50個特征圖合并輸入RBM層,R3層含50×484個顯性節點和3000個隱藏節點,R4層含1000個隱藏節點,將最后得到的1000維向量輸入SoftMax層中計算,找到概率最大所對應的人臉。卷積人臉模型遷移與改進的新網絡如圖3所示。

圖3 卷積人臉模型遷移與改進的新網絡
1.3.1 小樣本人臉重訓練RBM層
RBM網絡由若干個可視節點和隱藏節點所組成,對于?,i、j,vi,hj∈{0,1},vi、hj分別表示可視節點和隱藏節點,其中0和1分別代表節點是否被激活。在RBM中,可視節點與隱藏節點的聯合能量定如下:
(6)
式中:θ=(wij,ai,bj);wij表示權重;ai、bj和n、m分別表示vi、hj的偏置值和節點個數。
聯合概率分布Pθ(v,h)為:
(7)

在RBM模型中,當參數已經確定時,第j個隱藏節點的激活概率為:
(8)
第i個可視節點的激活概率可表示為:
(9)
各參數的迭代公式可表示為:
(10)
(11)
(12)

1.3.2 小樣本人臉模型中新網絡的自適應
在實際試驗中,由于方差損失函數[9]的權重更新過慢,使網絡不能很快的達到收斂。筆者采用交叉熵代價函數[10]來替代函數的更新,當誤差小時,網絡參數更新變慢。當誤差過大時網絡參數更新加快;交叉熵代價函數定義為:
(13)
式中:N表示人臉訓練樣本容量;y(i)表示第i組數據對應的人臉類別標記。
在整個神經網絡中,權重w和偏置b由式(14)和(15)決定:
(14)
(15)
然后利用式(4)和式(5)調整網絡各層的參數。

圖4 人臉識別軟件操作界面
圖4為采用TL-CNN-RBM模型算法所開發的一款人臉識別應用程序界面截圖。
該試驗采用了實驗室自建的人臉數據庫小樣本與中國人臉圖像數據庫CAS-PEAL。在CAS-PEAL庫中,包括1040人的30900幅人臉圖像。將CAS-PEAL數據庫中的圖像作為大樣本數據的預訓練集,用實驗室自建的人臉數據庫作為小樣本的人臉數據集來重新訓練卷積神經網絡模型,其人臉庫包含40人不同性別、不同年齡的中國人,選取人均30幅的人臉片段作為部分人臉庫數據。

表1 幾種不同方法的識別率
針對筆者所提出的TL-CNN網絡模型,用CAS-PEAL人臉數據庫進行預訓練、驗證和測試,并與經常使用于人臉識別的主要算法PCA[11]、PCA+LBP[12]、BP等進行對比。試驗采用CAS-PEAL中的740人的每人10張人臉圖像作為試驗的訓練集,為了測試筆者訓練的模型,采用余下的全部數據集(300人),并且隨機選用每人10張不同的圖片,最終采用比率接近為7∶3(驗證集∶測試集)來測試。幾種不同方法的識別率如表1所示。
由表1可以看出,TL-CNN模型的人臉識別率明顯高于其他傳統識別模型,PCA、LBP算法所提取的人臉特征并不是由訓練自動獲取,識別率沒有TL-CNN的識別率高;BP反饋算法利用了Sigmoid激活函數[13],當輸入非常大或非常小的時候神經元的梯度接近于0,不易更新權值而且在實際的人臉圖片訓練中函數不容易收斂,導致在試驗中的識別率最低;傳統的人臉識別模型算法只能提取人臉信號中有限的特征,而且可能提取的特征并不是人臉關鍵點的特征,因此其魯棒性很差,無法建立一個很好的人臉模型。試驗結果表明,TL-CNN算法能夠更加精確提取關鍵點信息,保證了提取人臉特征的質量,進而能有效提高人臉識別率。
遷移學習放寬了機器學習的基本假設,通過將某個領域或任務上學習到的知識或模型應用到不同但相關的領域中,其在人臉識別中具有很好的運用,將大數據人臉數據“遷移”到小樣本人臉數據領域,可以解決小樣本人臉數據稀缺等問題。
筆者提出的小樣本人臉識別算法,先將CAS-PEAL人臉數據庫作為預訓練集來訓練CNN網絡,預訓練的樣本容量集約為30900。小樣本數據集采用實驗室自采集的人臉數據,包含40人的1200張(人均30張)人臉圖片。遷移模型后再從自建的人臉庫中選取30人,其中男女各15人,每人20張圖片組成一個數據。在訓練的過程中選取每人14張圖片做訓練集,余下的圖片做測試集。按以下4種方案做對比試驗。
方案1:用上述小目標人臉數據集分別去訓練和測試常用于人臉識別的PCA、PCA-LBP、BP模型算法。
方案2:僅用小目標人臉數據去訓練傳統的CNN網絡模型算法。
方案3:用大樣本人臉數據CAS-PEAL預訓練傳統CNN網絡;然后將訓練好的模型遷移到目標集中,用小樣本人臉數據進行訓練和測試。
方案4:用大樣本人臉數據預訓練CNN網絡,然后遷移模型到小樣本集中,并且將全連接層替換為RBM,再用小樣本人臉數據進行重訓練和測試。
4種方案下6種算法識別率如圖5所示。試驗結果表明,4種方案在相同的小樣本人臉數據訓練樣本容量下,CNN網絡模型由于訓練樣本參數嚴重不足,導致識別率較低,而經過遷移學習改進后,使用RBM和SoftMax替換CNN全連接層既可以全連接所有特征圖獲得豐富的不變性特征,還能充分無監督參數訓練,獲得目標集本身的高階統計特征,提高了小數據集上CNN模型圖像分類的準確率。其中,TL-CNN-RBM模型在這幾種對比方案中的識別率最高。
采用上述30900張人臉圖像訓練TL-CNN-RBM網絡,比較在相同的訓練集下網絡訓練迭代次數對小樣本人臉識別率的影響,結果如圖6所示。由圖6可知,隨著試驗迭代次數的逐漸增多,該模型的人臉識別率也呈現上升趨勢;當迭代次數達到一定狀態,網絡達到收斂,人臉識別率逐漸趨于平穩。
將訓練好的模型遷移到小樣本目標集中, 測試TL-CNN-RBM網絡模型在不同訓練樣本容量下的試驗性能。在自建的40位人臉庫中隨機抽取30位人臉作為小樣本人臉數據集的訓練集,平均每人分別使用5、10、15、20個人臉樣本圖,余下10人的人臉圖作為測試樣本(人均10個人臉圖),試驗結果如圖7所示。

圖5 4種方案6種算法識別率比較構

圖6 迭代次數對TL-CNN-RBM模型識別率的影響 圖7 TL-CNN-RBM在不同訓練樣本容量的性能對比
試驗結果表明,隨著測試樣本容量的逐漸增加,TL-CNN-RBM模型算法的誤識率與拒識率都呈現下降趨勢,識別率呈現上升的趨勢,最后趨向于平穩。
提出了一種遷移模型下的小樣本人臉識別方法,用大樣本參數預訓練CNN網絡模型,在遷移預訓練模型時將全連接成改為RBM。RBM不僅全連接卷積后的所有特征圖,而且還能進一步提取人臉圖像的高階抽象特征,消除了數據集之間的差異性,提高了人臉識別率。在此基礎上,還通過BP算法調整網絡參數,使新的網絡模型更適用于小樣本人臉目標集,進一步提高人臉識別率,解決了小樣本人臉識別率低的問題。與傳統的CNN模型相比,TL-CNN-RBM模型提高了人臉識別率。