?

基于多遺傳算法的BP神經網絡人臉識別

2021-01-19 02:24姜志俠
計算機技術與發展 2021年1期
關鍵詞:識別率權值適應度

曾 坤,姜志俠

(長春理工大學 理學院,吉林 長春 130000)

0 引 言

隨著時代的進步,科技的不斷發展,在許多領域出現了新興技術。這些技術的出現也不斷地推動著其他領域的發展,同時一些新的需求也不斷體現出來。而人臉識別技術正是在這樣的背景下應運而生的。人臉識別的應用十分廣泛,例如門禁系統[1]、銀行業務[2]、公安犯罪嫌疑人偵查[3]等。近幾十年,人臉識別技術發展迅猛,吸引了各個領域的學者參與研究[4-5],應用前景廣泛,具有重要的現實意義。

人臉識別是一種基于人的臉部特征信息進行身份識別的生物識別技術[6]。人臉識別一般主要分為三個步驟:一是人臉圖像獲取,二是人臉特征提取,三是人臉識別。學者們也提出不少相關算法。1901年統計學家Karl Pearson[7]提出了PCA(principal components analysis)算法,PCA算法將高維的數據映射到低維空間,并保留了原數據的一些特征.該算法廣泛用于數據降維、數據壓縮等。Herault等人[8-9]針對盲源信號的分離提出了ICA(independent component analysis)算法并加以發展.其中1997年Hyvarinen[10]提出的FastICA算法,具有收斂速度快、分離效果好的優點。近年來,一些學者[11-12]將ICA算法用于模式識別,并且取得了較好的效果。1986年Rumelhart等人[13]提出了按誤差逆向傳播訓練的BP神經網絡算法,廣泛用于模式識別、目標分類等。

該文提出了一種基于多遺傳算法優化BP神經網絡結構和權值閾值的人臉識別方法。對人臉圖像的預處理采用了PCA和FastICA算法,更大程度上提取人臉圖像的特征,有利于后續的識別工作。首先用PCA算法對人臉圖像進行降維,用FastICA算法提取降維后的人臉圖像特征。針對BP神經網絡易陷入局部最優、收斂速度慢等缺點,主要采用遺傳算對BP神經網絡的訓練函數、訓練次數、隱藏層的層數、隱藏層的神經元個數和權值閾值進行優化處理。仿真實驗結果顯示,識別率有了一定程度的提高。

1 人臉特征提取

1.1 ORL人臉數據庫

該文采用ORL人臉數據庫進行仿真,ORL人臉數據庫共由40個人臉樣本組成,每個人臉樣本各10張,共計400張人臉圖像。每張人臉圖像尺寸均為92*112,包含不同性別、年齡以及種族等。其中部分人臉有不同的面部表情,微笑、張嘴以及是否戴眼鏡等。各張人臉之間存在的一定差異,對識別的算法具有較高的檢測能力。在人臉庫中隨機選取5張人臉組成訓練集T,每一個人中剩余的5張人臉組成測試集Y。對訓練集進行數字化處理,將每一張的人臉的灰度值按列連接成10 304×1維的列向量,從而將訓練集200張人臉圖像處理為10 304×200維的矩陣。對于測試集做同樣的處理。

1.2 PCA算法

PCA算法是一種較為常用的降維算法,PCA算法的主要思想是截取較高貢獻率的特征值對應的特征向量,從而構成比原數據維度較低的變換矩陣,通過線性變換將高維數據沿著方差最大的方向投影到低維空間。對于人臉訓練集T=(t1,t2,…,tn),共有n張人臉樣本,每張人臉用向量表示為ti=(t1i,t2i,…,tmi)T,計算n張人臉的均值,平均臉為:

計算每一張人臉與平均臉的差值:

平均臉和去均值人臉如圖1所示。

圖1 平均臉(左)和去均值人臉(右)

令P=(p1,p2,…,pn),構建人臉的協方差矩陣:

C=PPT

傳統的主成分分析算法是通過樣本的協方差矩陣特征值分解進行的。但是對于高維數據,即樣本的維度m很大的時候,協方差矩陣為m×m維,導致計算量非常大。為了避免上述問題,通常對樣本采用SVD(singular value decomposition)的思想進行處理,構造矩陣:

