沈?yàn)椋^(guò)一路,趙凱
①上海大學(xué) 通信與信息工程學(xué)院,上海 200444;②南開(kāi)大學(xué) 計(jì)算機(jī)與控制工程學(xué)院,天津 300071
人從降生的那一刻起,便帶有了年齡這一個(gè)屬性。年齡伴隨著人的一生,是一個(gè)人的重要生物特征。從年輕到衰老,年齡的變化常常反映在人的容貌上。人們第一次見(jiàn)面時(shí),總是會(huì)在心中估計(jì)對(duì)方的年齡從而更好地進(jìn)行交流。但是,有些人長(zhǎng)得年輕,而有些人比較顯老,因此,一個(gè)大概的年齡容易估計(jì)而準(zhǔn)確的年齡往往難以估計(jì)。有許多因素都會(huì)影響人的容貌,主要包含內(nèi)因和外因兩部分:內(nèi)因主要是先天基因的影響,由于每個(gè)人的基因都有所不同,導(dǎo)致了不同人的容貌千差萬(wàn)別,而且容貌隨年齡的變化也各有不同;而外因主要是后天生活環(huán)境的影響,如大量接觸紫外線會(huì)導(dǎo)致皮膚老化,長(zhǎng)期喝酒抽煙也容易衰老,生活不如意、長(zhǎng)期高強(qiáng)度的勞動(dòng)也會(huì)使衰老速度加快。各種因素都影響著人的容貌,每個(gè)人的容貌隨著時(shí)間的推移各自以不同的方式在發(fā)生著改變,所以將容貌與年齡準(zhǔn)確地聯(lián)系起來(lái)是一個(gè)比較困難的任務(wù)。
那么是否可以借助計(jì)算機(jī),也就是人工智能技術(shù),來(lái)自動(dòng)實(shí)現(xiàn)年齡估計(jì)呢?人工智能一直是許多科學(xué)家的夢(mèng)想,其目標(biāo)是讓計(jì)算機(jī)具有和人類(lèi)一樣的能夠感知和識(shí)別周?chē)鷪?chǎng)景的能力。比如讓計(jì)算機(jī)根據(jù)攝像頭的輸入圖像或者視頻,識(shí)別圖像中有哪些物體,這些物體在什么地方,這些物體的類(lèi)別是什么,有什么屬性。這樣一些問(wèn)題對(duì)于人類(lèi)來(lái)說(shuō)很簡(jiǎn)單,但是對(duì)于計(jì)算機(jī)來(lái)說(shuō)是不容易的。隨著人工智能技術(shù)的不斷發(fā)展,尤其是近幾年深度學(xué)習(xí)技術(shù)的飛速發(fā)展,人工智能正在逐步普及到我們的日常生活中。戰(zhàn)勝柯潔和李世石的AlphaGo、綜藝節(jié)目中的智能機(jī)器人、Siri智能語(yǔ)音識(shí)別、人臉識(shí)別門(mén)禁系統(tǒng),這些產(chǎn)品的背后都是基于深度學(xué)習(xí)的人工智能技術(shù)。
借助人工智能技術(shù)實(shí)現(xiàn)自動(dòng)年齡估計(jì),一直是人工智能領(lǐng)域的一個(gè)熱門(mén)問(wèn)題。在這個(gè)問(wèn)題上,計(jì)算機(jī)相比人類(lèi)甚至還具備一些優(yōu)勢(shì)。因?yàn)槿祟?lèi)也無(wú)法做到精確地去估計(jì)一個(gè)陌生人的年齡,而計(jì)算機(jī)可以通過(guò)海量的數(shù)據(jù)學(xué)習(xí),去作出最優(yōu)的估計(jì)。現(xiàn)在,自動(dòng)年齡估計(jì)在我們的生活中也有一些應(yīng)用。比如,我們用有些智能手機(jī)拍攝人臉的時(shí)候,人臉旁邊會(huì)顯示出一個(gè)年齡。一些網(wǎng)站也推出這樣的應(yīng)用:根據(jù)一個(gè)人的照片估計(jì)他的年齡(圖1)。
隨著互聯(lián)網(wǎng)的發(fā)展,各種潛在應(yīng)用的需求日益增加,人們對(duì)面部圖像的年齡估計(jì)越來(lái)越感興趣。它可以應(yīng)用于許多場(chǎng)景,例如:法醫(yī)學(xué)研究——用于刑事案件的偵察;基于年齡的人機(jī)交互系統(tǒng)——根據(jù)用戶的不同年齡,提供不同的交互界面,更好地為用戶服務(wù);基于年齡的訪問(wèn)控制,如禁止未成年人訪問(wèn)色情網(wǎng)站、購(gòu)買(mǎi)煙酒等。
如前所述,人類(lèi)的衰老是一個(gè)非常復(fù)雜、不受人的意志控制的過(guò)程,具有多樣性和不確定性的特點(diǎn)。這使得容貌與年齡之間的關(guān)系難以刻畫(huà),而年齡估計(jì)需要從單個(gè)人臉圖像中固定不變的人臉角度、表情來(lái)估計(jì)年齡,所以自動(dòng)年齡估計(jì)依然是一個(gè)很困難的問(wèn)題。隨著深度學(xué)習(xí)的發(fā)展,人臉年齡估計(jì)這個(gè)問(wèn)題被越來(lái)越廣泛地研究,估計(jì)效果也在變得越來(lái)越好。
接下來(lái),本文將深入淺出地介紹一些自動(dòng)年齡估計(jì)的方法,包括基于傳統(tǒng)人工智能技術(shù)的方法和基于深度學(xué)習(xí)技術(shù)的方法,其中詳細(xì)介紹我們發(fā)表在2017年人工智能領(lǐng)域頂級(jí)國(guó)際會(huì)議——IEEE計(jì)算機(jī)視覺(jué)與模式識(shí)別大會(huì)上的研究成果《基于深度森林的年齡估計(jì)》[1]。
圖1 圖像中的人臉年齡估計(jì)
如果給你一個(gè)人的正臉和側(cè)臉圖像讓你估計(jì)他的年齡,肯定是正臉的更容易估計(jì),也更容易估計(jì)得準(zhǔn)確,因?yàn)槲覀兡軓恼樀玫礁嗟男畔?,所以通常年齡估計(jì)需要的人臉圖像是正臉。在得到人臉圖像后,一般需要對(duì)人臉圖像進(jìn)行對(duì)齊、剪裁:將形狀各異的人臉圖像進(jìn)行歸一化處理,根據(jù)眼睛、鼻子、嘴角等人臉上的一些關(guān)鍵點(diǎn)進(jìn)行幾何變換,讓人臉盡可能處于正對(duì)的狀態(tài),同時(shí)剪裁掉多余的背景,去掉一些背景的干擾,讓人臉圖像更符合估計(jì)模型的需要,有利于提取人臉圖像的特征。
年齡估計(jì)主要可以分為年齡組估計(jì)和實(shí)際年齡估計(jì)兩類(lèi)。實(shí)際年齡估計(jì)是根據(jù)人臉圖像估計(jì)出人的真實(shí)年齡,也就是實(shí)足年齡;而年齡組估計(jì)是判斷人臉圖像屬于哪一個(gè)年齡范圍。從人工智能技術(shù)角度來(lái)說(shuō),年齡組估計(jì)是一個(gè)分類(lèi)問(wèn)題,即把年齡或者年齡范圍看成一個(gè)類(lèi)別;實(shí)際年齡估計(jì)是一個(gè)回歸問(wèn)題,即把實(shí)足年齡看成一個(gè)數(shù)值。不論是分類(lèi)還是回歸,都需要解決兩個(gè)問(wèn)題,一個(gè)是提取能夠表示人臉圖像的特征(通常為一個(gè)向量),另一個(gè)是找到一個(gè)函數(shù),使其能表示人臉圖像特征到年齡之間的映射。這樣一個(gè)函數(shù)(通常稱(chēng)為分類(lèi)器或者回歸器)需要通過(guò)學(xué)習(xí)得到。所謂學(xué)習(xí),如同我們?nèi)祟?lèi)學(xué)習(xí)過(guò)程一樣,需要大量的已經(jīng)標(biāo)記好年齡的人臉圖像,讓計(jì)算機(jī)知道什么樣的人臉對(duì)應(yīng)什么樣的年齡。所以研究人臉年齡估計(jì)需要大量標(biāo)注好年齡的人臉圖片,目前較為常用的是FG-NET數(shù)據(jù)集[2]和Morph數(shù)據(jù)集[3]。FG-NET中包括了82個(gè)人從小到大共1 002張照片,年齡范圍在0歲到69歲之間;Morph是一個(gè)較大的人臉年齡數(shù)據(jù)集,包含大約13 000人的50 000多張照片,年齡范圍在16歲到77歲之間。
下面將對(duì)于年齡估計(jì)中的基于傳統(tǒng)人工智能技術(shù)的方法與基于深度學(xué)習(xí)的方法進(jìn)行一些介紹。
基于傳統(tǒng)人工智能技術(shù)的年齡估計(jì)方法著重于如何設(shè)計(jì)一個(gè)對(duì)于年齡變化更有代表性、更豐富、更合適的特征。雖然這樣設(shè)計(jì)出的特征有很好的可解釋性,但要設(shè)計(jì)一個(gè)好的特征往往比較困難。
早期的年齡估計(jì)方法精度較低,大多是年齡組估計(jì),通過(guò)人工設(shè)計(jì)的一些方法來(lái)提取特征,然后判斷人臉圖像屬于哪一個(gè)年齡范圍。Kwon和Lobo[4]在1994年最早對(duì)人臉年齡估計(jì)進(jìn)行了研究,那時(shí)的研究只是粗略地將年齡分成了小孩、年輕人、老年人三類(lèi)。雖然工作看似簡(jiǎn)單,但是這是年齡估計(jì)的一個(gè)開(kāi)端。Kwon和Lobo的方法主要受到顱面發(fā)展理論的啟發(fā)。顱面發(fā)展理論認(rèn)為顱骨的變化可以用一個(gè)充滿液體的球體來(lái)模擬,該模型能有效地描述一個(gè)人從孩童成長(zhǎng)為成年人過(guò)程中頭部輪廓的變化規(guī)律。他們根據(jù)面部模板檢測(cè)出臉部的輪廓并找到眼睛、鼻子、嘴巴、下巴等人臉關(guān)鍵點(diǎn)的位置,然后由這些位置計(jì)算一系列幾何比例(圖2),經(jīng)過(guò)統(tǒng)計(jì)設(shè)置一個(gè)合適的閾值用于區(qū)分兒童與成年人。在人發(fā)育成熟后骨骼結(jié)構(gòu)一般不會(huì)有太大的改變,但皮膚會(huì)隨著衰老變得松弛而產(chǎn)生皺紋。他們根據(jù)之前檢測(cè)的人臉關(guān)鍵點(diǎn)和皺紋地理圖譜得到人臉主要的皺紋區(qū)域(圖2),然后放大這些區(qū)域提取snakelet(蛇形的曲線段),以蛇形曲線段的數(shù)量作為皺紋特征用來(lái)區(qū)分年輕人與老年人。
圖2 面部模板與皺紋地理圖譜[4]
主動(dòng)外觀模型(active appearance model,AAM)[5]是一個(gè)將形狀與灰度結(jié)合起來(lái)用主成分分析建模的統(tǒng)計(jì)模型,它通過(guò)對(duì)人臉形狀特征和紋理特征進(jìn)行統(tǒng)計(jì)分析,建立人臉混合模型。Lanitis等人[6]首次將主動(dòng)外觀模型應(yīng)用于人臉的特征提取中,以AAM模型參數(shù)作為人臉特征參數(shù),建立特征參數(shù)與年齡之間的函數(shù)關(guān)系,并在訓(xùn)練集中對(duì)函數(shù)參數(shù)進(jìn)行訓(xùn)練優(yōu)化。在對(duì)一張新的人臉圖像進(jìn)行年齡估計(jì)時(shí),先利用AAM提取人臉特征,將提取到的特征代入優(yōu)化好的年齡函數(shù)中就能計(jì)算出人臉圖像的年齡。Lanitis等人[7]之后又分別運(yùn)用最近鄰分類(lèi)器、自組織映射網(wǎng)(SOM)、多層感知器分類(lèi)器(MLP)對(duì)基于主動(dòng)外觀模型提取到的特征進(jìn)行人臉估計(jì)。他們通過(guò)實(shí)驗(yàn)發(fā)現(xiàn)多層感知器分類(lèi)器的效果比較好。多層感知器是最簡(jiǎn)單也是最常見(jiàn)的一種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),可以說(shuō)是其他各種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ),但由于當(dāng)時(shí)計(jì)算機(jī)的計(jì)算能力的限制,神經(jīng)網(wǎng)絡(luò)一般只有2~3層,性能并不特別突出。
每個(gè)人的臉會(huì)以不同的方式成熟、衰老,對(duì)于特定的某個(gè)人來(lái)說(shuō),他在不同年齡的臉部圖像一般來(lái)說(shuō)和他在其他年齡時(shí)期的圖像更相近。Xin等人[8]由此提出了一種年齡成長(zhǎng)模式子空間模型。該模型把每個(gè)人的衰老過(guò)程作為一個(gè)獨(dú)立的年齡成長(zhǎng)模式,每個(gè)人的年齡成長(zhǎng)模式由其不同年齡時(shí)期的人臉圖像按時(shí)間順序排列構(gòu)成,人臉圖像在圖像序列中的位置點(diǎn)對(duì)應(yīng)該人的年齡值。也就是說(shuō),根據(jù)圖像的相似度找到圖像在年齡成長(zhǎng)模式中的位置就能得到相應(yīng)的年齡(圖3)。將不同個(gè)體的年齡成長(zhǎng)模式按照一定的關(guān)系進(jìn)行映射得到年齡成長(zhǎng)模式子空間,年齡成長(zhǎng)模式子空間中的每一個(gè)點(diǎn)代表了一個(gè)年齡成長(zhǎng)模式,每一個(gè)點(diǎn)中的各個(gè)位置又對(duì)應(yīng)了一個(gè)年齡。給定一張人臉圖像,提取其特征向量,找出它在年齡成長(zhǎng)模式子空間中最合適的點(diǎn)、最合適的位置,根據(jù)位置就能得到人臉相應(yīng)的年齡。年齡成長(zhǎng)模式子空間將每個(gè)人的年齡成長(zhǎng)模式作為一個(gè)整體來(lái)看待,更符合年齡成長(zhǎng)的客觀特點(diǎn),在FG-NET數(shù)據(jù)集上平均絕對(duì)誤差(mean absolute error,MAE)達(dá)到了6.77歲,但這種方法要求每個(gè)人有不同年齡上的多幅人臉圖像,對(duì)數(shù)據(jù)采集要求較高。
圖3 年齡成長(zhǎng)模式[8]
人臉隨著年齡增長(zhǎng)而變化,具有時(shí)間特性,所以人臉圖像的年齡特征中可能會(huì)顯示出一些低維的序列模式。Fu等人[9]將流形學(xué)習(xí)引入到人臉圖像的年齡模型中來(lái)挖掘這種序列模式。流形學(xué)習(xí)的觀點(diǎn)認(rèn)為,我們所能觀察到的數(shù)據(jù)實(shí)際上是由一個(gè)低維流形映射到高維空間上的,高維數(shù)據(jù)在維度上是有冗余的。流形學(xué)習(xí)要做的就是發(fā)現(xiàn)高維數(shù)據(jù)分布的內(nèi)在規(guī)律,將高維數(shù)據(jù)映射回低維,并且使該低維數(shù)據(jù)保留原高維數(shù)據(jù)的某些結(jié)構(gòu)特征,能夠反映數(shù)據(jù)的本質(zhì)。年齡特征的流形學(xué)習(xí)就是尋找一種特征空間,將人臉原始圖像數(shù)據(jù)通過(guò)該特征空間轉(zhuǎn)化為一組具有序列模式的低維年齡特征用于年齡估計(jì)中。流形學(xué)習(xí)極大地減少了年齡特征的維度冗余,能夠捕獲潛在的臉部年齡成長(zhǎng)結(jié)構(gòu),使模型擬合更加容易。
Guo等人[10]將流形學(xué)習(xí)與支持向量回歸(support vector regression,SVR)結(jié)合來(lái)進(jìn)行年齡估計(jì)。他們認(rèn)為年齡估計(jì)是一個(gè)復(fù)雜的非線性回歸問(wèn)題,年齡變化的差異很大,為了提高模型的泛化能力,SVR傾向于找到一條平滑的曲線來(lái)擬合年齡特征,這樣SVR能擬合出數(shù)據(jù)集中年齡變化的大致趨勢(shì),但對(duì)于精確的年齡估計(jì)效果較差。為了改進(jìn)SVR方法的缺陷,Guo等人提出了局部調(diào)整魯棒回歸方法(locally adjusted robust regression,LARR)。LARR先用SVR估計(jì)出年齡變化的大致趨勢(shì),然后在得到的估計(jì)值附近的一個(gè)年齡范圍采用支持向量機(jī)(support vector machine,SVM)進(jìn)行分類(lèi),對(duì)估計(jì)值進(jìn)行局部調(diào)整,以得到更準(zhǔn)確的年齡估計(jì)值。局部調(diào)整魯棒回歸方法在FG-NET數(shù)據(jù)集上平均絕對(duì)誤差達(dá)到了5.07歲。
Guo等人[11]利用Gabor濾波器提取人臉紋理特征,并提出了一種生物啟發(fā)式特征(biologically inspired features,BIF)用于年齡估計(jì)。BIF的提出受到“HMAX”模型[12]的影響。研究發(fā)現(xiàn)從初級(jí)視覺(jué)皮層到顳下葉皮層視覺(jué)信息的復(fù)雜度越來(lái)越高,而“HMAX”模型模擬了大腦皮層的視覺(jué)處理過(guò)程。該模型由簡(jiǎn)單和復(fù)雜單元交替組成,模擬了這種復(fù)雜度遞增的結(jié)構(gòu)。Guo等人根據(jù)年齡估計(jì)的特點(diǎn)只選用了“HMAX”模型的S1層和C1層,并且調(diào)整了波段和方向,然后將得到的特征進(jìn)行降維用于年齡估計(jì)。他們利用生物啟發(fā)式特征使年齡估計(jì)的效果又有了提升,在FG-NET數(shù)據(jù)集上平均絕對(duì)誤差達(dá)到了4.77歲。
近年來(lái)深度學(xué)習(xí)席卷了人工智能的各個(gè)領(lǐng)域,在使用了深度學(xué)習(xí)技術(shù)后很多任務(wù)的性能都得到極大的提升。卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)是深度學(xué)習(xí)技術(shù)中一種重要的模型,在計(jì)算機(jī)視覺(jué)領(lǐng)域中得到廣泛的應(yīng)用?;趥鹘y(tǒng)人工智能的方法采用的人工設(shè)計(jì)的特征雖然解釋性較好,但是在對(duì)任務(wù)目標(biāo)的表示性上通常有所欠缺。在卷積神經(jīng)網(wǎng)絡(luò)中,如圖4所示,圖像通過(guò)卷積層、池化層等操作提取特征,根據(jù)具體任務(wù)設(shè)計(jì)相應(yīng)的損失函數(shù),損失函數(shù)產(chǎn)生的殘差通過(guò)梯度反向傳導(dǎo)對(duì)網(wǎng)絡(luò)中的參數(shù)進(jìn)行更新優(yōu)化。卷積神經(jīng)網(wǎng)絡(luò)將原本相對(duì)獨(dú)立的特征提取與任務(wù)學(xué)習(xí)有機(jī)地結(jié)合在一起,使得產(chǎn)生的特征包含的信息更加豐富,與任務(wù)更加契合。一般來(lái)說(shuō),越深的神經(jīng)網(wǎng)絡(luò)可以表示的特征抽象程度越高,對(duì)函數(shù)的擬合能力也越強(qiáng),特征的表示性也越好。
近幾年,有許多人將深度學(xué)習(xí)應(yīng)用于年齡估計(jì)中。相比基于傳統(tǒng)人工智能的方法,基于深度學(xué)習(xí)的年齡估計(jì)方法取得了極大的性能提升。
圖4 神經(jīng)網(wǎng)絡(luò)示意圖
Levi等人[13]較早地將卷積神經(jīng)網(wǎng)絡(luò)用于年齡估計(jì)。他們?cè)O(shè)計(jì)了一個(gè)較為淺層的網(wǎng)絡(luò),采用了3個(gè)卷積層和3個(gè)全連接層來(lái)提取人臉年齡特征,將年齡劃分成8個(gè)年齡組并用Softmax進(jìn)行分類(lèi)。Softmax是一種常用的多類(lèi)分類(lèi)器,它產(chǎn)生的是屬于各類(lèi)別的概率,我們從中挑選概率值最大的類(lèi)別作為結(jié)果。
年齡是具有順序性質(zhì)的。平時(shí)我們估計(jì)一個(gè)人的年齡時(shí),會(huì)將他與我們熟悉且知道年齡的人進(jìn)行比較,通過(guò)大量的比較結(jié)果來(lái)判斷年齡。Niu等人[14]基于這樣的思路提出了ORCNN(ordinal regression CNN)網(wǎng)絡(luò)。他們將年齡標(biāo)簽看作是一個(gè)次序,將年齡估計(jì)問(wèn)題轉(zhuǎn)換為待估計(jì)年齡是大于某個(gè)年齡還是小于某個(gè)年齡的問(wèn)題,這樣就能將其分成多個(gè)二值分類(lèi)的子問(wèn)題來(lái)處理。他們對(duì)原本標(biāo)簽為年齡的數(shù)據(jù)集進(jìn)行處理,形成多個(gè)子數(shù)據(jù)集,第i個(gè)子數(shù)據(jù)集中大于i的圖片標(biāo)簽為1,小于等于i的圖片標(biāo)簽為0。經(jīng)過(guò)卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練學(xué)習(xí),每個(gè)二分類(lèi)器對(duì)應(yīng)一個(gè)子數(shù)據(jù)集,輸出的結(jié)果判斷了年齡是否大于分類(lèi)器對(duì)應(yīng)的次序,將所有結(jié)果結(jié)合起來(lái)就能輸入圖像對(duì)應(yīng)的次序,也就能得到年齡了。同時(shí),這多個(gè)二分類(lèi)子問(wèn)題被視為多個(gè)任務(wù),在同一個(gè)卷積神經(jīng)網(wǎng)絡(luò)中進(jìn)行處理共享了網(wǎng)絡(luò)的權(quán)重,能夠利用任務(wù)之間的相關(guān)性,讓多個(gè)任務(wù)在訓(xùn)練中相互促進(jìn),有利于提高最終的性能。
神經(jīng)網(wǎng)絡(luò)是一種數(shù)據(jù)驅(qū)動(dòng)模型,借助大量的數(shù)據(jù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)往往能對(duì)性能產(chǎn)生一些提升。Rothe等人[15]將一種較深的VGG網(wǎng)絡(luò)[16]運(yùn)用于年齡估計(jì),同時(shí)利用大量的數(shù)據(jù)去訓(xùn)練,取得了很好的效果。VGG最早是用于圖像分類(lèi)的,它在大規(guī)模圖像識(shí)別競(jìng)賽(ILSVRC2014)上取得了第二名的成績(jī)。由于VGG簡(jiǎn)潔合理的網(wǎng)絡(luò)結(jié)構(gòu)、優(yōu)秀的特征提取能力,之后在許多任務(wù)上得到了應(yīng)用。Rothe等人一開(kāi)始嘗試以歐式距離作為最后的回歸函數(shù),但是網(wǎng)絡(luò)難以收斂且結(jié)果很不穩(wěn)定,后來(lái)他們使用Softmax進(jìn)行分類(lèi)。他們將每一個(gè)年齡值作為一個(gè)類(lèi)別,Softmax產(chǎn)生的就是屬于各個(gè)年齡值的概率,將年齡值與相應(yīng)的概率相乘再累加起來(lái)得到一個(gè)估計(jì)值,以數(shù)學(xué)期望的方式很直觀地將Softmax分類(lèi)轉(zhuǎn)化成回歸。這種方法在FG-NET數(shù)據(jù)集上平均絕對(duì)誤差達(dá)到4.63歲,在Morph數(shù)據(jù)集上平均絕對(duì)誤差達(dá)到3.25歲。
人臉年齡估計(jì)可以看作是人臉年齡特征與年齡之間的一個(gè)非線性映射問(wèn)題,但非線性映射往往不容易解決,那能不能將年齡估計(jì)問(wèn)題轉(zhuǎn)化成線性映射問(wèn)題呢?Agustsson等人[17]提出了一個(gè)錨定回歸網(wǎng)絡(luò)(anchored regression networks,ARN)。ARN的設(shè)計(jì)基于在特征的局部區(qū)域內(nèi)回歸問(wèn)題可以被線性化的假設(shè),將非線性映射進(jìn)行了分段,劃分成一個(gè)個(gè)局部區(qū)域,然后在局部區(qū)域內(nèi)進(jìn)行線性映射。在特征空間中選取一組錨點(diǎn),每個(gè)錨點(diǎn)都有相應(yīng)的線性函數(shù),為每一個(gè)特征計(jì)算與各個(gè)錨點(diǎn)的相似度,選擇與其相似度最高的錨點(diǎn)對(duì)應(yīng)的線性函數(shù)進(jìn)行年齡計(jì)算。如果將特征完全歸屬于各個(gè)錨點(diǎn),這樣硬性的劃分在計(jì)算上不可導(dǎo)(梯度不存在),就不能與神經(jīng)網(wǎng)絡(luò)進(jìn)行結(jié)合。所以,ARN采用一種軟性的劃分,對(duì)特征計(jì)算了所有錨點(diǎn)對(duì)應(yīng)的線性函數(shù),再按相似度的高低對(duì)這些線性函數(shù)的結(jié)果進(jìn)行加權(quán)求和作為最后的結(jié)果。錨點(diǎn)的選取和線性函數(shù)的參數(shù)都能通過(guò)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行自動(dòng)的優(yōu)化。ARN在Morph數(shù)據(jù)集上平均絕對(duì)誤差達(dá)到3.00歲。
在介紹了前面這些深度學(xué)習(xí)的方法后,下面著重介紹一下基于深度回歸森林的年齡估計(jì)方法[1]。深度回歸森林是卷積神經(jīng)網(wǎng)絡(luò)與隨機(jī)森林的一種有機(jī)結(jié)合。隨機(jī)森林是一種基于決策樹(shù)的集成學(xué)習(xí)模型[18]。下面我們先簡(jiǎn)單介紹決策樹(shù)。
決策樹(shù)是一種常見(jiàn)的機(jī)器學(xué)習(xí)模型,通過(guò)樹(shù)的結(jié)構(gòu)表示了對(duì)象屬性與結(jié)果之間的一種映射關(guān)系。樹(shù)中每一個(gè)內(nèi)部節(jié)點(diǎn)表示一個(gè)屬性或特征,根據(jù)這些特征的取值分配其子節(jié)點(diǎn),最終達(dá)到葉節(jié)點(diǎn),葉節(jié)點(diǎn)則對(duì)應(yīng)著最后的輸出結(jié)果。決策樹(shù)在每個(gè)節(jié)點(diǎn)處選取信息增益最大的特征作為分裂的判斷條件。決策樹(shù)可以看成是一個(gè)“如果—那么”規(guī)則的集合,從根節(jié)點(diǎn)到葉節(jié)點(diǎn)的每一條路徑構(gòu)建了一種規(guī)則,內(nèi)部節(jié)點(diǎn)對(duì)應(yīng)著規(guī)則的條件,葉節(jié)點(diǎn)對(duì)應(yīng)著規(guī)則的結(jié)論。決策樹(shù)能夠?qū)Ψ蔷€性關(guān)系進(jìn)行較好的映射,它能看作是對(duì)輸入空間的一系列劃分以及在各個(gè)劃分區(qū)域上的輸出值。
決策樹(shù)對(duì)應(yīng)的一系列的規(guī)則具有天然的解釋性。如圖5所示,我們用一棵決策樹(shù)對(duì)一組水果進(jìn)行分類(lèi)。首先,我們可以用顏色把這些水果分成綠色、黃色和紅色的水果;然后又可以通過(guò)形狀或者大小對(duì)這三種顏色的水果進(jìn)行進(jìn)一步的細(xì)分。決策樹(shù)對(duì)數(shù)據(jù)量的需求較小,沒(méi)有復(fù)雜的參數(shù)設(shè)置。由于這些優(yōu)點(diǎn),決策樹(shù)在許多方面都有應(yīng)用。但是決策樹(shù)很容易過(guò)擬合,“設(shè)置的規(guī)則過(guò)于復(fù)雜”,使得在測(cè)試數(shù)據(jù)中效果很差。決策樹(shù)的泛化能力也較差,對(duì)于沒(méi)有“見(jiàn)過(guò)”的數(shù)據(jù),其效果往往不好。為了解決決策樹(shù)的這些缺陷,人們提出了隨機(jī)森林算法。就像“三個(gè)臭皮匠頂一個(gè)諸葛亮”,隨機(jī)森林算法采用了多棵決策樹(shù)來(lái)進(jìn)行處理,結(jié)合多棵樹(shù)的結(jié)果產(chǎn)生最后的結(jié)果。但多棵樹(shù)的結(jié)果就一定比一棵樹(shù)的好嗎?也不一定。如果每棵樹(shù)產(chǎn)生的結(jié)果都是一樣的,那最后綜合起來(lái)的結(jié)果和一棵樹(shù)的并沒(méi)有差別。要讓多棵樹(shù)的效果優(yōu)于一棵樹(shù),那就需要讓每棵樹(shù)都有其他樹(shù)不具備的“能力”。因此,隨機(jī)森林引入了“隨機(jī)”,每一棵樹(shù)隨機(jī)地從數(shù)據(jù)集中選擇學(xué)習(xí)數(shù)據(jù),從特征中隨機(jī)選擇一部分,再取其中最優(yōu)的特征作為分裂的條件。這樣每棵樹(shù)都與眾不同,具有了不同的“能力”,增加了樹(shù)之間的獨(dú)立性,整體的效果就提升了。
圖5 決策樹(shù)示意圖
在傳統(tǒng)的決策樹(shù)中,決策樹(shù)的分裂生長(zhǎng)是“非左即右”的離散過(guò)程,從一個(gè)節(jié)點(diǎn)往下分裂只能通向它的一個(gè)子節(jié)點(diǎn),這個(gè)過(guò)程是不可導(dǎo)的。為了使決策樹(shù)能與神經(jīng)網(wǎng)絡(luò)結(jié)合,Kontschieder等人[19]提出了可導(dǎo)的決策樹(shù),將原本“非左即右”的分裂方式改變成了按概率分裂,這樣整個(gè)過(guò)程就變得可導(dǎo)了;而且傳統(tǒng)的決策樹(shù)是在節(jié)點(diǎn)處局部最優(yōu),采用按概率分裂的模式使得節(jié)點(diǎn)之間聯(lián)系在一起,從而使全局最優(yōu)成為可能。
如前所述,人臉容貌和年齡之間的關(guān)系是很復(fù)雜的,之間的映射不是一種均勻映射。比如,嬰兒的臉與年齡之間的映射函數(shù)和老人的臉與年齡之間的映射函數(shù)顯然是不同的。既然決策樹(shù)可以自然地對(duì)數(shù)據(jù)空間進(jìn)行劃分,那么我們利用決策樹(shù)來(lái)對(duì)年齡空間進(jìn)行劃分,使得各個(gè)子空間中的人臉圖像和年齡間的映射為均勻的,這樣更容易得到一個(gè)有效的回歸器?;谶@樣一個(gè)思路,我們提出基于深度回歸森林的年齡估計(jì)方法。下面我們?cè)敿?xì)介紹該方法的細(xì)節(jié)。
我們采用卷積神經(jīng)網(wǎng)絡(luò)作為深度回歸森林的前端部分來(lái)提取特征。圖6表示深度回歸森林的大致結(jié)構(gòu),其中紅色圓圈表示這個(gè)卷積神經(jīng)網(wǎng)絡(luò)最后的全連接層(FC layer)輸出的特征值。將這個(gè)特征值通過(guò)一個(gè)sigmoid函數(shù)歸一化到0~1之間,然后隨機(jī)分配到各個(gè)樹(shù)內(nèi)部節(jié)點(diǎn)(藍(lán)色圓圈)上作為分裂概率。每張人臉圖像在每棵樹(shù)內(nèi)部節(jié)點(diǎn)處以分裂概率被劃分到左右,最終落入葉節(jié)點(diǎn)(綠色圓圈)中。該人臉圖像所經(jīng)過(guò)路徑上的各個(gè)概率相乘得到路徑函數(shù),表示了人臉圖像屬于這個(gè)葉節(jié)點(diǎn)的概率。落入到各個(gè)葉節(jié)點(diǎn)中的人臉圖像對(duì)應(yīng)的年齡數(shù)據(jù)符合不同的高斯分布,表示不同的年齡分布結(jié)構(gòu)。每個(gè)葉節(jié)點(diǎn)可以看成是一個(gè)局部回歸器,能夠在網(wǎng)絡(luò)學(xué)習(xí)過(guò)程中優(yōu)化。葉節(jié)點(diǎn)中的高斯分布與其相應(yīng)的路徑函數(shù)構(gòu)成一個(gè)混合高斯模型的結(jié)構(gòu),決策樹(shù)的輸出由各個(gè)高斯分布與路徑函數(shù)加權(quán)得到,再對(duì)多棵決策樹(shù)產(chǎn)生的結(jié)果進(jìn)行平均得到最后的年齡估計(jì)。卷積神經(jīng)網(wǎng)絡(luò)與隨機(jī)森林結(jié)合在一起,形成端到端的網(wǎng)絡(luò)結(jié)構(gòu)。這樣特征提取與樹(shù)的節(jié)點(diǎn)在網(wǎng)絡(luò)中共同學(xué)習(xí)優(yōu)化。深度回歸森林有這樣幾個(gè)優(yōu)點(diǎn):①深度回歸森林構(gòu)建在深度神經(jīng)網(wǎng)絡(luò)上,這樣保證了提取的人臉特征具有強(qiáng)大的表示能力;②深度森林的數(shù)據(jù)劃分是基于概率的軟劃分,而分裂概率又取決于提取的特征,所以深度森林的數(shù)據(jù)空間劃分與數(shù)據(jù)相關(guān),是一種數(shù)據(jù)驅(qū)動(dòng)的劃分,這樣的劃分更符合數(shù)據(jù)的分布特性;③在深度回歸森林中,特征提取、數(shù)據(jù)劃分和回歸器的學(xué)習(xí)同時(shí)優(yōu)化,使得整個(gè)端到端的模型能達(dá)到一個(gè)全局最優(yōu)。深度回歸森林在FG-NET數(shù)據(jù)集上MAE達(dá)到3.85歲,在Morph數(shù)據(jù)集上MAE達(dá)到2.91歲,是當(dāng)前最好的年齡估計(jì)結(jié)果。
圖6 深度回歸森林示意圖[1]
本文從基于傳統(tǒng)人工智能技術(shù)的方法與基于深度學(xué)習(xí)的方法兩個(gè)方面對(duì)人臉年齡估計(jì)進(jìn)行了介紹,并著重對(duì)第二種方法中的深度回歸森林進(jìn)行了闡述。從基于傳統(tǒng)人工智能的方法中對(duì)各種特征提取的探究到基于深度學(xué)習(xí)的方法中對(duì)網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì),人臉年齡估計(jì)的性能已經(jīng)越來(lái)越好,但是目前較好的算法平均絕對(duì)誤差依然還有3歲左右。需要注意的是,當(dāng)前的人臉年齡估計(jì)的研究普遍采用經(jīng)過(guò)對(duì)齊的人臉,而在實(shí)際應(yīng)用中往往需要在不受約束的環(huán)境下解決年齡估計(jì)問(wèn)題。在這種情況下,背景復(fù)雜,人臉的姿勢(shì)也無(wú)法保證是正面,人臉很難對(duì)齊。 因此,從人臉圖像中精確可靠地估計(jì)年齡仍然是一個(gè)任重而道遠(yuǎn)的任務(wù),尤其在實(shí)際應(yīng)用中存在著更多需要克服的難點(diǎn)與挑戰(zhàn)。
(2018年3月20日收稿)