本發(fā)明屬于機器學習和模式識別技術領域,是利用遺傳算法融合差分進化的方法選擇基分類器,構建一個具有較強泛化能力的選擇性集成預測方法,以期達到對新的未知樣本給出精準預測的目的。
背景技術:
過去的幾十年中,人臉識別作為生物特征識別的重要研究方向得到了極大的關注。人臉識別的研究經歷了單分類器識別、集成分類識別和深度學習識別等過程。在單分類器階段人們更多的是傾向于優(yōu)化單分類器的識別性能,尋找性能更好的分類器,但是這種單分類器的識別能力還難以滿足人類的需求。隨著機器學習研究的發(fā)展,人們提出了集成思想的學習器,它是在降低單分類器性能的基礎上得到更多的基分類器,從而提高學習的泛化能力,在人臉識別的應用中也體現了很好的應用價值。深度學習是新興的多層次神經網絡學習方法,已在人臉識別和目標檢測上取得了令人矚目的成就,但是深度學習在訓練之前需要大量有標簽訓練樣本的參與,人工標注成本高,實驗環(huán)境要求也高,訓練過程需要調節(jié)大量參數,計算時間復雜度高。選擇性集成學習是對集成學習方法的約簡,相對于深度學習簡單實用,它使用更少的基分類器不僅可以提高集成的泛化能力而且相較于深度學習降低了計算復雜度,降低了基分類器模型的存儲成本。
遺傳算法作為選擇性集成的一個選擇策略,雖然在全局優(yōu)化上表現出很強的搜索能力,但是遺傳算法還存在局部搜索能力低、交叉和變異的過程中過于隨機和盲目等問題。這些也是處理組合優(yōu)化問題時所面臨的重要問題。近年來,差分進化作為一種新興的進化技術被提出,在解決復雜優(yōu)化問題上體現了很好的應用價值。差分進化在局部搜索和有方向的變異上彌補了遺傳算法的不足。為了進一步提高算法的搜索能力,提高選擇性集成最終的泛化能力,通過遺傳算法融合差分進化完成尋優(yōu)任務。
技術實現要素:
本發(fā)明的目的在于針對已有的bagging集成人臉識別技術存在的計算復雜度高、模型存儲成本高和識別率低的問題,提出一種基于遺傳算法融合差分進化的選擇性集成學習方法(selectiveensemblelearningmethodbasedongeneticalgorithmfusiondifferentialevolution,gadesen)應用于人臉識別中。
為達到上述目的,本發(fā)明采用的技術方案是利用gadesen算法的人臉識別的優(yōu)化算法。首先提取人臉圖像的hog特征,之后應用pca算法對人臉圖像進行降維,以此來減少計算復雜度,最后,用降維后的數據,應用gadesen算法進行分類識別。
該方法以支持向量機作為基分類器,從原始的訓練集有放回抽取n個樣本,按照此方法迭代t次,使用每次產生的樣本集訓練基分類器模型,對產生的n個基分類器進行實數編碼,生成初始種群,在變異操作中采取差分向量來指導變異進而產生優(yōu)質的個體,交叉操作使用父代個體及變異個體共同產生交叉?zhèn)€體,增加了個體的多樣性,采用最優(yōu)保留策略進行遺傳進化。
流程圖見圖1,其具體步驟如下:
step1對人臉圖像進行歸一化處理,提取人臉圖像的hog特征,然后再用pca算法降維。實驗中訓練集是由人臉圖像庫中圖像樣本構成。步驟中的主要參數說明:t表示訓練出的基分類器數目,n表示從人臉圖像庫中有放回抽取的人臉圖像數目,st表示第t次抽取構成的人臉圖像訓練集,ht表示第t個基分類器模型,hi(x)表示第i個基分類器對一個人臉圖像樣本x的判斷輸出,yj表示第j個人臉圖像的真實類別。
step2fort=1:t執(zhí)行以下幾步:
①從原始訓練集中有放回抽樣出n個樣本構成訓練集st。
②用支持向量機算法在st下訓練出基分類器模型ht。
step3遺傳算法融合差分進化,執(zhí)行以下流程:
①采用實數對基分類器編碼,每個基因位取值范圍是(0-1),編碼長度為初始的基分類器規(guī)模。
②對種群進行初始化操作,隨機產生定義域范圍內的個體。
③適應度函數采用集成泛化誤差。
④選擇操作采用輪盤賭的方法從父代個體、交叉?zhèn)€體以及變異個體中選擇,適應度高的個體更容易遺傳到下一代。
⑤交叉操作采用單點交叉產生新個體,基因位的來源既有父代個體中的基因又有變異個體中的基因。
⑥變異操作是融合差分進化中的變異方法,使用差分向量變異新個體,變異之前采用歐氏距離計算選中個體間的相似性,對相似性高的個體執(zhí)行傳統(tǒng)的變異過程。
⑦停止進化。
其中適應度函數的設計同二進制編碼下的sgasen算法不同,設個體編碼為a=(a1,a2,…,at),其中ai∈(0,1)i∈{1,2,…,t},設置基分類器選擇系數λ,λ取值為1/t,當ai>λ時取值為1,否則為0,適應度函數的設計過程如下:
(1)人臉圖像樣本x的預測輸出表示為:
(2)訓練集s的集成泛化誤差error為:
step4解碼最優(yōu)個體生成基分類器組合,對測試集預測分類,計算分類錯誤率。
step5輸出結果。
本發(fā)明的有益效果在于:1、減少基分類器數目;2、降低模型存儲成本;3、利用本發(fā)明算法進行人臉識別可以效提高人臉識別率。
附圖說明
圖1是算法流程。
具體實施方式
下面詳細給出該發(fā)明技術方案中所涉及的各個細節(jié)問題的說明:
差分進化的收斂性分析同遺傳算法的分析相似,都是以馬爾科夫鏈為基礎,本章從馬爾科夫鏈的定義及其有限性出發(fā),簡明介紹其收斂性。
假設隨機初始序列{xn;n≥0}為離散變量上的隨機取值,離散值的全部集合記為hl={j},稱hl為狀態(tài)空間,如果對任意n≥1,ik∈hl(k≤n+1)滿足以下公式:
p{xn+1=in+1|xn=in,···,x0=i0}=p{xn+1=in+1|xn=in}(1-3)
那么{xn;n≥0}可稱為馬爾科夫鏈。
隨機初始序列{xn;n≥0}的狀態(tài)空間hl針對不同的問題其狀態(tài)可分為有限和無限,至于差分進化算法因其解的范圍是在一個封閉的空間中,可認為狀態(tài)空間是有限的。
設m,n為兩個正整數,馬爾科夫鏈{xn;n≥0}在m時刻狀態(tài)i經過n步轉變到狀態(tài)j的概率公式為:
pij(m,n)=p{xm+n=j|xm=i}(1-4)
{xn;n≥0}是齊次馬爾科夫鏈的前提條件是其轉變概率同時間無關,也就是
差分進化算法的種群所構成的序列是有限空間上的齊次馬爾科夫鏈。
證明:
假設種群規(guī)模為m,編碼長度為n,差分進化算法采用實數編碼,其個體在浮點數空間取值,由于是實數編碼導致種群所在狀態(tài)空間是無限的,所以在實際問題中,往往是把問題構造成有限精度的條件,從無窮空間轉變?yōu)橛邢蘅臻g,其維數為v,那么種群所在的狀態(tài)空間大小為vnm,因此種群序列是在有限的范圍內。差分進化算法中的變異、選擇、交叉操作均與t無關,且x(t+1)只與當前狀態(tài)x(t)有關,故{xt;t≥0}為有限齊次馬爾科夫鏈[54]。
證畢。
設xt={x1(t),x2(t),···,xn(t)}為差分進化算法在迭代次數為t時的一個種群,xi(t)為其中的個體,設f是xt上的適應度函數,n為種群規(guī)模,有:
為全局最優(yōu)適應度值。
定義3設ft=max{f(xi(t))}i=1,2,···,n,表示序列在時間t狀態(tài)下的最優(yōu)適應度值,如果存在
則表示算法收斂。當算法進化到無窮代之后,種群中出現全局最優(yōu)解的概率趨近于1。
定理2差分進化算法是滿足收斂性的。
證明:
設pi(t)為種群xi處在狀態(tài)si的概率,記
可知:
而
移項得
從而
而
則有
0≤pt+1<pt(1-12)
所以
又因為
即
差分進化在迭代到一定次數以后,在種群中可以尋找到最優(yōu)解的概率是趨近于1的。雖然差分進化算法在理論上可以尋找到最優(yōu),但是迭代次數難以確定,在實際應用中還存在著不足。
變異操作是新個體產生的有效途徑,也是遺傳算法產生新個體的常用方法。在變異操作過程中將個體編碼中的一些基因值通過某種規(guī)則加以變換形成新個體。它決定了遺傳算法的局部搜索能力,是進化過程中一個必不可少的操作步驟。一般情況下對實數編碼的個體采用以變異概率p隨機生成一位或幾位基因變異位置,然后在該點隨機賦值完成變異操作。采用這種方式的變異操作使得新個體具有更多的盲目性,生成的新個體也未必可以增加種群的多樣性。
本方法應用的變異操作是在父代個體間的差分向量的基礎上進行的,用差分向量指導變異。首先從父代中隨機選擇兩個不同的個體(xi,xj),其中i≠j,然后按照變異方程產生新個體,變異方程如下:
xm=xbest+k(xi-xj)(1-16)
其中,xm為變異產生的新個體,xbest為父代中最優(yōu)個體,k為差分變異系數,用來控制差分向量(xi-xj)對最優(yōu)個體xbest的影響。該操作在保持種群的多樣性上起到了積極的作用。xi與xj是隨機產生的,如果xi與xj比較相似做差分時容易出現零向量,不利于新個體的產生,因此變異操作之前對兩個個體相似性檢測,相似個體不再使用差分變異,使用傳統(tǒng)方法進行變異操作,以此增加多樣性。
交叉操作一般是發(fā)生在兩個父代個體間,按照某些原則把部分基因相互交換,從而產生新個體。在遺傳算法中,通常的交叉操作,首先從父代中隨機選擇兩個個體,其次在個體編碼串中隨機設置一個交叉點,然后在該點交換兩個個體的部分基因。新個體繼承了父代個體基因,但是并不能有新基因的加入,種群的多樣性不能很好的擴展。
專利中的交叉操作是變異操作中產生的變異個體xm同從父代中隨機產生的個體xi之間進行交叉,產生個體xt。按照交叉方程進行交叉操作,方程如下:
其中,rand()是由隨機數產生函數產生的[0,1]之間的實數,j=0,1,2,···,d,d是個體編碼長度,randr(i)∈{1,2,···,d}是隨機產生的整數,為此新個體xt基因位上既有來自父代個體xi又有變異個體xm中的遺傳基因。
專利中的選擇操作是對變異操作和交叉操作產生的個體以及父代中的全部個體,采用輪盤賭的方法進行選擇。輪盤賭的主要思想是個體被選中的概率與它的適應度值成正比。即在選擇中,個體i被選中的概率為:
其中,fi為個體i的適應度值,n為種群中的個體數目。顯然隨著適應度值的增加,個體被選中的概率也隨之增大,從而有利于較優(yōu)個體的遺傳保留。
算法流程
以遺傳算法融合差分進化為主要的選擇策略研究選擇性集成學習,在變異操作中采取差分向量來指導變異進而產生優(yōu)質的個體,交叉操作使用父代個體及變異個體共同產生交叉?zhèn)€體,增加了個體的多樣性。算法的操作流程如下。
step1確定訓練集大小n和迭代次數t。
step2fort=1:t執(zhí)行以下幾步:
①從原始訓練集中有放回抽樣出n個樣本構成訓練集st。
②用回歸分類樹算法在st下訓練出基分類器模型ht。
step3遺傳算法融合差分進化,執(zhí)行以下幾步:
③采用實數對基分類器編碼,每個基因位取值范圍是(0-1),編碼長度為初始的基分類器規(guī)模。
④對種群進行初始化操作,隨機產生定義域范圍內的個體。
⑤適應度函數采用集成泛化誤差。
⑥選擇操作采用輪盤賭的方法從父代個體、交叉?zhèn)€體以及變異個體中選擇,適應度高的個體更容易遺傳到下一代。
⑦交叉操作采用單點交叉產生新個體,基因位的來源既有父代個體中的基因又有變異個體中的基因。
⑧變異操作是融合差分進化中的變異方法,使用差分向量變異新個體,變異之前采用歐氏距離計算選中個體間的相似性,對相似性高的個體執(zhí)行傳統(tǒng)的變異過程。
⑨停止進化。
其中適應度函數的設計同二進制編碼下的sgasen算法不同,設個體編碼為a=(a1,a2,…,at),其中ai∈(0,1)i∈{1,2,…,t},設置基分類器選擇系數λ,一般情況下取值為1/t,當ai>λ時取值為1,否則為0,那么適應度函數的設計過程如下:
(3)樣本x的預測結果可表示為:
(4)訓練集s的集成泛化誤差為:
step4解碼最優(yōu)個體生成基分類器組合,對測試集預測分類,計算分類錯誤率。
step5輸出結果。
實驗
實驗以matlab2014b和visualstudio2013兩個集成開發(fā)環(huán)境作為開發(fā)工具,數據庫基本描述見表1-1,在ar、yale、yaleb人臉數據庫上,采用四種不同的特征提取方法,以gadesen算法為分類器做對比實驗。其中使用的特征提取方法有:原始特征(loc)、原始特征降維(loc+pca)、hog特征(hog)以及hog特征降維(hog+pca),實驗中gadesen使用的基分類器為支持向量機。對于每個人臉數據庫,圖像大小都歸一化為32×32,70%的人臉圖像作為訓練集,30%的人臉圖像作為測試集,用以驗證方法的有效性。表1-2、1-3、1-4分別給出了四個特征下ar、yale及yaleb人臉庫在不同基分類器規(guī)模下的實驗結果,表1-5給出了基于hog特征降維、基分類器規(guī)模為60、不同分類器下的實驗結果。
表1-1人臉數據集
表1-2ar人臉庫上不同特征的實驗結果
表1-3yale人臉庫上不同特征的實驗結果
表1-4yaleb人臉庫上不同特征的實驗結果
表1-5不同分類器下的實驗結果
由表1-2、1-3、1-4可以得知,hog特征相比原始特征具有更好的識別效果:ar人臉庫平均提高了3個百分點;yale人臉庫平均提高了11個百分點;yaleb人臉庫平均提高了8個百分點。降維后的數據對比中,基于hog特征的降維方法也取得了較好的識別效果。降維的主要作用是減少計算量,同時也能提高識別效果。在本實驗中,yale人臉庫上基于hog特征降維的方法并沒有比基于hog特征的方法識別率高,只是節(jié)省了分類識別時間。從表1-5可以得出:集成思想的分類器比單分類器具有更好的分類識別能力,而且gadesen算法相比bagging算法提高了識別率,在yaleb數據庫中效果更明顯。
在人臉庫等數據集上的對比驗表明,提出的gadesen算法不降低集成泛化誤差的前提下更有利于去搜尋基分類器數目少的個體。從而達到了泛化誤差能力強和復雜度低的目的,有效地提高了人臉識別的準確率,減少了基分類器數目,降低了存儲成本。