P=UΣVT

特征值數量與特征值貢獻率的關系如圖2所示。

圖2 特征值貢獻率

由圖2可以看出,較大的特征值貢獻較多的能量。選取前k個貢獻率較多的特征值對應的特征向量,從而計算得到投影矩陣U=(u1,u2,…,uk)T,使得投影后的數據維數比原數據維數低。將投影矩陣還原為人臉像素則可得到特征臉,其特征臉如圖3所示。

圖3 特征臉

1.3 基于負熵的FastICA算法

FastICA算法處理的數據要求各個分量之間是統計獨立或者盡可能獨立[14],因此在1.2中對人臉圖像用PCA算法進行了預處理,消除變量之間的相關性。FastICA算法是ICA算法的改進,由于收斂速度快、效果好而得到廣泛應用。本節采用FastICA算法對人臉圖像進行特征提取。設觀測樣本數據X為m×n階的矩陣,共有n個數據,每個數據為m維。

獨立信號源為:

即有混合矩陣A,使得X=AS,從而尋找一個恢復矩陣W,使得B=WX,讓B逼近于S。Hyvarinen等人[15]改進了FastICA算法,用負熵來度量非高斯性,最大化負熵使得非高斯性最大。采用較為經典的負熵近似公式[16]作為目標函數:

J(y)=[E{g(y)}-E{g(yGauss)}]2

其中,J(y)為隨機變量y的負熵,E{·}表示均值,g為非線性函數,取為:

導函數為g'(y)=tanh(a1y)。經過化簡后得到FastICA的迭代公式為:

對迭代后的恢復矩陣進行歸一化處理:

若W未滿足收斂條件,則重復上述過程直到收斂。計算投影矩陣B:

B=WX

訓練集T在投影矩陣B下的投影為TB=BTT,測試集Y在投影矩陣B下的投影為YB=BTY。其獨立成分人臉圖像如圖4所示,對比圖3可以看出,經過FastICA算法處理后,人臉特征更加明顯。

圖4 FastICA算法處理后的人臉

2 多遺傳算法優化BP神經網絡

2.1 遺傳算法優化BP神經網絡結構

遺傳算法作為啟發式算法的一種,通過概率的方式進行選擇、交叉、變異。在多次迭代的子代種群中選擇優良的個體,能夠有效地尋找全局最優解。而BP神經網絡的結構往往依靠經驗選取,對于訓練函數、訓練次數、隱藏層層數及每一個隱藏層的神經元個數較為敏感。本節采用遺傳算法對上述結構進行優化,在一定程度上避免了BP神經網絡陷入局部最優、收斂速度慢等問題。

染色體的設置:在一般的遺傳算法中,染色體為等長的染色體,但是文中由于BP神經網絡隱藏層層數的變化,染色體的長度可能不一樣,因此設計染色體為變長的染色體。編碼方式為正整數編碼,每一個基因位的意義表示為:第一個基因位為BP神經網絡的訓練函數;第二個基因位為BP神經網絡的訓練次數;第三個基因位為BP神經網絡隱藏層的層數;第四到第六個基因位為BP神經網絡隱藏層每一層的神經元個數。其中第三個基因位的值決定了剩下基因的位數,染色體的格式為X=[x1,x2,x3…],每一個基因的取值范圍為:

初始種群:采用隨機化的方法初始種群,在保證每個基因的值滿足其對應的約束情況下隨機生成染色體。例如染色體X1=[2,5 230,2,41,36],則X1表示選用的訓練函數為第二個函數,BP神經網絡的訓練次數為5 230,BP神經網絡的隱藏層層數為2層,第一個隱藏層的神經元個數為41,第二個隱藏層的神經元個數為36。

適應度值計算及選擇操作:本節遺傳算法主要優化BP神經網絡結構,以此提高人臉圖像的識別率,因此將識別率作為適應度值。選擇操作采用輪盤賭方法,每個個體被選中的概率為:

