陳 星,李丹楊,何 慶
(貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院,貴州 貴陽 550025)
人臉表情識別主要通過眼睛、嘴巴、眉毛和其它人臉特征識別人類個體的內(nèi)在情感[1]。人臉表情識別在心理學(xué)、人機交互以及自動駕駛等領(lǐng)域[2-4]具有重要作用。當(dāng)使用表情圖片進行情感分析時,其結(jié)果受圖片亮度、圖片完整程度、拍攝者的種族以及拍照角度等因素影響,從而增加了表情識別難度,因此需要繼續(xù)進行人臉表情識別研究并提高識別效果。
研究表明,使用多分類器的集成學(xué)習(xí)比使用單一分類器在人臉表情識別領(lǐng)域具有更高的準確率和魯棒性[5-6]。然而,集成學(xué)習(xí)也帶來了一些問題。基分類器池包含一些低識別率和冗余的分類器,它們會降低識別效果并增加存儲空間和運行時間的負擔(dān)。因此,解決此問題的集成剪枝研究逐漸興起。集成剪枝從基分類器池中剔除弱分類器和冗余分類器,將最優(yōu)能力的分類器保留下來進行集成,相比于集成學(xué)習(xí),該方法在降低算法時空復(fù)雜度的同時提高了最終的識別效果。然而,從全局搜索空間找到最優(yōu)的分類器子集仍是一個需要不斷研究的問題。
進化計算技術(shù)因其在整個搜索空間強大而高效的搜索能力受到了廣泛關(guān)注[7]。進化計算技術(shù)采用基于種群的隨機搜索方法將分類器選擇視為一個尋求最優(yōu)解的過程,進一步提高了選擇最優(yōu)分類器子集的能力。遺傳算法[8]是一種經(jīng)典且高效的進化計算方法,二進制編碼方案的遺傳算法可以較容易地找到合適的分類器子集,且搜索空間遠小于其他進化計算方法。因此,本文使用遺傳算法進行分類器的選擇。
集成剪枝選擇的分類器應(yīng)是“好而不同”,需同時考慮兩個評價指標(biāo),即最低錯誤率和最少的分類器數(shù)量,因此使用集成算法進行分類器剪枝變成了一個多目標(biāo)優(yōu)化問題。多目標(biāo)優(yōu)化問題的解通常來源于帕累托前沿(Pareto Front,PF)。圖1給出了集成剪枝的雙目標(biāo)問題的PF,每一個點代表遺傳算法的一個染色體,由二進制0-1編碼構(gòu)成,1代表選擇對應(yīng)分類器,0代表不選擇相應(yīng)分類器。在PF上的解都是集成剪枝問題的最優(yōu)解。文獻[9]證明了使用多目標(biāo)遺傳算法進行分類器剪枝可以有效提高人臉表情識別的準確率。NSGA-Ⅱ[10]是一種經(jīng)典的多目標(biāo)優(yōu)化遺傳算法,但在此算法的交叉策略中仍沒有一種合適的策略既可以適合前期探索,又可以適合后期開發(fā)。
圖1 集成剪枝的帕累托前沿分布Figure 1. Pareto front distribution with ensemble pruning
本文提出了一種自適應(yīng)多目標(biāo)遺傳算法的集成剪枝(Adaptive Multi-objective Genetic Algorithm with Ensemble Pruning,AMGAEP),并將其用于人臉表情識別領(lǐng)域。AMGAEP是對NSGA-Ⅱ的改進,其改進主要有以下幾個方面:1)AMGAEP從4種交叉算子中自適應(yīng)地選擇一種合適的交叉算子進行染色體的交叉操作,而不是始終使用一種固定交叉算子。該方法通過輪盤賭和貪婪優(yōu)化的方法自適應(yīng)地確定各個交叉算法的優(yōu)先級,從而在算法的不同階段選擇不同的交叉算子,其目標(biāo)是充分利用不同交叉算法的搜索能力,選擇一組數(shù)量少、分類精度高的最優(yōu)分類器子集。2)AMGAEP考慮了交叉概率和變異概率隨著算法更新過程也應(yīng)該進行動態(tài)變化的情況,并設(shè)計了一種新的變異概率計算機制。3)AMGAEP使用一種最新的擁塞距離計算方法,促進了PF上解均衡分布。
為提升人臉表情識別的性能,本文提出了AMGAEP,其框架如圖2中所示。首先,采用訓(xùn)練集和驗證集構(gòu)建基分類器池;然后,使用多目標(biāo)遺傳算法在驗證集的預(yù)測標(biāo)簽中生成PF;最后,利用測試集在PF中測試各個解的效果并找到最優(yōu)解從而獲得最終的決策結(jié)果。
圖2 AMGAEP的流程Figure 2. Flow of AMGAEP
集成剪枝的有效性在較大程度上依賴基分類器的多樣性和錯誤率,多樣性越高且錯誤率越低,集成剪枝的效果就越好。卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)在人臉表情識別領(lǐng)域已經(jīng)取得了不錯的識別效果[11-12]。為了保證最終集成剪枝的誤差較少,本文采用CNN作為基分類器,同時通過改變CNN的參數(shù)和網(wǎng)絡(luò)結(jié)構(gòu)來滿足基分類器多樣性的要求,CNN結(jié)構(gòu)如圖3所示。
圖3 CNN結(jié)構(gòu)Figure 3. Structure of CNN
本文使用TensorFlow深度學(xué)習(xí)框架構(gòu)造了231個不同的CNN模型,每個CNN模型包含k層。其中,前兩層被固定為卷積層和池化層,最后一層被固定為Softmax層。CNN模型的每一層包含較多參數(shù),例如卷積核的大小、池化核的大小和隨機失活等,參數(shù)的取值范圍如表1所示。
表1 生成的CNN模型參數(shù)范圍
本文使用cj(xj)表示j個分類器對i個樣本實例的一個預(yù)測值,則預(yù)測矩陣P∈Rm×n如式(1)所示。
(1)
AMGAEP使用多目標(biāo)遺傳算法對基分類器池進行分類器的剪枝,將選擇分類器過程視為最優(yōu)分類器子集過程。
1.3.1 種群初始化
本文直接使用二進制編碼,即0-1編碼來進行分類器選擇問題。如果一個染色體的編碼為100001,則表示選擇第一個和最后一個分類器進行集成。
1.3.2 目標(biāo)函數(shù)
AMGAEP從分類器池中選擇出來的分類器要滿足“好而不同”的特點,即選出來的分類器不僅錯誤率低,而且滿足數(shù)量少的特點,因此本文使用分類器的錯誤率和選擇分類器的數(shù)量作為目標(biāo)函數(shù)。錯誤率err的目標(biāo)函數(shù)為
(2)
其中,X是一個解;NError和NAll分別為樣本中錯誤預(yù)測實例和所有實例的數(shù)量。
選擇分類器數(shù)量的目標(biāo)函數(shù)為
(3)
其中,xi是一個染色體第i個值;D是分類器的數(shù)量。
1.3.3 新穎的動態(tài)突變率更新策略
本文目標(biāo)為算法在探索前期進行更多地突變以便進行更全面地全局搜索,而在探索后期盡量減小突變的發(fā)生,避免跳出最優(yōu)值,因此AMGAEP設(shè)計了一種自適應(yīng)步長的方法,使得突變概率能夠隨迭代次數(shù)自動變化。突變概率pu的計算式為
(4)
其中,δ一個可變參數(shù),本文設(shè)為0.1;t是當(dāng)前迭代次數(shù);maxIter是最大迭代次數(shù)。突變概率的動態(tài)變化如圖4所示。
圖4 突變率動態(tài)更新曲線Figure 4. Dynamic update chart of mutation rate
1.3.4 新穎的自適應(yīng)交叉策略
染色體交叉就是交換父代染色體并重新組合從而生成新的子代染色體的過程,常見的二進制交叉有單點交叉[7]、雙點交叉[7]、均勻交叉[7]和卡牌交叉[7]等。本文使用上述4種交叉操作作為基本的交叉策略,并引用輪盤賭和貪婪的方式進行染色體自適應(yīng)交叉操作。
首先,該方法將4種策略的優(yōu)先級設(shè)為1,每個策略的優(yōu)先級隨著搜索階段的變化而變化。其次,根據(jù)每個策略的優(yōu)先級大小,該方法通過輪盤堵的方式選擇合適的交叉策略。優(yōu)先級越大代表被選擇的概率越高。同時,本文使用貪婪的策略進行優(yōu)先級的更新,當(dāng)一種交叉策略生成的子代染色體支配父代染色體時,該優(yōu)先級會加1。策略被選擇的概率描述為
(5)
其中,PAi是第i個交叉策略被選擇的概率;si是該策略的優(yōu)先級。如果一個策略生成的子代支配其父代,表明該策略適合當(dāng)前搜索階段,可增加該策略的優(yōu)先級。
如圖5所示,圓中的每個扇形區(qū)域代表一個交叉策略(S1、S2、S3、S4)的優(yōu)先級,策略優(yōu)先級越高,所占的比例越大,表示該策略被選擇的概率越大。初始時,每種策略的優(yōu)先級相同,隨著探索深度的增加,每個策略的優(yōu)先級會發(fā)生變化,優(yōu)先級的值會變得不同。根據(jù)式(5)可得到相應(yīng)策略被選擇的概率,因此每個策略被選中的概率也會不同。在算法每一代結(jié)束時,重新初始化每個策略的優(yōu)先級,以防止當(dāng)前一代的策略選擇影響到下一代。交叉策略自適應(yīng)選擇與更新的詳細描述如算法1所示。
算法1 自適應(yīng)交叉策略選擇與更新輸入:策略優(yōu)先級Sm,m∈{1,2,3,4},父代總?cè)?。輸?策略優(yōu)先級Sm,m∈{1,2,3,4},兩個子代。1.用式(5)計算每個策略被選擇的策略SPm2.輪盤賭選擇一個策略SPm3.ifSPm==14. 使用單點交叉策略生成兩個子代5. if有一個子代支配一個父代6. s1=s1+17.else if SPm==28. 使用雙點交叉策略生成兩個子代
圖5 輪盤賭優(yōu)先級Figure 5. Roulette plugging priority
1.3.5 AMGAEP的其他部分
在算法的染色體選擇階段,AMGAEP使用錦標(biāo)賽選擇方法選擇兩個子代種群,每個子代種群的數(shù)量是父代種群的一半,將兩個子代種群合并得到一個大小和原始父代種群一樣的子代種群。
(6)
本文使用文獻[14]所提方法計算染色體在探索過程中的交叉概率,實現(xiàn)交叉概率的動態(tài)更新,交叉概率pc的計算式為
(7)
其中,pc0是一個控制因子,控制交叉概率的變化程度,本文設(shè)為0.8;c是一個可調(diào)參數(shù),本文設(shè)為0.5;t是當(dāng)前迭代次數(shù);maxIter是最大迭代次數(shù)。
在算法的其他部分,AMGAEP與原始NSGA-Ⅱ保持一致。AMGAEP算法的標(biāo)準處理過程如算法2所示。
算法2 AMGAEP輸入:訓(xùn)練集T={(xi,xj)}ni=1,驗證集V={(xi,xj)}ni=1,測試集T={(xi,xj)}ni=1。輸出:集成剪枝錯誤率err,最優(yōu)的分類器子集cls={ci(x)}ki=1。1.使用訓(xùn)練集訓(xùn)練一組基分類器C={ci(x)}mi=1
本文主要研究分類器的選擇,因此分類器的集成使用一種簡單策略,即大多數(shù)投票法,其計算式為
(8)
其中,e=1,2,…,7;k是分類器的數(shù)量。如果分類器j對樣本i的預(yù)測值等于e,則φ(·)=1,否則φ(·)=0。
本文實驗電腦配置如下:Windows系統(tǒng)及主頻為2.3 GHz Intel i7-11800H 的CPU和NVIDIA RTX3060顯卡。
表2 5個數(shù)據(jù)集中每種表情的詳細信息
AMGAEP在每個數(shù)據(jù)集上各自進行10次實驗,將10次實驗得到的帕累托前沿進行組合,再將組合的結(jié)果進行非支配排序,從而得到新的帕累托前沿并將此作為10次實驗的結(jié)果。將最大迭代次數(shù)maxIter設(shè)為500,種群大popsize設(shè)為300。
在得到的PF中,將兩端的兩個解剔除,用測試集測試其余解的性能,挑選錯誤率最低的解作為本文方法獲得的最優(yōu)解,從而得到集成剪枝的錯誤率和分類器子集數(shù)量。
本文算法對分類器進行剪枝,剪枝前后分類器的分布情況如圖6所示,圖6(a)和圖6(b)分別為集成剪枝前后基分類器的錯誤率分布情況。
(a)
圖6中的小黑點表示存在相應(yīng)的分類器有對應(yīng)的誤差值。圖6(b)是誤差值分布的正態(tài)曲線。由圖6可知,剪枝后的分類器數(shù)量明顯減少且主要集中在錯誤率更低的區(qū)間。但剪枝后仍存在一部分弱分類器,由于本文使用大多數(shù)投票進行集成,因此較少部分分類器不會影響最終的集成效果。
如圖7所示為5個數(shù)據(jù)集中7種表情的歸一化混淆矩陣,圖中行代表真實標(biāo)簽,列代表預(yù)測標(biāo)簽。元素越大,主對角線上的顏色越深,表示預(yù)測標(biāo)簽和真實標(biāo)簽之間的一致性越高,某個表情的識別率越高。
(a)
將AMGAEP在5個數(shù)據(jù)集上與一些集成剪枝方法進行了比較,結(jié)果如表3所示。
表3 AMGAEP與8種集成剪枝方法的錯誤率比較
為驗證基分類器性能的好壞影響集成剪枝的最終結(jié)果,本文使用EfficientNet[21]和ConvNeXt[22]作為基分類器,通過更改其參數(shù)獲得了30個不同的基分類器模型,包含10個EfficientNet模型和20個convNeXt模型。增加優(yōu)質(zhì)分類器數(shù)量會增加集成剪枝的性能且在任何一個數(shù)據(jù)集上均具有相同效果。本文僅在KDEF數(shù)據(jù)集上進行實驗,這30個模型在KDEF數(shù)據(jù)集上的錯誤率為0.23~0.28。將這30個基分類器與之前的231個基分類器組合,從而構(gòu)成了一組新的基分類器池,共計261個基分類器。
在新的基分類器池中,AMGAEP在KDEF數(shù)據(jù)集上的結(jié)果如表4所示。與表3相比,在新基分類器池中具有更低的錯誤率,說明基分類器模型性能的好壞影響集成剪枝的最終識別結(jié)果。
表4 AMGAEP在新基分類器池中的效果
在新的基分類器池中,AMGAEP在KDEF數(shù)據(jù)集上的歸一化混淆矩陣如圖8所示。與圖7(e)相比,在新的基分類器池中,本文方法對disgust 和 fear具有更高的識別率,進一步說明了基分類器性能越好,集成剪枝的效果越好。然而,AMGAEP并未在新基分類器池中取得顯著性提升,這是因為基分類器池中的弱分類器會影響集成剪枝的識別結(jié)果。提升集成剪枝的整體效果需要向基分類器池中添加更多具有多樣性的優(yōu)質(zhì)分類器,提高集成剪枝的基線,從而取得更好的識別效果。
圖8 AMGAEP在KDEF數(shù)據(jù)集中的歸一化混淆矩陣Figure 8. Normalized confusion matrix of AMGAEP in the KDEF data set
本文提出了一種新的自適應(yīng)多目標(biāo)遺傳算法用于分類器的剪枝,提出了新的自適應(yīng)突變概率計算式,以獲得一組分類器數(shù)量更少、學(xué)習(xí)能力誤差更低的分類器子集。在交叉策略自適應(yīng)階段,使用輪盤賭和貪婪策略動態(tài)更新每個交叉策略的優(yōu)先級,根據(jù)優(yōu)先級計算每個策略被選中的概率,從而在算法探索開發(fā)過程中自適應(yīng)地選擇合適的交叉算子生成子代,增強算法在搜索空間的探索能力。突變概率的動態(tài)更新使得所提算法在探索階段更注重全局搜索,而在后期階段則側(cè)重于局部開發(fā)。在5個真實人臉表情數(shù)據(jù)集上將本文提出的AMGAEP與一些集成剪枝方法進行對比。實驗結(jié)果表明,AMGAEP可以選出誤差更低、冗余度更小的分類器子集,提升集成剪枝的效果。
在未來的工作中,本文將考慮使用更多的表情圖片去訓(xùn)練基分類器以降低分類器模型過擬合的影響。同時,在基分類器池中添加最新的神經(jīng)網(wǎng)絡(luò)模型以提高識別效果。最后,本文考慮將方法應(yīng)用于公共安全和健康領(lǐng)域去增加該方法的泛化能力。