李森林,石元泉,黃隆華
(懷化學(xué)院計算機技術(shù)與工程學(xué)院,湖南懷化418008)
一種基于SAE和BP網(wǎng)絡(luò)相結(jié)合的人臉識別模型
李森林,石元泉,黃隆華
(懷化學(xué)院計算機技術(shù)與工程學(xué)院,湖南懷化418008)
基于淺層BP網(wǎng)絡(luò)的模式識別在諸多領(lǐng)域有著廣泛的應(yīng)用,但對于稀疏高維度的數(shù)據(jù),在網(wǎng)絡(luò)模型訓(xùn)練時計算量大、參數(shù)繁多、訓(xùn)練慢、準確率低.提出了一種基于稀疏自動編碼器(Sparse auto-Encoder,SAE)和淺層BP網(wǎng)絡(luò)相結(jié)合的人臉識別模型.在深度SAE模型中,通過設(shè)置隱藏節(jié)點數(shù)少于輸入輸出節(jié)點數(shù)方法,自動學(xué)習(xí)樣本的多種特征表示,來實現(xiàn)數(shù)據(jù)的降維和去稀疏性,將該方法產(chǎn)生的特征表示作為輸入新樣本數(shù)據(jù),用于BP網(wǎng)絡(luò)模型進行圖像識別.通過人臉識別實驗表明,第一通過SAE模型得到的特征表示進行人臉識別是可行的;第二SAE模型獲得的多種表示分別進行人臉識別,并非第j層表示比第i層表示(j>i)效果一定好;第三該方法比單純淺層BP網(wǎng)絡(luò)進行人臉識別在效果上有一定程度的改善和提高.
稀疏自動編碼器;神經(jīng)網(wǎng)絡(luò);人臉識別;高維度數(shù)據(jù);維度約減
淺層BP網(wǎng)絡(luò)在模式識別上的應(yīng)用,經(jīng)過該領(lǐng)域研究人員多年努力探索,取得了積極的成果.1957年,周紹康提出統(tǒng)計決策理論方法求解模式識別,促進了模式識別研究工作的發(fā)展.80年代,荷甫菲爾德發(fā)表的兩篇重要論文,推動了神經(jīng)網(wǎng)絡(luò)在模式識別的研究工作.因為人工神經(jīng)網(wǎng)絡(luò)方法具有較強的解決復(fù)雜非線性模式識別的能力,因此廣泛得到人們的重視[1].雖然人工神經(jīng)網(wǎng)絡(luò)的自學(xué)習(xí)功能非常強大,可以通過反復(fù)學(xué)習(xí)的過程獲得對數(shù)據(jù)背后規(guī)則的隱性表達,在模式識別上具有一定的優(yōu)勢;但對于具有稀疏性、多維度數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò),在模型訓(xùn)練時由于參數(shù)繁多,訓(xùn)練慢、準確率差,實現(xiàn)也比較困難.自2006年,加拿大多倫多大學(xué)教授、機器學(xué)習(xí)領(lǐng)域的泰斗GeoffreyHinton和他的學(xué)生在《科學(xué)》上發(fā)表了一篇文章,開啟了深度學(xué)習(xí)在學(xué)術(shù)界研究熱潮,作為深度模型之一的稀疏自動編碼器利用人工神經(jīng)網(wǎng)絡(luò)的特點,能夠自動盡可能的學(xué)習(xí)復(fù)現(xiàn)數(shù)據(jù)的多種表示[1].稀疏自動編碼器(Sparse auto-Encoder,SAE)模型是一種深度無監(jiān)督特征學(xué)習(xí)算法,能夠根據(jù)輸入等于輸出重構(gòu)輸入數(shù)據(jù)特征,在圖像識別、語音識別、自然語言處理(NLP)等方面表現(xiàn)出較好的優(yōu)勢[1-3],近幾年來受到學(xué)術(shù)界和工業(yè)界的高度重視.以多倫多大學(xué)Hinton教授和斯坦福大學(xué)AndrewNG副教授等人為代表的領(lǐng)軍人物,對多層神經(jīng)網(wǎng)絡(luò)方面的理論和應(yīng)用都進行了艱苦探索,開啟了對深度網(wǎng)絡(luò)重新認識和重點研究.目前Google公司、微軟公司和百度公司等都成立了自己的深度網(wǎng)絡(luò)學(xué)習(xí)研究院,并獲得了巨大成功.近幾年來,SAE在無監(jiān)督數(shù)據(jù)特征自動提取上獲得了豐碩的成果.文獻[3]從手機和汽車領(lǐng)域產(chǎn)生的語料庫,通過SAE模型自動學(xué)習(xí)其詞向量,并完成語句識別.文獻[4]中Glorot等人在自動編碼器算法的基礎(chǔ)上添加糾正激活函數(shù),實驗表明效果顯著.文獻[5]在基于Auto Encoder的智能監(jiān)控指紋識別系統(tǒng)中通過自動編碼器獲得網(wǎng)絡(luò)權(quán)值等參數(shù)用于指紋圖像識別文獻.文獻[6]將自動編碼器算法運用到中文詞性標注的文本分類中,獲得了一定的效果.文獻[7]將堆疊SAE應(yīng)用于數(shù)字圖像處理,實現(xiàn)了數(shù)據(jù)特征降維,并提高了分類精度.由此,通過深度SAE模型能較好地提取數(shù)據(jù)間連接的隱含特征,并利用這些特征來解決模式識別與數(shù)據(jù)挖掘問題.為此我們提出了一種稀疏自動編碼器和淺層BP網(wǎng)絡(luò)相結(jié)合的人臉識別模型.首先通過深度SAE模型自動學(xué)習(xí)得到原始樣本降維后的多種表示.將該方法產(chǎn)生的特征表示作為輸入樣本,通過淺層BP神經(jīng)網(wǎng)絡(luò)進行模型訓(xùn)練和驗證.通過人臉識別實驗表明,SAE和淺層BP網(wǎng)絡(luò)相結(jié)合的識別模型,效果上有一定提高.
2.1 自動編碼器模型
自動編碼器是使用了反向傳播梯度下降算法的人工神經(jīng)網(wǎng)絡(luò)模型,由兩個主要部分組成,即編碼器網(wǎng)絡(luò)和譯碼器網(wǎng)絡(luò).通過讓目標值等于輸入值,訓(xùn)練調(diào)整網(wǎng)絡(luò)權(quán)重參數(shù)直至收斂.每一層的重新編碼就是輸入數(shù)據(jù)新的特征表示[2].編碼器網(wǎng)絡(luò)在訓(xùn)練和部署的時候被使用,而譯碼器網(wǎng)絡(luò)只是在訓(xùn)練的時候使用.
一般步驟如下:
(1)輸入的數(shù)據(jù)為無標簽數(shù)據(jù),通過輸入到一個自編碼器進行重新編碼,再通過解碼器完成對編碼表示的解碼.解碼后的數(shù)據(jù)信息和開始時的輸入信號構(gòu)成誤差不符合設(shè)定的標準時,通過隨機梯度下降算法調(diào)整優(yōu)化自編碼器模型的節(jié)點權(quán)重和偏置,直至達到重構(gòu)誤差最小,這樣獲得的編碼就是輸入數(shù)據(jù)信號的一個特征表示,如圖1所示.
圖1 自動編碼實現(xiàn)過程
(2)通過自編碼器產(chǎn)生的特征表示再作為下一層輸入,按步驟(1)訓(xùn)練.得到第二層新的數(shù)據(jù)表示,SAE多層網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示.
圖2 自編碼多層網(wǎng)絡(luò)
2.2 BP神經(jīng)網(wǎng)絡(luò)
BP(Back Propagation)是一種基于梯度下降的反饋算法,網(wǎng)絡(luò)模型通過逆向傳播誤差來調(diào)節(jié)各層權(quán)值和偏置,直至滿足條件為止.該網(wǎng)絡(luò)模型能學(xué)習(xí)和存貯輸入/輸出模式的非線性映射關(guān)系,是廣泛應(yīng)用于模式識別算法之一.淺層BP網(wǎng)絡(luò)模型結(jié)構(gòu)一般分輸入層(input layer)、隱含層(hidden layer)和輸出層(output layer)共三層,隱層和輸出層具有閾值,網(wǎng)絡(luò)各層節(jié)點間的連接具有權(quán)值.各層根據(jù)輸入、權(quán)重和激勵函數(shù)計算輸出,最后根據(jù)輸出值與期望值的誤差,據(jù)此進行反向傳播訓(xùn)練模型,達到可以接受的范圍之內(nèi),調(diào)整權(quán)重的算法為一般梯度下降算法.BP神經(jīng)網(wǎng)絡(luò)隱藏層和輸出層節(jié)點的輸入依賴于前一層節(jié)點的輸出.
因為BP算法的非凸性,導(dǎo)致神經(jīng)網(wǎng)絡(luò)易陷入局部極小值、收斂速度慢缺點,實驗中引入了前人提出的逐步搜索法選擇初始權(quán)值,用附加動量項和動態(tài)變步長方法修改權(quán)值.
圖3 人臉識別系統(tǒng)
3.1 總體思路
稀疏自動編碼器通過輸出約等于輸入的BP網(wǎng)絡(luò)模型,實現(xiàn)對高維空間中的稀疏向量轉(zhuǎn)換為低維空間的向量,并且保留了原始數(shù)據(jù)的本質(zhì)特征并實現(xiàn)了去噪和降維的效果,為BP網(wǎng)絡(luò)實現(xiàn)有監(jiān)督學(xué)習(xí)提供了保證[3].本文運用單層和多層SAE方法對輸入數(shù)據(jù)進行特征提取,將提取出的特征再輸入到BP神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練和識別.人臉識別系統(tǒng)框架如圖3所示.
系統(tǒng)人臉識別的具體步驟為:
(1)預(yù)處理[4]:預(yù)處理過程一般包括二值化、噪聲點去除、數(shù)字特征分離、圖像平滑、歸一化處理和細化等過程.在該識別系統(tǒng)的設(shè)計中,預(yù)處理由二值化(binarization)、歸一化(normalization)和平滑(smooth)3大過程組成.首先對人臉圖像進行二值化處理,并進行數(shù)據(jù)歸一化,以消除各數(shù)字在位置和大小上的差異,從而提高圖像識別的準確率.得到歸一化后的人臉圖像矩陣.
(2)自編碼器自動學(xué)習(xí)特征:特征提取方法的選擇是影響識別率的一個十分重要的因素.必須指出的是,對于不同的識別問題和不同的樣本數(shù)據(jù),使用不同的特征提取方法的適應(yīng)性差別很大.在一定意義上,特征提取和特征選擇的主要目的都是要達到特征降維.特征提取就是要通過某種變換的方法重新組合原始高維特征,獲得一組較為低維的新特征,而特征選擇是根據(jù)某種評價準則或根據(jù)專家的經(jīng)驗知識來挑選出那些對分類最具影響力的特征,并生成新的較易處理的特征.由于人臉圖像數(shù)據(jù)特征維度較高,數(shù)據(jù)量較大,人工提取特征比較困難,本文利用單層Sparse Auto-Encoder方法自動學(xué)習(xí)每張人臉圖像的新特征,并實現(xiàn)降維.由于隱藏層單元數(shù)沒有一個固定的確定算法,我們根據(jù)經(jīng)驗和一般原則進行了不同數(shù)值的嘗試.
(3)BP神經(jīng)網(wǎng)絡(luò)分類與檢測:通過自編碼器學(xué)習(xí)的新特征輸入到BP神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,直到神經(jīng)網(wǎng)絡(luò)收斂或滿足停止訓(xùn)練的條件;并利用原始數(shù)據(jù)進行模型測試,由于原始數(shù)據(jù)和降維后的特征數(shù)據(jù)維度不同,需要對原始數(shù)據(jù)歸一化后進行維度約減,本文中采用了相對簡單的方法,即在SAE特征提取過程中,對連接權(quán)重值約等于零的原始特征數(shù)據(jù)項進行刪除,保留權(quán)重值較大相對重要的特征項.
(4)利用人臉識別模型進行人臉識別檢測.
3.2 自編碼原理
本文通過自動編碼器對輸入數(shù)據(jù)的自動學(xué)習(xí),采用經(jīng)典隨機梯度下降算法進行訓(xùn)練,為了便于對比,設(shè)置了單層、多層的自編碼神經(jīng)網(wǎng)絡(luò),圖4是一個單層自編碼神經(jīng)網(wǎng)絡(luò)的示例圖[5],學(xué)習(xí)結(jié)構(gòu)有三層:輸入層單元數(shù)等于輸出層單元數(shù),隱藏層單元數(shù)較少,迫使自編碼神經(jīng)網(wǎng)絡(luò)去學(xué)習(xí)輸入數(shù)據(jù)的新表示,進行降維和去稀疏性.需要在自編碼神經(jīng)網(wǎng)絡(luò)加入稀疏性限制,因為輸入的數(shù)據(jù)中隱含著一些特定的關(guān)聯(lián)結(jié)構(gòu),通過學(xué)習(xí)就可以獲得輸入數(shù)據(jù)中的這些相關(guān)性.給隱藏層神經(jīng)元加入稀疏性限制的規(guī)則[6-7]是:神經(jīng)元的輸出接近于1被激活,輸出接近于0被抑制.隱藏層神經(jīng)元j的訓(xùn)練集上平均活躍度公式為
圖4 單層自動編碼器
在多層桟式自編碼器網(wǎng)絡(luò)中,需要把前一層自編碼器的輸出作為其后一層自編碼器的輸入,進而依次訓(xùn)練網(wǎng)絡(luò)的每一層,來訓(xùn)練整個深度SAE網(wǎng)絡(luò).訓(xùn)練思路為:首先訓(xùn)練一個只含一個隱藏層的網(wǎng)絡(luò),參數(shù)固定后,開始訓(xùn)練有兩個隱藏層的網(wǎng)絡(luò),在含有兩個隱藏層的網(wǎng)絡(luò)訓(xùn)練完成固定參數(shù),在增加一層,依次類推.最終得到深度網(wǎng)絡(luò)的所有權(quán)重參數(shù)和含有不同隱藏層的數(shù)據(jù)特征表示.用W(k,1),W(k,2),b(k,1),b(k,2)表示第k個自編碼器對應(yīng)的W(1),W(2),b(1),b(2)參數(shù),對棧式自編碼網(wǎng)絡(luò)從前向后的每一層自編碼器的編碼過程為:a(l)=f(z(l)),z(l+1)= W(l,1)a(l)+b(l,1),其中a(l)表示第l層的輸出;從后向前的每一層自編碼器的解碼過程為:a(n+l)=f(z(n+l)),z(n+l+1)= W(n-l,2)a(n+l)+b(n-l,2),其中,a(n)向量是最深層隱藏單元的激活值,也是對輸入值的更高階的表示.通過將a(n)作為BP網(wǎng)絡(luò)分類器的輸入特征,用于人臉圖像識別.
3.3 BP網(wǎng)絡(luò)訓(xùn)練和驗證
公式中增加動態(tài)可調(diào)整的b為垂直位移,當判斷出網(wǎng)絡(luò)進入平坦區(qū)時,按10%調(diào)高b參數(shù)(初始值為0.1),使其避免因獲得0輸出而使相應(yīng)的連接權(quán)獲得訓(xùn)練機會;公式中ω為水平位移,它使得作用函數(shù)沿水平方向左右移動,當f(x)接近1時,減少ω,當f(x)接近0時,增加ω,能提高神經(jīng)元的自適應(yīng)能力,同時也加快了算法的收斂速度,盡快脫離平坦區(qū).公式中系數(shù)λ決定著Sigmoid型函數(shù)的幅度,通過調(diào)整參數(shù)可以大大改變誤差曲面變化率,避開局部極小.
由于采用圖像的初始數(shù)據(jù)進行網(wǎng)絡(luò)驗證,這些數(shù)據(jù)的維度與自動編碼器提取的特征數(shù)據(jù)維度不一樣,必須調(diào)整數(shù)據(jù)維度才能驗證網(wǎng)絡(luò).考慮到網(wǎng)絡(luò)的泛化性能,對原始數(shù)據(jù)歸一化后進行維度約減,一對在SAE特征提取過程中,對連接權(quán)重值約等于零的原始特征數(shù)據(jù)項進行刪除,保留權(quán)重值較大相對重要的特征項;二對近似0的原始特征數(shù)據(jù)項刪除;三隨機挑選一定比例的原始特征數(shù)據(jù)項進行刪除.
4.1 實驗過程
實驗使用了耶魯大學(xué)的人臉數(shù)據(jù)庫(http://cvc.yale. edu/projects/yalefaces/yalefaces.html),數(shù)據(jù)庫有200幅不同的圖像,是一個112×92像素、256級的灰度圖像[10-12],但在不同時間、光照略有變化、不同表情和臉部細節(jié)下獲得的,尺度差異在10%左右,人臉姿態(tài)也有相當程度的變化.如圖5所示每文件夾有10幅圖像.對其進行SAE降維;采用BP神經(jīng)網(wǎng)絡(luò)對訓(xùn)練樣本集進行訓(xùn)練測試.實驗采用Bp網(wǎng)絡(luò)、PCA+BP和SAE+BP三中模型對上述圖像進行了人臉識別,并實驗了不同隱藏層神經(jīng)元數(shù)量,取得的一些實驗數(shù)據(jù).在SAE+BP模式識別實驗中,對每幅圖像(1×10304行向量)采用了單層、雙層和多層隱藏層SAE模型將數(shù)據(jù)向量維度壓縮到1× 1000,1×500,1×200,1×100,1×50.由于將數(shù)據(jù)向量維度壓縮到1×1000和1×50,存在數(shù)據(jù)維度過大和過小,導(dǎo)致數(shù)據(jù)特征冗余和損失,不利于人臉識別.故后面實驗數(shù)據(jù)是主要基于1×200和1×100維度下獲得的.由于特征表示數(shù)據(jù)量較多,下面只給出了含有單層、雙層的SAE模型下,相對應(yīng)部分數(shù)據(jù)特征表示,如表1所示.
圖5 人臉圖像文件夾
表1 部分人臉數(shù)據(jù)經(jīng)過SAE壓縮后特征對比
實驗過程中對數(shù)據(jù)進行了單層SAE和多層SAE模型進行了訓(xùn)練和驗證,由于超過四層的桟式自動編碼器模型參數(shù)多,訓(xùn)練難度大,本文僅在含有一到四層隱藏層的模型下,進行了人臉識別訓(xùn)練也驗證,誤差和準確率如表2所示.通過比較可以看出單層SAE+BP識別率比其它幾種模型稍好,在實驗過程中發(fā)現(xiàn),基于PCA+BP模型的人臉識別,通過PCA降維損失了部分特征數(shù)據(jù),從而造成識別率稍低.在多層SAE+BP模型中,由于隨著隱層數(shù)量的增加,網(wǎng)絡(luò)參數(shù)指數(shù)增加,網(wǎng)絡(luò)收斂難度較大,易陷入極小值,導(dǎo)致SAE模型獲得的多種表示分別進行人臉識別,并非第j層表示比第i層表示(j>i)效果一定好.
4.2 實驗結(jié)論
人臉圖像經(jīng)過灰度化后可以增強人臉圖像的特征,提高人臉的識別率;基于SAE維度約減后可以實現(xiàn)有效的降維,本實驗中人臉圖像的樣本的特征向量為10304維,降維后為100維,可以降低運算量,提高人臉識別的速率;基于桟式的多層SAE網(wǎng)絡(luò)提取人臉特征用于分類效果有所下降.
表2 不同模型測試數(shù)據(jù)對比
人臉識別模型很多,不同的模型參數(shù)調(diào)整非常復(fù)雜,沒有一個固定的算法,只能不斷的選擇不同的參數(shù)進行嘗試.在不斷測試過程中,發(fā)現(xiàn)固定的學(xué)習(xí)速率下,稀疏自動編碼器網(wǎng)絡(luò)的隱層數(shù)和節(jié)點數(shù)的選擇等在某些情況下都會影響識別率和網(wǎng)絡(luò)訓(xùn)練速度[12].對于不同情況必須結(jié)合數(shù)據(jù)多次嘗試找出相對好的識別方案.設(shè)計過程中,不論參數(shù)如何調(diào)整,都難以大幅度提高識別率.以后需要從改進算法或引入深度學(xué)習(xí)方法進一步提高識別率,而不是只是方法創(chuàng)新.本文只是提出了一種基于SAE和BP相結(jié)合的人臉識別模型,并進行了實驗,該模型能否很好的應(yīng)用于NLP、語音識別以及其它領(lǐng)域有待深入研究.
[1]DAHL G E,YU D,DENG L,et al.Context-dependent Pretrained deep neural networks for large-vocabulary speech recognition[J].Audio,Speech,and Language Processing,IEEE Transactions on,2012,20(1):30-42.
[2]劉勘,袁蘊英.基于自動編碼器的短文本特征提取及聚類研究[J].北京大學(xué)學(xué)報(自然科學(xué)版),2015(2):282-288.
[3]賀宇,潘達.付國宏.基于自動編碼特征的漢語解釋性意見句識別[J].北京大學(xué)學(xué)報(自然科學(xué)版),2015(2):234-240.
[4]ZEN H,SENIOR A,SCHUSTER M.Statistical parametric speech synthesis using deep neural networks[C]//Acoustics,Speech and SignalProcessing(ICASSP),2013IEEEInternational Conference on.Piscataway,NJ:IEEE,,2013:7962-7966.
[5]司馬江龍,鄧長壽.基于BP神經(jīng)網(wǎng)絡(luò)的人臉識別系統(tǒng)[J].江蘇:九江學(xué)院學(xué)報(自然科學(xué)版),2011(3):26-28.
[6]秦勝君,盧志平.稀疏自動編碼器在文本分類中的應(yīng)用研究[J].科技技術(shù)與工程,2013,31(13):9422-9425.
[7]林少飛,盛惠興,李慶武.基于堆疊稀疏自動編碼器的手寫數(shù)字分類[J].微機處理,2015,36(1):47-53.
[8]李志清,傅秀芬.基于PCA的3種改進BP算法性能研究[J].計算機工程,2011,37(21):108-110.
[9]李森林,鄧小武.基于二參數(shù)的BP神經(jīng)網(wǎng)絡(luò)算法改進與應(yīng)用[J].河北科技大學(xué)學(xué)報,2010,31(5):120-123.
[10]BAHDANAU D,CHO K,BENGIO Y.Neural machine translation by jointly learning to align and translate[J].CoRR,2014:abs/1409.0473.
[11]李康順,李凱,張文生.一種基于改進BP神經(jīng)網(wǎng)絡(luò)的PCA人臉識別算法[J].計算機應(yīng)用與軟件,2014,31(1):158-161.
[12]KRIZHEVSKY A,SUTSKEVER I,HINTON GE.Image net classificationwithdeepconvolutionalneural.etworks[C] //Advances in Neural Information Processing Systems.Red Hook,NY:Curran Associates,2012:1097-1105.
A Face Recognition Model Based on SAE and BP Network
LI Sen-lin,SHI Yuan-quan,HUANG Long-hua
(School of Computer Technology and Engineering,Huaihua University,Huaihua,Hunan 418008)
Pattern recognition based on shallow neural network has a key role in many fields.For sparse highdimensional datum,it has slower training rate and lower accuracy.So,the author proposes a model with sparse autoencoder connecting shallow BP network,In depth SAE model,Multi-features are automatically learned through setting the hidden nodes,being less than the input and output nodes.So data-dimensionality becomes little.New features are inputted into shallow neural network model to train and test.Face recognition experiments show that it is feasible to complete face recognition through SAE model and multi-layer represents mustn't be better than single-layer represents for face recognition and new model has a better result to some extent than only BP neural network.
sparse auto-encoder;neural network;face recognition;high dimension data;dimension reduction
TP3
A
1671-9743(2017)05-0078-05
2016-11-17
李森林,1973年生,男,河北邯鄲人,講師,研究方向:機器學(xué)習(xí)等.