其中,fi是第i個個體的適應度值,N是種群大小。

交叉:由于染色體是變長的,染色體的交叉采用基于隨機交叉點的混合交叉方式。交叉點為隨機生成的正整數,最大值為較短染色體長度。當隨機交叉點的值為[1,3]時,采用單點交叉,以隨機交叉點為基準互換兩條染色體配對部分。當隨機交叉點的值為[4,6]時,即為隱藏層的神經元個數基因位時,采用兩點交叉,在染色體中隨機選擇兩個交叉點。其中兩個交叉點值均大于3,但是小于等于較短染色體的長度,然后兩條染色體互換交叉點內的基因。

對于交叉概率的設置,常規的遺傳算法采用固定的交叉概率,使得較小和較大適應度值的個體具有相同的交叉概率。對于較大適應度值的個體可能被破壞,應需要較小的交叉概率,盡可能地保留較好的個體。對于較小適應度值的個體,應需要較大的交叉概率,通過交叉的方式獲得更好的基因,因此采用自適應的交叉概率,對于較大適度值的個體自動調整交叉概率,獲得較小的交叉概率,較小適應度值的個體則獲得較大的交叉概率。其自適應交叉概率[17]如下:

其中,fmax為種群中的最大適應度值,fc為待交叉個體適應度值,favg為種群中的平均適應度值,k1,k2為常數。

變異:變異采用單點變異的方法。當變異點的基因位不為3的時候,則隨機生成一個對應基因值域范圍內的值進行變異。當變異點的基因位為3時,即BP神經網絡的隱藏層層數發生變異,則隨機生成一個層數值域范圍內的變異值,若變異值小于隱藏層層數,則隱藏層的基因位相應減少,若大于隱藏層層數,則隱藏層的基因位相應增加。對于變異概率同交叉概率一樣,采用自適應的變異概率[17],其公式如下:

其中,fmax為種群中的最大適應度值,fm為待變異個體的適應度值,favg為種群中的平均適應度值,k3,k4為常數。

2.2 遺傳算法優化BP神經網絡權值閾值

BP神經網絡是基于誤差減小反向更新權值閾值的,對初始權值閾值較為敏感[18],若按照傳統方式隨機選取網絡的初始權值閾值,則有可能在BP神經網絡訓練過程中陷入局部最優等問題,因此采用遺傳算法對BP神經網絡的權值閾值進行優化。

染色體設置:該網絡中權值閾值數量多,若采用單染色體,則每條染色體長度十分大,在交叉變異中不利于個體進化。因此改進單染色體為多染色體并行執行,使得每一層的權值閾值都得到有效優化。對于2.1中得到的BP神經網絡結構,例如:一個輸入層,一個隱藏層,一個輸出層,則會有兩組權值,輸入層到隱藏層權值,隱藏層到輸出層權值,兩組閾值,輸入層到隱藏層閾值,隱藏層到輸出層閾值。一共有四條染色體,分別記為W1,W2,B1,B2。每組染色體初始化為-0.5~0.5之間的隨機值,共四組對應子種群。設種群為:pop=[popW1,popW2,popB1,popB2]。

適應度值計算:將初始化的染色體傳入BP神經網絡,通過2.1確定BP神經網絡的結構,對BP神經網絡進行訓練。用訓練好的BP神經網絡計算人臉測試集的識別率,把識別率作為適應度值。

選擇運算:采用父子競爭[19]的選擇方法。遺傳算法在交叉運算時會選擇兩組父染色體,進行交叉操作后產生兩組子代,一共四組染色體。計算這四組染色體的個體適應度值,選取適應度值較大的兩組染色體進入變異環節。在變異操作中,每組染色體經過變異后又會產生一組子代.計算子代和父代的適應度值,將適應度值較大的個體保留到下一代。在迭代完成后選擇種群中適應度值最大的個體作為最優個體輸出。

交叉:從種群中選擇對應兩組父染色體進行交叉,采用單點交叉,隨機選擇交叉點位置,將交叉點后面部分的基因進行相互交換。由于個體適應度值變化不是特別大,因此采用固定交叉概率,交叉概率為0.8。

