朱洪華
(莆田學(xué)院 機電工程學(xué)院,福建 莆田 351100)
一種改進遺傳算法在人臉識別中的應(yīng)用研究
朱洪華
(莆田學(xué)院機電工程學(xué)院,福建莆田351100)
文章通過傳統(tǒng)的小波變換和張量主成分分析(PCA)方法對人臉圖像進行特征提取,然后研究了一類引入學(xué)習(xí)過程的新遺傳算法.通過改進的遺傳算法對PCA提取的特征進一步的優(yōu)化,最后根據(jù)最優(yōu)特征進行識別,并將之與簡單遺傳算法和自適應(yīng)遺傳算法進行比較,證明了改進的遺傳算法的優(yōu)越性.
人臉識別;遺傳算法;PCA
計算機人臉識別技術(shù)是利用計算機分析人臉圖像,進而對人的臉部進行檢測以及確認身份等工作的技術(shù).人臉識別技術(shù)是最近幾年來計算機圖像處理和模式識別領(lǐng)域內(nèi)最為熱門的研究課題之一.主成分分析方法(PCA)是目前人臉特征提取最常用的方法之一.大量的研究表明,由于表情的變化以及光照的不均等等干擾的影響,假如直接對人臉圖像特征進行提取,就會使人臉圖像的維數(shù)很高,所以要對人臉圖像進行降維預(yù)處理.
遺傳算法是生命學(xué)科與工程學(xué)科互相交叉、互相滲透的結(jié)果.它啟迪于自然界生物從簡單低級到復(fù)雜高級以及人類的進化進程,又借鑒了物競天擇、優(yōu)勝劣汰、適者生存的機理,并引入碼串結(jié)構(gòu),在串與串之間進行有組織的卻又隨機的信息交換,優(yōu)秀的品質(zhì)被漸漸保存并進行組合,進而不斷地產(chǎn)生出更優(yōu)秀的個體,它的本質(zhì)是一種求解問題的高效并行全局的搜索方法.在自然界的進化進程中,生物體通過遺傳、變異來適應(yīng)外界的環(huán)境,一代代地進行優(yōu)勝劣汰以及繁衍進化.遺傳算法模擬上述的進化現(xiàn)象,它把搜索空間映射為遺傳空間,也就是把每一個可能的解編碼為一個向量,稱為一個染色體(或稱為個體),向量的每一個元素叫做基因,所有的染色體組成群體(或者稱為種群),并按預(yù)先設(shè)定的目標函數(shù)對每個染色體(個體)進行評價,根據(jù)得出的結(jié)果給出一個適應(yīng)度值;算法首先以隨機的方式產(chǎn)生了一些染色體,這些染色體其實就是我們所要求解的問題的一些候選的解,然后再進行適應(yīng)度計算,根據(jù)計算得出的適應(yīng)度大小來對各個候選解(也就是染色體)進行遺傳操作,主要是進行選擇、交叉和變異.遺傳算法具有如下的特點[1-2]:
(1)并行性:定義長度短、高適應(yīng)值模型將按照指數(shù)級增長方式代代相傳,而且是并行地在執(zhí)行.
(2)過程性:GA(遺傳算法)的遺傳操作和自然選擇可以增加組織的適應(yīng)度,遺傳算法是模擬和實現(xiàn)進化的一個過程,在這樣一種過程當(dāng)中,算法是沒辦法判斷解空間的個體的具體位置,所以必須要預(yù)先設(shè)定終止規(guī)則才能結(jié)束.
(3)不確定性:GA(遺傳算法)的隨機性為其帶來了不確定性,GA(遺傳算法)的各個步驟都包含有許多的隨機因素在里面.因此在遺傳算法的進化過程中,事件的發(fā)生或者不發(fā)生都是很難確定的.
(4)群體性:GA(遺傳算法)具有群體性主要是體現(xiàn)在它由一群而不是單個個體的進化來進行.
(5)統(tǒng)計性:GA(遺傳算法)的進化過程都需要通過統(tǒng)計來確定染色體的優(yōu)秀與否,從而進一步推動進化繼續(xù)下去.
(6)魯棒性:GA(遺傳算法)的魯棒性是指算法可以應(yīng)用于不同的條件和環(huán)境,確保其有效,這是因為進化計算具有良好的自適應(yīng)特點.
(7)整體優(yōu)化:我們常常采用啟發(fā)式的策略來找到最優(yōu)解.在一個單一的猜測解的領(lǐng)域內(nèi)進行搜索,即便偶爾允許跳到更遠的解空間,但是這些啟發(fā)式的策略也往往會陷入局部最優(yōu).GA(遺傳算法)的群體性使算法在不同領(lǐng)域搜索解空間的多個點,所以GA(遺傳算法)可以找到整體最優(yōu)解的概率更大.
在求解大規(guī)模復(fù)雜的條件下的優(yōu)化問題時,特別適合使用GA(遺傳算法).這是因為進化計算是應(yīng)用達爾文的自然選擇方式和進化方式來進行的,這使得它的進化不會受到搜索空間的限制,因此在人臉識別的過程中,采用遺傳算法不僅可以獲得更高的效率,并且操作更簡單方便而且具有通用的功能.為了解決上述的問題,文章研究了一類引入學(xué)習(xí)過程的新遺傳算法.
GA是一種通過生成群體再進行檢測的迭代過程,GA采用的是群體搜索方式以及群體之中各個個體之間進行信息交換和搜索.但GA存在諸如早期收斂速度較慢以及后期會在最優(yōu)解的附近進行振蕩等缺點,下面是這類問題的解決方案.
(1)改進和協(xié)調(diào)進化過程中的交叉算子和變異算子的使用.我們可以反進化的過程分為兩個階段:漸進進化和變異,并使用不同的設(shè)計方法對新的交叉算子和變異算子進行設(shè)計.
(2)為了解決算法的局部搜索能力差的問題,可以使用全局搜索和局部搜索相相結(jié)合的混合式遺傳算法.
(3)為了解決單一的群體更新方式導(dǎo)致的多樣性和收斂性的問題,可以采用設(shè)定一定的條件的父代替代的方法.
(4)為了解決收斂速度慢的問題,我們可以采用以下方式來改進算法:
①初始種群的改良,產(chǎn)生更好的種群
②應(yīng)用小生境技術(shù)對算法進行改進
③應(yīng)用移民技術(shù)對算法進行改進
④通過使用動態(tài)的參數(shù)編碼對算法進行改進
2.1引入學(xué)習(xí)過程的遺傳算法的論證[3-4]
(1)引:用基本遺傳算法求函數(shù)f(x)=x2在區(qū)間[0,63]上取得最大值的解X.
在[0,63]區(qū)間上的X可以使用六位二進制數(shù)對其進行編碼,例如
變量X=0對應(yīng)000000數(shù)字串
變量X=16對應(yīng)010000數(shù)字串
變量X=32對應(yīng)100000數(shù)字串
變量X=40對應(yīng)101000數(shù)字串
變量X=63對應(yīng)111111數(shù)字串
本例中我們選取的群體規(guī)模N為4來進行隨機實驗,產(chǎn)生了四個數(shù)字串個體:001101,011000,001000,010011,由這四個數(shù)字串來組成初始群體,如表1所示.
這四個數(shù)字串個體經(jīng)過遺傳算法的遺傳操作之后,我們可以得到新的一代群體:001100,011001,011011,010000,如表2示.
綜上所述,我們可以考慮由高適應(yīng)度的染色體向低適應(yīng)度的染色體學(xué)習(xí),這樣我們就可以最大限度地保留優(yōu)秀的短距模式(**1**).另一方面,為了使算法能夠更快地趨于收斂,我們可以讓低適應(yīng)度的染色體向高適應(yīng)度的染色體進行學(xué)習(xí).
表1 初始的種群和適應(yīng)度
表2 經(jīng)過第一次遺傳操作之后的結(jié)果
(2)自從1962年GA誕生以來,出現(xiàn)了許許多多、形形色色的改進的遺傳算法,但是這些方法都僅僅局限于在個體的競爭機制之中進行優(yōu)化.我們可以從生物以及人類社會的發(fā)展過程中得到啟發(fā),種群的發(fā)展不僅僅需要競爭,而且還要通過人與人之間之間的合作和互相學(xué)習(xí),這樣才能讓社會進一步發(fā)展下去.種群的發(fā)展也不僅僅只取決于個人(個體)的先天血統(tǒng)(先天性因素)好壞,還會受到后天環(huán)境(同代個個體之間互相學(xué)習(xí)和合作)的影響.綜上,我們可以考慮在GA的復(fù)制算子、交叉算子和變異算子的基礎(chǔ)上再引入學(xué)習(xí)的過程,使算法進一步優(yōu)化.
(3)具體步驟如下:
1、對參數(shù)進行編碼;
2、初始種群的生成;
3、進行適應(yīng)度值的計算,并由此來判斷符合不符合條件.如果符合條件則進行解碼,完成尋優(yōu)過程;如果不符合條件則轉(zhuǎn)到下一步驟;
4、個體之間進行復(fù)制、交叉以及變異操作;
5、個體進行互相學(xué)習(xí);
6、新種群的生成,并轉(zhuǎn)到步驟3繼續(xù)進行.
該算法的基本原理是:首先我們在這新的一代的群體中識別區(qū)分出兩個染色體群,一個是比較好的染色體群,另一個是比較劣質(zhì)的染色體群,并使這兩個染色體群進行隨機的相互學(xué)習(xí).然后提出了兩個學(xué)習(xí)概率PL1和PL2.
PL1:比較劣質(zhì)的染色體向比較好的染色體學(xué)習(xí)的概率.
PL2:比較好的染色體向比較劣質(zhì)的染色體學(xué)習(xí)的概率.
假設(shè)群體的規(guī)模大小為N,終止進化的代數(shù)設(shè)為G,學(xué)習(xí)的方式分為以下三個步驟:
(1)把整個群體中的個體按照適應(yīng)度的大小進行排序,從小到大可以分為1到N/2的染色體(前一半的染色體)和1+N/2到N的染色體(后一半的染色體),其中前一半的染色體組成的群體是比較劣質(zhì)的子群體,而后一半的染色體組成的群體是比較好的群體.
(2)確定互相學(xué)習(xí)的概率:
①為了避免早期較劣質(zhì)的染色體向比較好的染色體過度學(xué)習(xí)造成模式上的壟斷,導(dǎo)致過早收斂,所以早期的PL1(比較劣質(zhì)的染色體向比較好的染色體學(xué)習(xí)的概率)應(yīng)該取的比較小.
②為了避免比較好的染色體造成模式上的壟斷,以及比較劣質(zhì)的染色體可能被消除而使一些比較好的模式損失掉,從而降低了群體的多樣性,所以早期的PL2(比較好的染色體向比較劣質(zhì)的染色體學(xué)習(xí)的概率)應(yīng)該取的比較大.
③為了避免后期在最優(yōu)解附近振蕩的問題,應(yīng)該增加PL1(比較劣質(zhì)的染色體向比較好的染色體學(xué)習(xí)的概率),減小PL2(比較好的染色體向比較劣質(zhì)的染色體學(xué)習(xí)的概率).
我們假設(shè)PL1和PL2的初始值設(shè)為為PL10和PL20,
從上面的公式中,我們可以發(fā)現(xiàn),隨著進化的開展PL1會漸漸變大,而PL2會漸漸變小.
(3)學(xué)習(xí)方式:較劣質(zhì)的染色體群與較好的染色體群之間進行隨機的相互學(xué)習(xí),下面我們用二進制編碼為例子來說明染色體體之間是如何相互學(xué)習(xí)的.假設(shè)b1=011000為適應(yīng)度值較低的染色體體,b2=110111為適應(yīng)度值較高的染色體體.b1向b2學(xué)習(xí)的概率為PL1,即產(chǎn)生一個c(c為0~1的隨機數(shù)),若PL1>c,則將b1中的一位隨機的用b2代替掉.假設(shè)是第2位的話則可以得到下面的結(jié)果:
b3為經(jīng)過學(xué)習(xí)之后產(chǎn)生的新個體.以上是單點學(xué)習(xí)的方法.如果編碼的長度較長,也可以可考慮多點學(xué)習(xí)的方式,方法跟單點學(xué)習(xí)的方法類似.
3.1人臉圖像特征提取[5]
由于光的照射、表情的變化和配件的變動等因素都會影響到原始的人臉圖像,使得圖像的維數(shù)偏高.所以為了降低圖像的維數(shù)就必須在人臉識別過程中對圖像進行預(yù)處理,從而達到將圖像中的干擾信息消除掉的目的.本次仿真我們使用的是小波變換來對圖像進行預(yù)處理.通過預(yù)處理之后,我們可以得到四個子圖,其中有一個低頻子圖和三個高頻子圖(垂直方向、水平方向、對角線方向各一個),而且通過預(yù)處理之后的子圖的長度和寬度都變成原圖的一半,后面的小波變換都是根據(jù)上一層的子圖進行操作.
3.2實驗采用的人臉庫
本次實驗我們采用的是ORL標準人臉庫,該庫是由40個人,每個人10幅圖像(像素為112X92)組合而成.圖1是ORL人臉庫中部分圖像.
圖1 ORL標準人臉庫中的部分人臉圖像
3.3實驗結(jié)果
三類遺傳算法參數(shù)選取如下:群體規(guī)模的大小為30;終止代數(shù)為150;交叉的概率A1=0.80,;變異的概率A2=0.05;學(xué)習(xí)的概率為PL1=0.2*[1:G]/G PL2=0.8(1-[1:G]/G).
3.4結(jié)果與分析
從表3中可知,與普通遺傳算法和自適應(yīng)遺傳算法進行比較,我們可以發(fā)現(xiàn)新遺傳算法識別的精度最高,達到了97.7%,而且收收斂速度更快.這主要是因為引入學(xué)習(xí)過程的新遺傳算法極大地增強了算法的全局搜索能力;增加了群體的多樣性,同時又避免陷入局部最優(yōu),并使收斂速度更加快.
〔1〕王曉平,曹立明.遺傳算法-理論、應(yīng)用于軟件實現(xiàn)[M].西安:西安交通大學(xué)出版社,2002.1.
〔2〕薛景浩,章毓晉,林行剛.二維遺傳算法用于圖像動態(tài)分割[J].自動化學(xué)報,2000,26(5):685-689.
〔3〕雷英杰,張善文,李續(xù)武.MATLAB遺傳算法工具箱及其應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2005.22-30.
〔4〕胡艷艷,蔡建立.一類新遺傳算法[J].廈門大學(xué)學(xué)報(自然科學(xué)版),2006(5).
〔5〕吳建龍;羅海兵.遺傳算法在人臉識別中的應(yīng)用研究[J].計算機仿真,2010(12).
TP317.4
A
1673-260X(2016)09-0017-03
2016-04-13
赤峰學(xué)院學(xué)報·自然科學(xué)版2016年18期