資源描述:
《基于神經(jīng)網(wǎng)絡(luò)人臉識別(附代碼)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、【代碼及說明見第四頁】基于三層BP神經(jīng)網(wǎng)絡(luò)的人臉識別->實驗要求采用三層前饋BP神經(jīng)網(wǎng)絡(luò)實現(xiàn)標準人臉YALE數(shù)據(jù)庫的識別。二.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和學習算法實驗中建議采用如下最簡單的三層BP神經(jīng)網(wǎng)絡(luò),輸入層為X=[xpx2,???,%?],有n個神經(jīng)元節(jié)點,輸出層具有m個神經(jīng)元,網(wǎng)絡(luò)輸出為丫=[兒%,????」,隱含層具有k個神經(jīng)元,采用BP學習算法訓練神經(jīng)網(wǎng)絡(luò)。BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)BP網(wǎng)絡(luò)在本質(zhì)上是一?種輸入到輸出的映射,它能夠?qū)W習大量的輸入與輸出之間的映射關(guān)系,而不需要任何輸入和輸出之間的精確的
2、數(shù)學表達式,只要用已知的模式對BP網(wǎng)絡(luò)加以訓練,網(wǎng)絡(luò)就具有輸入輸出對之間的映射能力。BP網(wǎng)絡(luò)執(zhí)行的是有教師訓練,其樣本集是由形如(輸入向量,期望輸出向量)的向量對構(gòu)成的。在開始訓練前,所有的權(quán)值和閾值都應(yīng)該用一些不同的小隨機數(shù)進行初始化。BP算法主要包括兩個階段:(1)向前傳播階段①從樣本集中取一個樣本(Xp,Yp),將Xp輸入網(wǎng)絡(luò),其中Xp為輸入向量,Yp為期望輸出向量。②計算相應(yīng)的實際輸岀Op。在此階段,信息從輸入層經(jīng)過逐級的變換,傳送到輸出層。這個過程也是網(wǎng)絡(luò)在完成訓練后正常運行吋執(zhí)行的過
3、程。在此過程中,網(wǎng)絡(luò)執(zhí)行的是下列運算:(1)向后傳播階段①計算實際輸出Op與相應(yīng)的理想輸出Yp的差;②按極小化誤差的方法調(diào)整權(quán)矩陣。這兩個階段的工作一般應(yīng)受到精度要求的控制,定義1m◎幣工(冷-勺)2(1)乙J=1作為網(wǎng)絡(luò)關(guān)于第P個樣本的誤差測度(誤差函數(shù))。而將網(wǎng)絡(luò)關(guān)于整個樣本集的誤差測度定義為E=XEr⑵如前所述,將此階段稱為向后傳播階段,也稱之為誤差傳播階段。為了更清楚地說明本文所使用的BP網(wǎng)絡(luò)的訓練過程,首先假設(shè)輸入層、中間層和輸出層的單元數(shù)分別是N、L和M。X=(xo,xi,???,x
4、“)是加到網(wǎng)絡(luò)的輸入矢量,H=(ho,hi/--,hL-i)M中間層輸出矢量,Y=(yo,yi,…,yM-i)是網(wǎng)絡(luò)的實際輸出矢量,并且用D二(dod,…,dwJ來表示訓練組中各模式的冃標輸岀矢量。輸出單元i到隱單元j的權(quán)值是Vy而隱單元j到輸岀單元k的權(quán)值是Wjk。另外用孤和①j來分別表示輸岀單元和隱單元的閾值。于是,中間層各單元的輸出為:N-1勺=/(工號+0)/=0而輸出層各單元的輸出是:yk=f&jkh^0k)7=0其中f(*)是激勵函數(shù),采用s型函數(shù):1+e在上述條件下,網(wǎng)絡(luò)的訓練過程
5、如下:⑴選定訓練集。由相應(yīng)的訓練策略選擇樣本圖像作為訓練集。⑵初始化各權(quán)值Vij,Wjk和閾值①j,0k,將其設(shè)置為接近于0的隨機值,并初始化精度控制參數(shù)£和學習率Q。(2)從訓練集屮取一個輸入向量X加到網(wǎng)絡(luò),并給定它的冃標輸出向量D。⑷利用式(7)計算出一個屮間層輸出H,再用式(8)計算出網(wǎng)絡(luò)的實際輸出Y。(5)將輸出矢量中的元素yk與目標矢量中的元素dk進行比較,計算出M個輸岀誤差項:戈=(心-兒)兒(1-兒:對中間層的隱單元也計算出L個誤差項:M-15;=勺(1—勺)工4叫*=0(5)依次
6、計算出各權(quán)值和閾值的調(diào)整量:△W/X(71)=(q/(I+£))*(△⑺—1)+1嚴Q*hj(6)△嶺(h)=(a/(I+N))*(△嶺(刃—1)+1)*?*兀(7)△4")=僅/(4£))塑O-(+1)<(8)△0(n)=(a/(I+厶))*gj(71-1)4-1)*&(9)(6)調(diào)整權(quán)值和閾值:吹〃+1)=吹對+△%(〃),Vij(n+1)=嶺(對+△嶺0?)Ok(n+1)=Q(n)+