變異:在該遺傳算法中,染色體較長(基因數可能為1 000左右),因此選取多個基因進行變異。根據經驗值選取變異的基因個數為基因總數的5%(取整),然后隨機選擇變異基因的位置進行變異,變異概率為0.1。

2.3 基于多遺傳算法的BP神經網絡

BP神經網絡模擬生物神經網絡的信號傳遞,將模型的信息存儲在神經元、權值和閾值中,通過誤差反向傳播來訓練網絡。多遺傳算法優化BP神經網絡步驟如下:

步驟1:對人臉圖像進行降維特征提取。

步驟2:用遺傳算法對BP神經網絡的訓練函數、訓練次數、隱藏層層數和隱藏層神經元個數進行優化。為了結果的有效性,采用控制變量法,對構建的BP神經網絡的權值閾值初始化相同的值。

步驟3:用步驟2得到BP神經網絡結構參數,構建BP神經網絡。用遺傳算法對BP神經網絡權值閾值進行優化。以BP神經網絡的識別率作為遺傳算法的適應度值,當BP神經網絡的權值閾值最優時,BP神經網絡的識別率達到最大。

步驟4:保存步驟3得到的最優識別率和對應的BP神經網絡,輸出最優識別率,整個算法流程如圖5所示。

圖5 算法流程

3 數據仿真實驗

參數選取,兩層遺傳算法種群均為50,迭代次數均為10次,BP神經網絡目標誤差為0.001,默認學習率0.05。

用PCA算法選取前35個特征值對應的特征向量對人臉圖像進行降維,然后用FastICA算法進行特征提取,對BP神經網絡優化處理后,用BP神經網絡對測試集進行識別。經過15次重復實驗,平均識別率為0.972 7,最高識別率可達0.985。其多次實驗的識別率以及平均識別率如圖6所示。

在文獻[20]中,作者利用PCA算法提取人臉圖像中的主要特征,采用最近鄰分類器進行分類,其識別率為0.925。在文獻[21]中,作者采用主成分分析對人臉圖像進行特征提取,利用BP神經網絡預測人臉識別率,其識別率為0.941。在文獻[22-23]中,作者用PCA和FastICA兩種技術對人臉特征進行提取,其識別正確率最高為0.950。文中采用多遺傳算法優化BP神經網絡進行人臉圖像識別,其多次實驗平均識別率為0.972 7,說明該算法具有良好的性能,識別率較高。文中算法與其他算法對比如表1所示。

圖6 多次重復實驗結果

表1 算法對比

4 結束語

BP神經網絡在各個領域中的應用十分廣泛,特別是對于一些沒有明確模型的復雜問題,BP神經網絡能夠很好地解決。但是目前來說對于BP神經網絡結構和權值閾值的選取沒有一套完整確定的理論,一般都是憑借人們的經驗去選擇。而遺傳算法可以在一定程度上彌補BP神經網絡的不足。文中先利用PCA和ICA算法對人臉圖形進行降維和特征提取,然后采用多遺傳算法優化BP神經網絡,這樣避免了BP神經網絡結構及權值閾值選取的隨機性,在一定程度上提升BP神經網絡的性能。最后用優化訓練好的BP神經網絡在測試集上進行人臉識別,其實驗仿真結果顯示該算法性能良好。在重復實驗過程中,多次出現識別率為0.975,即測試集中有5個樣本不能被正確識別,猜測數據集中可能有兩張人臉為雙胞胎或高度相似,因此識別雙胞胎或高度相似人臉將是未來的研究方向之一。

猜你喜歡
識別率權值適應度
改進的自適應復制、交叉和突變遺傳算法
檔案數字化過程中OCR技術的應用分析
啟發式搜索算法進行樂曲編輯的基本原理分析
基于PCA與MLP感知器的人臉圖像辨識技術
科技文檔中數學表達式的結構分析與識別
人工智能現狀和發展
財務風險跟蹤評價方法初探
基于洪泛查詢的最短路徑算法在智能交通系統中的應用
基于人群搜索算法的上市公司的Z—Score模型財務預警研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合