王軍祥,吳 伶
(1.福建船政交通職業(yè)學(xué)院信息與智慧交通學(xué)院,福州 350007;2.福州大學(xué)數(shù)學(xué)與計算機科學(xué)學(xué)院,福州 350108)
基于面部圖像的年齡估算旨在找到一種可將面部圖像映射到其相應(yīng)的年齡標(biāo)簽函數(shù)。隨著諸如安全控制、社交媒體和人機交互等多種實際需求的不斷增長,年齡估算越來越受到人們的關(guān)注。但由于表情、光照、性別、種族、基因、居住環(huán)境與生活方式等許多內(nèi)在和外在因素的存在,年齡估算問題一直非常具有挑戰(zhàn)性。
近年來年齡估算問題研究取得一定的進(jìn)展,但現(xiàn)有的大多數(shù)研究都使用同構(gòu)數(shù)據(jù)集年齡估算評估協(xié)議,即假定在訓(xùn)練和測試階段中使用的所有圖像都是在相似條件下獲得的。但基于同構(gòu)數(shù)據(jù)集學(xué)習(xí)到的模型可能會偏向訓(xùn)練集中圖像的特征及分布,從而導(dǎo)致在條件完全不同的情況下年齡估算性能較差。因此在實際的應(yīng)用中更應(yīng)該關(guān)注異構(gòu)數(shù)據(jù)集的年齡估算,即訓(xùn)練集與測試集應(yīng)具有不同的分布和特征,這樣訓(xùn)練后的模型便完全不了解目標(biāo)數(shù)據(jù)集的特征,更符合實際場景。
異構(gòu)數(shù)據(jù)集評估協(xié)議對現(xiàn)有年齡估算方法在實際應(yīng)用中的效果提出了更高的要求,即要求訓(xùn)練好的模型不僅要在同構(gòu)數(shù)據(jù)集下能夠準(zhǔn)確估算面部圖像的年齡,還要在異構(gòu)數(shù)據(jù)集下有效地工作。但為了能更好地符合實際場景,并且更好地評估年齡估算方法的泛化性能,本文提出一種異構(gòu)數(shù)據(jù)集評估協(xié)議。
隨著機器學(xué)習(xí)技術(shù)的發(fā)展,已有文獻(xiàn)提出許多基于深度學(xué)習(xí)的年齡估算方法。文獻(xiàn)[1]提出了一種非線性回歸算法,利用分而治之的策略來考慮年齡的位次信息。文獻(xiàn)[2]通過訓(xùn)練一系列二元卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN)模型獲得年齡標(biāo)簽的順序信息,其中每個二元分類器用來判定輸入面部圖像的年齡是否超過特定年齡,最終年齡值通過計算CNN 輸出的總和而得出。盡管基于回歸的方法比較直觀,但是性能常常不盡如人意?;诜诸惖姆椒ǎ??5]將年齡估算問題建模為一個多類別的分類問題,并將不同的年齡視為獨立的類別。在訓(xùn)練階段,這些方法嘗試使用交叉熵(Cross entropy,CE)損失函數(shù)來學(xué)習(xí)判別性特征。文獻(xiàn)[6?7]對CE 損失函數(shù)附加了不同項的正則化,從而懲罰預(yù)測年齡與真實年齡之間的差異,其中文獻(xiàn)[7]附加了均值方差正則化項,均值正規(guī)化懲罰了預(yù)測年齡與真實年齡之間的均值差異,而方差正則化項懲罰它們之間的方差差異。文獻(xiàn)[8]提出將年齡標(biāo)簽編碼為概率分布,以此將年齡標(biāo)簽的局部相關(guān)性引入訓(xùn)練過程,這種方法將年齡估計問題建模為分布學(xué)習(xí)問題。
鑒于損失函數(shù)的選擇會對域泛化(異構(gòu)數(shù)據(jù)集測試)產(chǎn)生巨大影響,本文在分布學(xué)習(xí)基礎(chǔ)上,提出了一種基于分布構(gòu)造(Distribution construction,DC)的損失函數(shù),以改善在同構(gòu)和異構(gòu)數(shù)據(jù)集場景中模型的泛化能力。在傳統(tǒng)的同構(gòu)數(shù)據(jù)集評估協(xié)議和提出的異構(gòu)數(shù)據(jù)集估計協(xié)議下,對所提出的損失函數(shù)進(jìn)行實驗,在多個數(shù)據(jù)集下與其他方法進(jìn)行了比較,結(jié)果表明了本文方法的有效性。
令{(xn,yn),n= 1,2,…,N}表示樣本容量為N的訓(xùn)練集,其中xn和yn分別代表第n張輸入圖像及其相應(yīng)的年齡標(biāo)簽。年齡標(biāo)簽yn是屬于年齡標(biāo)簽L={lmin,…,lmax}中的標(biāo)量值,并且令lmin= 1,lmax=K。年齡估算的目標(biāo)是學(xué)習(xí)輸入的面部圖像xn及其對應(yīng)的年齡標(biāo)簽yn之間的映射函數(shù)。若年齡估算模型使用one?hot 編碼來表示年齡標(biāo)簽,即標(biāo)簽yn由二進(jìn)制向量來編碼,若面部樣本xn屬于L中的第k個標(biāo)簽,則,否則。通過此種建模,年齡估算問題就轉(zhuǎn)為了一般的分類問題,其中分類目標(biāo)是訓(xùn)練CNN 模型以在輸入人臉圖像xn及其對應(yīng)的年齡標(biāo)簽sn之間找到映射函數(shù)f:xn→sn。然而,年齡估算問題不同于一般的模式識別問題,這是由于相仿年齡的面部通常具有非常相似的圖像特征。這種語義相關(guān)性會導(dǎo)致視覺標(biāo)簽的歧義性[9]。在one?hot年齡標(biāo)簽建模中,通常假定標(biāo)簽是不相關(guān)的,而忽略年齡標(biāo)簽的相關(guān)性會導(dǎo)致網(wǎng)絡(luò)訓(xùn)練過程中出現(xiàn)不一致問題[9]。
通過將年齡估算編碼為標(biāo)簽分布,文獻(xiàn)[8]減輕了訓(xùn)練階段的年齡標(biāo)簽歧義問題。類似地,本文對于每個輸入樣本xn也使用標(biāo)簽分布。此時假設(shè)qn的每個元素都是在[0,1]范圍內(nèi)的實數(shù),并且約束條件為。根據(jù)此定義,年齡標(biāo)簽服從相同的概率分布,此時表示在L中第k個標(biāo)簽的面部樣本xn的概率。通過這種類型的建模,年齡估算轉(zhuǎn)化為分布學(xué)習(xí)問題。此時訓(xùn)練CNN 的目標(biāo)是通過解決式(1)這樣一個最小化問題,求解輸入面部圖像xn與對應(yīng)標(biāo)簽分布qn之間的映射函數(shù)f:xn→pn,即
式中:L(·)為損失函數(shù);zn=f(xn;Φ) ∈RK表示位于softmax 層之前的CNN 輸出;Φ表示CNN 網(wǎng)絡(luò)的參數(shù)。 softmax 函數(shù)將向量zn映射為概率分布pn,即范圍為[0,1]的實數(shù)向量,其總和為1。pn的每個元素(即)表示樣本xn屬于年齡k的概率,即為。
本文將標(biāo)簽分布定義為高斯分析[10],即對于每個年齡標(biāo)簽均以yn為中心、以σ為標(biāo)準(zhǔn)差控制年齡分布值的形狀(寬度)。對所有年齡段的標(biāo)簽分布,并恒令σ= 2[9]。
此外,不同于大多數(shù)年齡估算方法采用的同構(gòu)數(shù)據(jù)評價協(xié)議,本文提出一種異構(gòu)數(shù)據(jù)集評估協(xié)議。異構(gòu)數(shù)據(jù)集可以看作是域自適應(yīng)[11]或域泛化[12]。域自適應(yīng)意味著模型是使用源域中的訓(xùn)練數(shù)據(jù)而設(shè)計的,而工作于與源域完全不同的目標(biāo)域。一般的機器學(xué)習(xí)模型便是如此,因為其通常從目標(biāo)域中獲取的有標(biāo)記數(shù)據(jù)(即有監(jiān)督的域自適應(yīng))或未標(biāo)記的數(shù)據(jù)(即無監(jiān)督的域自適應(yīng))的數(shù)量很少。域自適應(yīng)的方法通常包括將源域中的數(shù)據(jù)重新映射到目標(biāo)域,并使用此轉(zhuǎn)換后的源域數(shù)據(jù)重新設(shè)計決策系統(tǒng)。但是在許多場景下,尤其是在年齡估算問題中,采用這種方法是不可行的。例如,假設(shè)一個基于域自適應(yīng)的年齡估算模型正在估算用戶上傳到其中的測試圖像的年齡值,此時若測試圖像是從與訓(xùn)練所使用的相同目標(biāo)域中獲得的,則模型將表現(xiàn)良好;然而年齡估算系統(tǒng)要求的是在任何輸入圖像上都必須表現(xiàn)良好?;谶@一重要需求,研究中需要開發(fā)一個學(xué)習(xí)框架,盡管在訓(xùn)練階段對目標(biāo)域沒有先驗知識的了解,但仍然在目標(biāo)域中表現(xiàn)良好。
與域自適應(yīng)不同,域泛化指的是預(yù)測先前從未了解過的領(lǐng)域中樣本的標(biāo)簽,而無需訪問目標(biāo)域。此時便需要在訓(xùn)練過程中獲取到任意數(shù)量的相關(guān)域中的樣本,目的是希望所學(xué)知識能很好地融合到先前未了解的領(lǐng)域。本文方法基本屬于域泛化,差異在于本文方法放寬了在訓(xùn)練階段必須訪問某些相關(guān)領(lǐng)域的要求,具體即為本文在一個數(shù)據(jù)集上訓(xùn)練模型并使用另一個不同的外部環(huán)境(例如成像條件等)與內(nèi)部條件(例如種族等)的數(shù)據(jù)集進(jìn)行測試。
本文學(xué)習(xí)算法的主要目標(biāo)是最大程度地減少預(yù)測標(biāo)簽與真實標(biāo)簽分布之間的距離。 現(xiàn)有的CE 和KL(Kullback Leibler)損失函數(shù)已被廣泛應(yīng)用于訓(xùn)練使用one?hot 編碼和標(biāo)簽分布的基于CNN 的年齡估算模型。本節(jié)從理論上對這些損失函數(shù)進(jìn)行分析,以說明其在訓(xùn)練基于CNN 的年齡估算模型時的局限性。下文為了簡潔起見而省略了索引n。
1.2.1 CE 損失函數(shù)
當(dāng)年齡標(biāo)簽采用one?hot 編碼時,CE 損失是訓(xùn)練CNN 最常使用的損失函數(shù)。該損失假設(shè)這些類別是獨立的,因此對于年齡估算問題而言,采用CE 損失函數(shù)學(xué)習(xí)到的網(wǎng)絡(luò)模型會忽略標(biāo)簽相關(guān)性。為了緩解此問題,文獻(xiàn)[27]將CE 損失函數(shù)與均值和方差項結(jié)合使用提出CE?MV 損失函數(shù),以考慮年齡標(biāo)簽之間的語義相關(guān)性,即
式中:λ1和λ2為正則化參數(shù);μp和σ2p分別為估計分布p的均值和方差。第1 項(交叉熵項)最大化了真實類別的預(yù)測概率;第2 項(均值項)懲罰了預(yù)測向量p的平均值μp與每個輸入樣本x的真實年齡標(biāo)簽y之間的差異值;第3 項(方差項)最小化預(yù)測向量p的標(biāo)準(zhǔn)差σp。
CE 損失所帶來的問題是由于其正規(guī)化項而導(dǎo)致的參數(shù)訓(xùn)練不穩(wěn)定,即在訓(xùn)練過程中出現(xiàn)異常值時,正則化項會網(wǎng)絡(luò)導(dǎo)致較大的誤差,從而導(dǎo)致梯度爆炸。
1.2.2 KL 損失函數(shù)
當(dāng)年齡標(biāo)簽被編碼為標(biāo)簽分布時,KL 散度是最為常用的訓(xùn)練CNN 的損失函數(shù)[8,10]。 KL 損失函數(shù)定義為
式中:p和q為預(yù)測的標(biāo)簽分布和實際標(biāo)簽分布,該函數(shù)的取值范圍為[ 0,∞)(若兩個分布完全匹配,則LKL(p,q) = 0)且KL 損失函數(shù)越低,p與q匹配越好。
KL 損失函數(shù)的問題在于它不是對稱的,即LKL(p,q) ≠LKL(q,p)。KL 損失函數(shù)的這種不對稱性會導(dǎo)致:若qk大于pk,則rk=qklog (qk/pk)值為正;反之,若qk小于pk,則會使rk為負(fù),從而導(dǎo)致在整個年齡范圍內(nèi)匹配過程的不均勻性。
KL 損失函數(shù)的另一個問題是在反向傳播階段參數(shù)的更新規(guī)則。KL 損失函數(shù)相對于zi的偏導(dǎo)數(shù)通過鏈?zhǔn)椒▌t可以很輕易地得到:?LKL/?zi=pi-qi。顯然,在使用KL 散度作為損失函數(shù)時,模型參數(shù)的更新忽略了其他年齡區(qū)間值的貢獻(xiàn)而只考慮了涉及到的對應(yīng)年齡標(biāo)簽之間的差值,即pi-qi,這樣便會影響到網(wǎng)絡(luò)收斂后參數(shù)的魯棒性。
與CE 損失函數(shù)的改進(jìn)方案類似,伴有正則化項的KL?M 函數(shù)為[13]
與原始的KL 損失函數(shù)相比,KL?M 損失函數(shù)使用期望回歸模塊作為正則化項對KL 損失函數(shù)的性能進(jìn)行改善。期望回歸模塊對估計的年齡分布平均值與真實年齡標(biāo)簽之間的差異進(jìn)行懲罰。然而,它也具有與CE?MV 損失函數(shù)相同的問題。
授課結(jié)束后,對環(huán)境衛(wèi)生學(xué)中的大氣部分知識進(jìn)行測試,試題數(shù)量為10道,每道1分,總分為10分。試題內(nèi)容涉及大氣顆粒物、大氣污染監(jiān)測布點、《環(huán)境空氣質(zhì)量標(biāo)準(zhǔn)》等。實驗班與對照班的試卷相同,比較兩班學(xué)生對于科研相關(guān)知識的掌握情況。
1.2.3 對稱損失函數(shù)
本節(jié)介紹2 個較常使用的對稱損失函數(shù),它們解決了之前損失函數(shù)的不對稱性問題。
(1)f?損失函數(shù)
令f:R+→R 為凸函數(shù)且f(1) = 0,概率分布p與q的f?損失函數(shù)[14]定義為
當(dāng)f(x) =-log(x) 時,f?損失函數(shù)便成為了KL 散度。
由于此損失函數(shù)是不對稱的,因此在附加對稱性后可得到[14]
(2)JS 損失函數(shù)
由于使用不同的損失函數(shù)會影響參數(shù)模型的性能優(yōu)劣,因此設(shè)計一個好的損失函數(shù)對基于CNN的年齡估算模型來說相當(dāng)重要。本文基于分布學(xué)習(xí)提出DC 損失函數(shù),定義為
式中α為介于0 到1 之間的超參數(shù)。當(dāng)時,DC 損失函數(shù)就變?yōu)榱烁怕史植紁與q之間的f?損失函數(shù)。當(dāng)α→0.5 時,提出的DC 損失函數(shù)接近文獻(xiàn)[16]中的損失函數(shù)。
1.3.1 DC 損失函數(shù)與用于年齡估算的損失函數(shù)的性能比較
對于年齡估算問題,本文提出的DC 損失函數(shù)具有以下良好特性:
(1)利用鏈?zhǔn)椒▌t,提出的損失函數(shù)LDC對向量z的每個元素的導(dǎo)數(shù)(具體推導(dǎo)過程略)為
從式(10)可以看出,本文提出的損失函數(shù)使得模型參數(shù)的更新規(guī)則取決于p和q的所有項。 與KL損失函數(shù)更新規(guī)則僅取決于目標(biāo)項pi-qi相比,它更加魯棒。
KL 與DC 損失函數(shù)在不同高斯分布下的性能對比如圖1 所示,其中圖1(a)為2 個原始的高斯分布,圖1(b)為KL 損失函數(shù)與圖1(a)的比率,圖1(c)為DC 損失函數(shù)與圖1(a)的比率。在圖1(b)中,兩個分布之間的距離在點A和點B處相等,但是在這些點處的r值卻不同。因此,當(dāng)qk大于pk時對總誤差的貢獻(xiàn)要比qk較小時對總誤差的貢獻(xiàn)更大。這也意味點A對總誤差的貢獻(xiàn)要大于點B。因此可以得出結(jié)論:在使用KL 損失函數(shù)對距離進(jìn)行最小化后,當(dāng)qk大于pk時,pk對qk有更好的擬合度;而當(dāng)qk較小時,則反之。
(2)與現(xiàn)有的損失函數(shù)相反,對于[0,1]區(qū)間中的任何α值,DC 損失函數(shù)都是對稱的(圖1(c))。由于這種特性,參數(shù)的迭代過程將在整個年齡區(qū)間范圍內(nèi)均勻執(zhí)行。
圖1 KL 與DC 損失函數(shù)在不同高斯分布下的性能對比Fig.1 Performance comparison with KL and DC loss functions under two normal distributions
(3)DC 損失函數(shù)解決了穩(wěn)定性問題,即與CE?MV 和KL?M 損失函數(shù)相比,沒有任何正則化項,從而避免了參數(shù)波動并有助于網(wǎng)絡(luò)收斂。(4)與CE?MV 和KL?M 的關(guān)系如下:令α=0.5,此時本文損失函數(shù)可重寫為
輸出為平均值為μp和標(biāo)準(zhǔn)偏差為σp的高斯分布p。此時的C便具有如下閉式表達(dá)[17]
對式(12)取自然對數(shù)求相反值后,DC 損失函數(shù)的最小值等價于式(13)的最小值。
由式(13)可以看出,與CE?MV 和KL?M 損失函數(shù)類似,DC 損失函數(shù)隱式地懲罰了年齡估算分布與真實年齡分布之間的差異,并且其年齡估算分布與均值周圍。此外,式(13)中的(μp-μ q)2項使用了方差值進(jìn)行歸一化,也減輕了由異常值引起的同樣出現(xiàn)于CE?MV 和KL?M 損失中的不穩(wěn)定性問題。
1.3.2 DC 損失函數(shù)與其他損失函數(shù)的性能比較
本節(jié)將DC 損失函數(shù)與JS 損失函數(shù)和χ2?統(tǒng)計量進(jìn)行比較。首先重新構(gòu)造函數(shù),簡單起見下文令α為0.5。通過因式分解和級數(shù)展開[18]可以將Lχ2,LJS和LDC與Lf(p,q) =聯(lián)系起來,其中sk=pk+qk,dk=|pk-qk|。此時每個函數(shù)Gf(·) 中的Lχ2,LJS和LDC之間的關(guān)系可以推導(dǎo)為
式中:sk∈[0,2],dk∈[0,1]。
然后分析不同損失函數(shù)之間的比率。對于常數(shù)sk,比率定義為和,對比曲線如圖2 所示。由圖2 可見,當(dāng)誤差dk適中時,比率較為平坦;當(dāng)dk→1 時恰好達(dá)到最大比率;而當(dāng)pk→qk時則達(dá)到最小比率。圖2 結(jié)果為DC 損失函數(shù)的相對性質(zhì)提供了最直觀的解釋。當(dāng)誤差較大時,DC 損失函數(shù)與Gχ2有相似的糾錯能力[14]。因此在早期訓(xùn)練階段,當(dāng)誤差很大時兩個函數(shù)以相同的方式對誤差進(jìn)行修正。但是,隨著訓(xùn)練過程的繼續(xù)進(jìn)行和誤差越來越小,DC 損失函數(shù)將減小誤差的影響。當(dāng)誤差接近零時,將不再關(guān)注估算分布與實際分布中的對應(yīng)點,這種屬性會減少訓(xùn)練過程對不屬于分布點的關(guān)注,從而可以穩(wěn)定訓(xùn)練過程。與GJS的關(guān)系同樣類似,DC 損失函數(shù)總是提供比GJS更強的響應(yīng)。從圖2 可以看出,DC 損失函數(shù)在處理不同誤差時更具“動態(tài)性”[15]。
圖2 不同損失函數(shù)的比率Fig.2 Ratio of different loss functions
年齡估算的性能主要以2 種度量指標(biāo)進(jìn)行評價:平均絕對誤差(Mean absolute error,MAE)與累計分?jǐn)?shù)(Cumulative score,CS)。MAE 定義為MAE =,其中l(wèi)k為測試樣本k的實際年齡值,l?k為估計到的年齡值,N為測試集的樣本容量。CS 定義為CS(j)=Ne≤j/N× 100%,其中Ne≤j為測試集中的絕對值誤差不低于j的圖像總數(shù),本文中的j設(shè)置為5。
(1)訓(xùn)練集
本文實驗選用IMDB?WIKI[19]數(shù)據(jù)集作為訓(xùn)練集。IMDB?WIKI 是目前最大的可用于年齡估算的開源數(shù)據(jù)集,它包含523 051 張圖像,且這些圖像的年齡標(biāo)簽介于0~100 歲之間。該數(shù)據(jù)庫的圖像是直接從網(wǎng)絡(luò)抓取得到,因此沒有經(jīng)過仔細(xì)篩選,所以包含許多不適合年齡估算的圖像。雖然文獻(xiàn)[5]手動清除了IMDB?WIKI 數(shù)據(jù)庫中所有低質(zhì)量的圖像,但是仍然有許多帶有錯誤標(biāo)簽的圖像,一定程度上影響了年齡估算的性能?;谖墨I(xiàn)[5]的結(jié)果,本文以一種半監(jiān)督的方式更加仔細(xì)地清理了IMDB?WIKI數(shù)據(jù)庫,并刪除了所有不合適的圖像。首先,本文使用MTCNN 面部檢測器[20]檢測每個圖像中的人臉;然后從數(shù)據(jù)庫中刪除了多人圖像(因為每個圖像只有一個年齡標(biāo)簽)、面部檢測器的置信度分?jǐn)?shù)低于檢測到的面部閾值(設(shè)置為0.9)的圖像以及檢測到的面部邊框尺寸小于一定值(設(shè)置為20 像素×20 像素)的圖像。 最終,通過人工逐張地檢查剩余的圖像,并刪除所有低質(zhì)量的圖像以及帶有錯誤標(biāo)簽的圖像。此外,還從中篩選出了0~100 歲的40 000 張圖像,構(gòu)成IMDB?WIKI?40k 數(shù)據(jù)集。相比IMDB?WIKI,IMDB?WIKI?40k 的類不平衡性很好地得到了解決。
(2)測試集
本文實驗選用MORPH[21]和FG?NET[22]數(shù)據(jù)集作為測試集。MORPH 數(shù)據(jù)集包含14~77 歲年齡段的13 647 名不同種族的55 174 張圖像,并且其中超過90% 的圖像是非洲或歐洲人。FG?NET 數(shù)據(jù)集包含1 002 張來自82 個人的圖像,年齡范圍是0~70 歲,其中的面部圖像在姿勢、表情和光照條件等方面皆存在巨大差異,因此FG?NET 更為符合實際場景當(dāng)中的面部圖像。
本文采用預(yù)訓(xùn)練后的VGG 模型[23]作為主干網(wǎng)絡(luò)進(jìn)行年齡估算。最后的全連接層2 048 被替換為K,其中K為年齡級數(shù)且在本文中設(shè)置為101;CNN 網(wǎng)絡(luò)的輸入是224 像素×224 像素大小的面部圖像;使用mini?batch 為80 的隨機梯度下降算法對整體參數(shù)進(jìn)行優(yōu)化;動量和權(quán)重衰減系數(shù)分別設(shè)置為0.9 和0.000 5;卷積層、前2 個全連接層和最后1 個全連接層的學(xué)習(xí)率分別初始化為0.001、0.001 和0.01;在每輪中學(xué)習(xí)率都采用指數(shù)下降的模式;采用隨機翻轉(zhuǎn)、裁剪和顏色抖動進(jìn)行數(shù)據(jù)增強。
訓(xùn)練集和測試集的每張圖像都通過以下兩個步驟進(jìn)行預(yù)處理:(1)采用MTCNN 面部檢測器[20]用于檢測每個圖像中的5 個面部標(biāo)志(眼睛的左右中心、鼻尖、左右角);(2)通過文獻(xiàn)[24]中提出的方法,使用面部關(guān)鍵點來使每個面部居中并對齊;(3)將標(biāo)準(zhǔn)化后的臉部調(diào)整為256 像素×256 像素。在測試時,對估計到的年齡分布p中通過y?= argmaxk pk計算來獲得預(yù)測年齡。
2.4.1 同構(gòu)數(shù)據(jù)集評估協(xié)議
本文采用了隨機分割協(xié)議和S1?S2?S3交叉驗證協(xié)議來評估MORPH 數(shù)據(jù)集上的年齡估算性能。MORPH 數(shù)據(jù)集中的圖像在性別與種族中的分布非常不平衡,其中男女比例約為5.5,白人與黑人的比例約為4。借鑒文獻(xiàn)[25?29],將MORPH 數(shù)據(jù)集分為3 個不重疊的子集S1、S2和S3,以緩解這種不平衡分布。這種劃分方式使男女比例約為3,而白人與黑人比例約為1。由此進(jìn)行了兩個實驗:(1)使用S1進(jìn)行訓(xùn)練,使用S2+S3進(jìn)行測試;(2)使用S2進(jìn)行訓(xùn)練,使用S1+S3進(jìn)行測試。本文實驗也使用上述2 個協(xié)議及其平均值評價性能,將這2 個協(xié)議分別定義為S1/S2+S3協(xié)議和S2/S1+S3協(xié)議。
2.4.2 異構(gòu)數(shù)據(jù)集評估協(xié)議
現(xiàn)有的年齡估算方法主要遵循同構(gòu)數(shù)據(jù)集評估協(xié)議,即訓(xùn)練和測試集來自同一數(shù)據(jù)集。例如在隨機分割協(xié)議中,隨機選擇數(shù)據(jù)集的80% 圖像進(jìn)行訓(xùn)練,其余的用于測試。使用同構(gòu)數(shù)據(jù)集評估協(xié)議而訓(xùn)練的模型可能會對訓(xùn)練集具有有偏性,并在面對未知信息的面部圖像時會提供不可靠的年齡結(jié)果。在許多實際場景中,測試和訓(xùn)練集中的分布和特征完全不同。因此,同構(gòu)數(shù)據(jù)集評估協(xié)議在評估年齡估算方法的泛化性能方面始終具有局限性。
本文提出了一種新穎的年齡估算評估協(xié)議,稱為異構(gòu)數(shù)據(jù)集評估協(xié)議(圖3),它使得年齡估算方法的性能評價更有意義。該協(xié)議主要考慮的是訓(xùn)練后的模型應(yīng)完全不了解測試數(shù)據(jù)集的分布及特征,這意味著不應(yīng)使用測試數(shù)據(jù)集中的任何圖像來訓(xùn)練網(wǎng)絡(luò)。此外,訓(xùn)練集和測試集也不應(yīng)該使用同一個人的不同條件下的面部圖像。這便是與同構(gòu)數(shù)據(jù)集協(xié)議的不同之處,在同構(gòu)數(shù)據(jù)集協(xié)議中,測試圖像與訓(xùn)練圖像來源于同一數(shù)據(jù)集。在本文的評估協(xié)議下,可以更可靠地評估訓(xùn)練模型的泛化能力。
圖3 兩種數(shù)據(jù)集層面的評估協(xié)議對比Fig.3 Comparison of different assessment protocols
2.5.1 超參數(shù)對性能的影響
本文提出的損失函數(shù)中唯一的超參數(shù)是α,因此本節(jié)評估其對年齡估算性能的影響。將α值從0.1更改為1,并使用VGG 模型在IMDB?WIKI 數(shù)據(jù)集中訓(xùn)練,然后在FG?NET 數(shù)據(jù)集中進(jìn)行驗證,得到的不同α值情況下的MAE,如圖4 所示。圖4 結(jié)果表明,當(dāng)0.4 ≤α≤0.55 時,α值對年齡估算的結(jié)果影響較??;當(dāng)使用較大或較小的α值時,年齡估算的性能會降低。 基于此分析,本文將α的值固定設(shè)置為0.5。
圖4 不同超參數(shù)對MAE 的影響Fig.4 Performance difference among differ?ent hyperparameters
2.5.2 采用同構(gòu)數(shù)據(jù)集評估協(xié)議的實驗對比
本節(jié)在同構(gòu)數(shù)據(jù)集評估協(xié)議下對本文年齡估算方法的性能與其他方法進(jìn)行比較。隨機分割、S1/S2+S3和S2/S1+S3協(xié)議下的MAE 值和CS 分值如表1、2 所示。
表1 MORPH 中采用隨機分割協(xié)議的性能對比Table 1 Performance comparison under random splitting protocol in MPORH
表1 中文獻(xiàn)[2]將年齡估算分類問題轉(zhuǎn)換為排序問題進(jìn)行解決;文獻(xiàn)[1]提出一種緊湊型級聯(lián)的基于上下文的年齡估算模型;文獻(xiàn)[30]使用帶有標(biāo)簽分布編碼的KL 和KL?M 損失函數(shù);文獻(xiàn)[7]采用CE?MV 作為損失函數(shù),并采用one?hot年齡標(biāo)簽編碼;文獻(xiàn)[31]提出可微的深度隨機森林;文獻(xiàn)[13]采用基于標(biāo)簽分布的年齡估算方法。從表1 中可以看出,本文方法在MORPH 數(shù)據(jù)集上的隨機分割協(xié)議下達(dá)到了最優(yōu)的性能。當(dāng)直接在MORPH 數(shù)據(jù)集上對模型進(jìn)行微調(diào)時(此時沒有在IMDB?WIKI 數(shù)據(jù)集上對網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練),MAE 值可以達(dá)到1.87。為了進(jìn)一步提高性能,在IMDB?WIKI 數(shù)據(jù)集上對網(wǎng)絡(luò)進(jìn)行了預(yù)訓(xùn)練,可以看出,本文方法得到的MAE 為1.84,這相比于其他方法中的最優(yōu)方法提高了0.13年。
表2 中文獻(xiàn)[27]采用基于“結(jié)構(gòu)”的年齡估算方法;文獻(xiàn)[32]進(jìn)行年齡差異的估算;文獻(xiàn)[33]引入輔助人口統(tǒng)計信息進(jìn)行年齡估算;文獻(xiàn)[34]先采用相關(guān)的屬性對年齡進(jìn)行分類,繼而采用排序方法進(jìn)行年齡估算;文獻(xiàn)[28]采用組編碼與解碼進(jìn)行年齡估算;文獻(xiàn)[35]采用軟排序?qū)?biāo)簽進(jìn)行建模。根據(jù)表2結(jié)果可以看出,本文方法無需在任何其他年齡相關(guān)的面部數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練即可實現(xiàn)2.8 的平均MAE。與其他方法中最優(yōu)的結(jié)果相比,CS 分值提高了0.18%。 同樣地,在采用IMDB?WIKI 數(shù)據(jù)集進(jìn)行預(yù)訓(xùn)練后進(jìn)一步提高了性能:MAE 為2.73,CS 為86.42%。從表2 中還可以看出,其他方法在S1/S2+S3和S2/S1+S3協(xié)議下的結(jié)果之間存在明顯差距,證實了現(xiàn)有方法對訓(xùn)練數(shù)據(jù)集的特征與分布變化(如性別,膚色等)較為敏感,而本文方法在兩種協(xié)議上的性能相差無幾。值得一提的是,文獻(xiàn)[34]通過采用多任務(wù)學(xué)習(xí)策略來提高訓(xùn)練模型對性別、種族等不同面部屬性特征的魯棒性,從而達(dá)到與本文方法相似的性能。然而,本文方法是在沒有利用其他屬性(例如性別和膚色等)的基礎(chǔ)上提高了訓(xùn)練模型的魯棒性。
表2 MORPH 中采用S1/S2+S3和S2/S1+S3協(xié)議的性能對比Table 2 Performance comparison under S1/S2+S3 and S2/S1+S3 protocols in MPORH
在同構(gòu)數(shù)據(jù)集評估協(xié)議下仿真的常見問題是測試到的結(jié)果帶有有偏性,而這種有偏性在S1/S2+S3和S2/S1+S3評估協(xié)議下體現(xiàn)得更加淋漓盡致。因此在該協(xié)議下,無法衡量年齡估算方法在對未知面部圖像的泛化能力。
2.5.3 采用異構(gòu)數(shù)據(jù)集評估協(xié)議的實驗對比
考慮到在同構(gòu)數(shù)據(jù)集評估協(xié)議下可能無法準(zhǔn)確度量年齡估算方法的性能,本節(jié)在本文提出的異構(gòu)數(shù)據(jù)集評估協(xié)議中進(jìn)行了更為有效的實驗。為了公平地進(jìn)行比較,本文在IMDB?WIKI 數(shù)據(jù)集訓(xùn)練了這些模型,此外還用JS 對稱損失函數(shù)和χ2?統(tǒng)計量訓(xùn)練VGG 模型以表明所提出的損失函數(shù)的有效性。采用異構(gòu)模型在不同目標(biāo)域的性能對比如表3、4 所示。
表3 采用異構(gòu)數(shù)據(jù)集評估協(xié)議在不同目標(biāo)域中的性能對比(訓(xùn)練集:IMDB?WIKI)Table 3 Performance comparison under proposed protocol and different testing sets (training set:IM?DB?WIKI)
表3 中文獻(xiàn)[36]使用排序CNN 進(jìn)行年齡估算;文獻(xiàn)[10]提出帶有標(biāo)簽歧義性的深度標(biāo)簽分布方法;文獻(xiàn)[28]進(jìn)行人口統(tǒng)計方面的統(tǒng)計。從表3、4 結(jié)果可以看出:
(1)文獻(xiàn)[10]和文獻(xiàn)[13]方法的年齡估計準(zhǔn)確性高于文獻(xiàn)[2]和文獻(xiàn)[7](CE?MV)方法,這表明標(biāo)簽分布有助于改善年齡估算的性能。這是因為在訓(xùn)練過程中,基于one?hot 編碼方式的損失函數(shù)并未考慮標(biāo)簽?zāi):裕╝mbiguity)的影響[10]。
(2)文獻(xiàn)[35]的MAE 和CS 與文獻(xiàn)[18]方法比較接近,這是因為文獻(xiàn)[35]和文獻(xiàn)[10]的算法具有線性關(guān)系[13]。應(yīng)當(dāng)強調(diào)的是,諸如CE?MV 和文獻(xiàn)[13]之類的方法分別在CE 和KL 損失函數(shù)中加入了正則項,正是由于這些正則化參數(shù)的大小不同,導(dǎo)致訓(xùn)練網(wǎng)絡(luò)的最終對正則化參數(shù)的選擇相當(dāng)敏感。與之不同,本文提出的損失函數(shù)沒有任何正則化超參數(shù),因此可以有效地緩解此問題,從而在年齡預(yù)測時保持良好的性能。
表4 采用異構(gòu)數(shù)據(jù)集評估協(xié)議在不同目標(biāo)域中的性能對比(訓(xùn)練集:IMDB?WIKI?40k)Table 4 Performance comparison under proposed protocol and different testing sets (training set:IM?DB?WIKI?40k)
(3)從表3 的下半部分可以推斷出,采用本文DC 損失函數(shù)進(jìn)行年齡估算時的準(zhǔn)確性顯著高于其他對稱損失函數(shù)(例如χ2統(tǒng)計量和JS 散度)所獲得的預(yù)測準(zhǔn)確性,這些結(jié)果也為第1 節(jié)中的理論分析增加了實驗支撐。因此可以得出,本文的方法在異構(gòu)數(shù)據(jù)集測試中具有良好的泛化能力,因此可以處理未知場景。
本文還進(jìn)一步使用MORPH 數(shù)據(jù)集對模型進(jìn)行訓(xùn)練以對異構(gòu)數(shù)據(jù)集評估協(xié)議進(jìn)行進(jìn)一步效果分析,結(jié)果如表5 所示??梢钥闯觯捎肕ORPH作為訓(xùn)練數(shù)據(jù)集時,所有方法的性能都會下降,但本文方法仍然是性能最好的方法。
表5 采用異構(gòu)數(shù)據(jù)集評估協(xié)議在FG?NET 中的性能對比(訓(xùn)練集:MORPH)Table 5 Performance comparison under proposed protocol and FG?NET (training set:MORPH)
當(dāng)比較同構(gòu)數(shù)據(jù)集評估協(xié)議(表1、2)和異構(gòu)數(shù)據(jù)集評估協(xié)議(表3、4)在MORPH 上的實驗結(jié)果時,發(fā)現(xiàn)在同構(gòu)數(shù)據(jù)集評估協(xié)議下達(dá)到較高的年齡估算準(zhǔn)確性并不能保證在面對未知目標(biāo)域時仍具有良好的性能。很顯然,未知情況會導(dǎo)致所有年齡估算方法的性能下降,這可能因為它們并沒有學(xué)習(xí)到在不同性別、不同光線變化、不同姿勢和不同面部表情變化的不同特征與分布的圖像特征。但是,無論在哪種評估協(xié)議中,本文方法仍然得到最優(yōu)的MAE 和最高的CS,這也進(jìn)一步說明了本文方法的有效性和魯棒性。
本文考慮年齡的標(biāo)簽值通常呈現(xiàn)局部相關(guān)性,將年齡估算問題建模為一個以真實年齡值為中心的高斯分布學(xué)習(xí)問題。為了使得模型參數(shù)學(xué)習(xí)到這種分布特征,提出了一個損失函數(shù)用于提供估計分布與真實分布之間的迭代逼近。然后,為了更好地評估年齡估算方法的泛化性能,與此前通常假設(shè)訓(xùn)練集與測試集中數(shù)據(jù)同特征同分布的同構(gòu)數(shù)據(jù)集評估協(xié)議不同,提出了更符合年齡估算方法的實際用例場景的異構(gòu)數(shù)據(jù)集評估協(xié)議。理論分析和實驗結(jié)果皆證明了本文方法的有效性。