摘要:針對BP神經網絡作為人臉識別分類器具有的收斂速度慢、易陷入局部極小等缺點,提出利用改進的粒子群優化算法(PSO)改善BP網絡訓練的方法,建立了一種基于改進的PSO-BP神經網絡,更合理有效地確定了神經網絡的連接權值和閾值,將其應用到人臉識別系統中的分類環節中,并與單獨使用BP神經網絡分類的結果相比較,實驗表明,該方法識別速度快,識別效果更好。
關鍵詞:人臉識別;奇異值分解;BP神經網絡;粒子群優化算法
分類號:TP391 文獻標識碼:A
Face Recognition Classifier based on PSO and Neural Network
DUAN Xiang-jun
( Nanjing College of Information Technology, Nanjing 210046, China )
Abstract: Because BP neural network for face recognition classifier has slow convergence and easy to fall into the local minimum, using particle swarm optimization (PSO) to improve the BP network training method, establishing an algorithm based on the improved PSO-BP neural network, which can more reasonable and effectively to determine the neural network connection weights and thresholds, applying this method to the classification of the face recognition system, and compared results with using the BP neural network classification only, experiment shows that the recognition speed is quicker and recognition result is better.
Key words: face recognition; singular value decomposition; BP neural network; particle swarm optimization
0引言
通常情況下,一個人臉自動識別系統包括以下三個主要技術環節:人臉檢測、人臉特征提取、人臉識別。人臉識別即將人臉特征提取結果與庫中人臉對比得出分類結果,即識別分類;分類器的選擇在人臉識別系統整個過程中起著成敗與否的關鍵作用。因此,要慎重選擇研究分類器的設計,確保具有優秀的識別結果。
目前,應用較廣泛的人臉識別分類器主要有:最小距離分類器[1]、基于PCA的分類法[2]、支持向量機識別方法[3]、人工神經網絡[4]等模式識別方法。由于人工神經網絡具有較強的容錯能力、自適應學習能力以及并行信息處理結構、速度快等三大優勢,在模式識別領域有廣泛的應用,而人工神經網絡模型又以標準三層BP神經網絡最為經典。但由于傳統的BP算法是基于梯度下降法的,而梯度下降法通常具有收斂速度慢、易陷入局部極小等缺點而導致學習失敗,另外,BP網絡學習時間較慢,不適合大規模的網絡求解[5]。而粒子群算法(Particle Swarm Optimization, PSO)[6]源于對鳥群捕食行為的研究,系統初始化為一組隨機解,粒子在解空間追隨最優的粒子進行搜索,通過迭代搜尋最優值,所以用它來完成前期的搜索能較好的克服BP算法的缺點。
1 BP神經網絡分類器
BP算法的基本思想是:BP神經網絡的學習過程由信號的正向傳播與誤差的反向傳播兩部分組成。正向傳播時,輸入樣本從輸入層輸入,經各隱含層逐層處理后,傳向輸出層。若輸出層的實際輸出與期望的輸出(教師信號)不符,則轉入誤差的反向傳播階段。誤差的反向傳播是將輸出誤差以某種形式通過輸出層向隱含層逐層反傳,并將誤差分攤給各層的所有單元,從而獲得各層單元的誤差信號,以此誤差信號來修正各單元權值。權值不斷調整的過程,也就是網絡的學習訓練過程。此過程一直進行到網絡輸出的誤差減少到可接受的程度,或進行到預先設定的學習次數為止。其用于人臉識別的結構模型圖如圖1所示。
2 粒子群算法原理
如果我們把一個優化問題看作是在空中覓食的鳥群,那么在空中飛行的一只覓食的“鳥”就是PSO算法在解空間中進行搜索的一個“粒子”(Particle),也是優化問題的一個解,“食物”就是優化問題的最優解。粒子的概念是一個折衷的選擇,它只有位置和速度,沒有質量和體積。
PSO算法中每個粒子就是解空間中的一個解,它根據自己的飛行經驗和同伴的飛行經驗來調整自己的飛行狀態。每個粒子在飛行過程中所經歷過的最好位置,就是粒子本身找到的最優解。整個群體所經歷過的最好位置,就是整個群體目前找到的最優解。前者叫做個體極值(pBest),后者叫做全局極值(gBest)。每個粒子都通過上述兩個極值不斷更新自己,從而產生新一代群體。實際操作中通過由優化問題所決定的適應度函數值(fitnessvalue)來評價粒子的“好壞”程度。很顯然,種群中每個粒子的行為都是:追隨著當前的最優粒子,在解空間中進行搜索[7]。
1998年,Shi和Eberh 給出了標準PSO算法的數學描述如下[8] :設搜索空間為D維,群體中的粒子總數為N,第i個粒子的位置表示為向量 ;第i個粒子“飛行”歷史中的最優位置(即該位置對應解最優)為 ,或者記為pBest,其中所有 中的最優個體,也就是全局最優個體被記作 ,或者記為gBest;第i個粒子的位置變化率(速度)為向量 。每個粒子的位置按如下公式進行迭代變化:
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文