周鵬
摘 要:人臉自動(dòng)識(shí)別是圖像識(shí)別[1]領(lǐng)域的一個(gè)研究熱點(diǎn),有著廣泛的應(yīng)用前景。對(duì)于靜態(tài)人臉識(shí)別問題,BP神經(jīng)網(wǎng)絡(luò)方法有較強(qiáng)的適應(yīng)性和易于實(shí)現(xiàn)等優(yōu)點(diǎn)。但采用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行人臉識(shí)別也存在學(xué)習(xí)時(shí)間長(zhǎng),識(shí)別率不高等缺點(diǎn)。本文根據(jù)BP神經(jīng)網(wǎng)絡(luò)的基本原理,自行設(shè)計(jì)了一個(gè)簡(jiǎn)單且易于實(shí)現(xiàn)的BP神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)在訓(xùn)練樣本數(shù)較為充足并且學(xué)習(xí)較為充分的條件下能獲得較好的人臉識(shí)別效果。并在此基礎(chǔ)上,通過對(duì)原樣本數(shù)據(jù)進(jìn)行NMF特征提取操作,再結(jié)合該BP網(wǎng)絡(luò)用于人臉識(shí)別。該網(wǎng)絡(luò)克服了單一BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)時(shí)間長(zhǎng)、識(shí)別效率低的缺點(diǎn),獲得了更加有效的識(shí)別效果。
關(guān)鍵詞:BP神經(jīng)網(wǎng)絡(luò);NMF;人臉識(shí)別
一、BP神經(jīng)網(wǎng)絡(luò)
BP(Back Propagation)是一種按誤差反向傳播算法訓(xùn)練的多層前饋網(wǎng)絡(luò)。它的學(xué)習(xí)規(guī)則是使用梯度下降法,通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。BP神經(jīng)網(wǎng)絡(luò)模型拓?fù)浣Y(jié)構(gòu)包括輸入層、隱含層和輸出層。本文BP神經(jīng)網(wǎng)路根據(jù)樣本數(shù)據(jù)維數(shù)大小,預(yù)先隨機(jī)設(shè)定各網(wǎng)絡(luò)層權(quán)值、閾值向量。根據(jù)輸入的樣本數(shù)據(jù),計(jì)算輸出層和隱含層的誤差項(xiàng),再根據(jù)誤差項(xiàng)反向調(diào)節(jié)各層的網(wǎng)絡(luò)權(quán)值和閾值。根據(jù)設(shè)定的迭代運(yùn)算次數(shù)終止BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)。本文自行設(shè)計(jì)的BP神經(jīng)網(wǎng)絡(luò)也共分為3層,并根據(jù)單個(gè)樣本數(shù)據(jù)的大小,設(shè)定BP網(wǎng)絡(luò)輸入層節(jié)點(diǎn)數(shù)。由于該BP網(wǎng)絡(luò)只被用于判斷4個(gè)不同的人臉,所以該網(wǎng)絡(luò)的輸出層節(jié)點(diǎn)數(shù)設(shè)為4個(gè)。
下面具體介紹該BP網(wǎng)絡(luò)識(shí)別人臉的實(shí)現(xiàn)過程。本試驗(yàn)使用的數(shù)據(jù)是來自CMU_PIE人臉數(shù)據(jù)庫,取其中4個(gè)不同的人,每個(gè)人有170幅神情、光照、拍照角度等不同的人臉圖像。將這不同的170幅人臉樣本分成訓(xùn)練樣本和測(cè)試樣本,訓(xùn)練樣本數(shù)和測(cè)試樣本數(shù)均比較充裕。而BP神經(jīng)網(wǎng)絡(luò)正需要較為充足的樣本數(shù)據(jù)進(jìn)行訓(xùn)練才會(huì)獲得不錯(cuò)的學(xué)習(xí)效果,同時(shí)也只有對(duì)較多的測(cè)試樣本進(jìn)行識(shí)別,這種識(shí)別結(jié)果才具有一定的說服力。其次是要對(duì)試驗(yàn)數(shù)據(jù)進(jìn)行預(yù)處理,將不同的四個(gè)人臉圖像添加標(biāo)簽,即給四個(gè)不同的人取名,方便后面的學(xué)習(xí)和最后的識(shí)別。取每人170幅人臉圖像中的90幅作為訓(xùn)練數(shù)據(jù),剩下的80幅作為測(cè)試數(shù)據(jù)。需要重點(diǎn)說明的是如何將這360個(gè)人臉矩陣輸入到BP網(wǎng)絡(luò)并依此迭代學(xué)習(xí)。首先我們要將所有樣本數(shù)據(jù)按順序讀入到一個(gè)矩陣中,將每一個(gè)樣本矩陣首尾相連,變成新矩陣B中的一行。經(jīng)過這樣的處理,則B矩陣中的每一行數(shù)據(jù)就代表一個(gè)原二維圖像矩陣數(shù)據(jù)。然后選擇矩陣B中前360行數(shù)據(jù)隨機(jī)帶入BP網(wǎng)絡(luò)進(jìn)行學(xué)習(xí),360個(gè)數(shù)據(jù)完全學(xué)習(xí)完一次,即是BP網(wǎng)絡(luò)迭代學(xué)習(xí)了1次。訓(xùn)練完之后可以使用該網(wǎng)絡(luò)判別B矩陣的后320幅數(shù)據(jù)(測(cè)試樣本)。根據(jù)一定的判別規(guī)則和事先的人臉命名來判斷識(shí)別的正確與否,最后統(tǒng)計(jì)識(shí)別正確的人臉個(gè)數(shù),得出網(wǎng)絡(luò)的正確識(shí)別率。
然而當(dāng)樣本數(shù)據(jù)維數(shù)較大時(shí),直接使用BP網(wǎng)絡(luò)對(duì)原數(shù)據(jù)訓(xùn)練測(cè)試時(shí),使得運(yùn)算量巨大,BP網(wǎng)絡(luò)學(xué)習(xí)時(shí)間過長(zhǎng),識(shí)別效果也不能令人滿意。所以我們?cè)谑褂肂P網(wǎng)絡(luò)之前,先對(duì)原數(shù)據(jù)進(jìn)行特征提取,提取得到較好的少量數(shù)據(jù)用于BP網(wǎng)絡(luò)計(jì)算,不僅減少了訓(xùn)練時(shí)間,還提高了BP網(wǎng)絡(luò)的識(shí)別率。特征提取要達(dá)到的目的就是通過映射的方法,將高維空間中的數(shù)據(jù)用更易于分類的低維空間中的數(shù)據(jù)來表示。
二、NMF(Non-negative Matrix Factorization)
非負(fù)矩陣分解(NMF)[2][3]是在矩陣中所有元素均為非負(fù)數(shù)約束條件之下的矩陣分解方法。經(jīng)典的NMF算法是將一個(gè)大小為m·n的原樣本矩陣V分解成一個(gè)大小為m·r的非負(fù)矩陣W和另一個(gè)大小為r·n的非負(fù)矩陣H的乘積,使得Vm·n·Wm·rHr·n。當(dāng)r滿足一定條件,可以使得分解后的矩陣小于原樣本大小,從而達(dá)到降維的目的。最后再使用分解后得到的系數(shù)矩陣H來代替原矩陣V,帶入BP網(wǎng)絡(luò)計(jì)算就可以了。這里需要注意,兩個(gè)非負(fù)矩陣Wm·r和Hr·n初始值由計(jì)算機(jī)隨機(jī)賦值,分解降維后的特征數(shù)r和分解的乘性迭代次數(shù)n需要根據(jù)實(shí)驗(yàn)效果自行設(shè)定。一般來說迭代次數(shù)不需要設(shè)定太大,設(shè)定的值越大,迭代運(yùn)算的時(shí)間則越長(zhǎng)。同時(shí)降維后的特征數(shù)r也不應(yīng)選擇太接近原樣本維數(shù),否則不能達(dá)到降維目的。
三、實(shí)驗(yàn)結(jié)果與分析
本文使用的BP神經(jīng)網(wǎng)絡(luò),迭代學(xué)習(xí)次數(shù)設(shè)為10,學(xué)習(xí)速率設(shè)為0.1。取680幅原樣本中360幅作為訓(xùn)練樣本,其余作為測(cè)試樣本。這里還需注意一點(diǎn),由于BP網(wǎng)絡(luò)權(quán)值、閾值是計(jì)算機(jī)隨機(jī)選取的,使得每次實(shí)驗(yàn)結(jié)果呈現(xiàn)出一定隨機(jī)性。為了便于更好地反應(yīng)網(wǎng)絡(luò)識(shí)別效果的好壞,我們將每個(gè)網(wǎng)絡(luò)各實(shí)驗(yàn)10次,并計(jì)算10次結(jié)果的平均值。通過10次識(shí)別率的平均值大小和10次中的最高、最低識(shí)別率來衡量網(wǎng)絡(luò)的識(shí)別效果。單一的BP網(wǎng)絡(luò)和NMF+BP網(wǎng)絡(luò)10次識(shí)別結(jié)果如下:
從實(shí)驗(yàn)結(jié)果可以看出,使用NMF方法預(yù)處理后,使得BP網(wǎng)絡(luò)的正確識(shí)別率更高。當(dāng)NMF分解迭代次數(shù)選擇40,維數(shù)r選擇173時(shí),NMF+BP網(wǎng)絡(luò)識(shí)別效果相對(duì)最好,網(wǎng)絡(luò)平均正確識(shí)別率高達(dá)98.7%,最小一次識(shí)別率為96.6%,最高識(shí)別率達(dá)到100%。而單獨(dú)使用BP網(wǎng)絡(luò)的平均識(shí)別率只有93.3%,且第九次的正確識(shí)別率只有75.9%。由此可見,在進(jìn)行BP網(wǎng)絡(luò)訓(xùn)練識(shí)別前,先使用NMF方法處理原樣本數(shù)據(jù),將原樣本大小壓縮至173,這樣既簡(jiǎn)化了計(jì)算,也簡(jiǎn)化了BP網(wǎng)絡(luò)結(jié)構(gòu)。同時(shí)還提高了學(xué)習(xí)速率和平均正確識(shí)別率,提升了網(wǎng)絡(luò)的整體穩(wěn)定性。
四、結(jié)束語
基于NMF和BP神經(jīng)網(wǎng)絡(luò)的人臉識(shí)別方法,相比較于單獨(dú)的BP網(wǎng)絡(luò)人臉識(shí)別方法,識(shí)別效果得到了較大提高。然而NMF分解算法的迭代次數(shù)和提取特征數(shù)的選取仍然是經(jīng)過大量的組合選取實(shí)驗(yàn)得來的,缺乏科學(xué)性的選擇方法。下一步研究應(yīng)是以如何科學(xué)地選擇提取特征數(shù)和分解迭代次數(shù)為目標(biāo),以獲得更加簡(jiǎn)單高效的NMF+BP網(wǎng)絡(luò)用于人臉識(shí)別。(作者單位:河南財(cái)經(jīng)政法大學(xué))
參考文獻(xiàn):
[1] 許錄平. 數(shù)字圖像處理[M]. 北京: 科學(xué)出版社. 2007.
[2] Lee D D,Seung H S. Learning the parts of objects by non-negative matrix factorization. Nature,1999,401(6755):788–791.
[3] 劉維湘,鄭南寧,游屈波. 非負(fù)矩陣分解及其在模式識(shí)別中的應(yīng)用[J].科學(xué)通報(bào),2006.51(3):241-250.