張飛翔,余學(xué)儒,何衛(wèi)鋒,李 琛
1.上海交通大學(xué) 電子信息與電氣工程學(xué)院 微納電子學(xué)系,上海200240
2.上海集成電路研發(fā)中心有限公司AI部,上海201203
基于卷積神經(jīng)網(wǎng)絡(luò)的人臉識(shí)別是近年來(lái)機(jī)器學(xué)習(xí)領(lǐng)域非常熱門(mén)的研究方向,其涉及了機(jī)器視覺(jué)、模式識(shí)別、神經(jīng)網(wǎng)絡(luò)等多學(xué)科內(nèi)容[1]。卷積神經(jīng)網(wǎng)絡(luò)包含了網(wǎng)絡(luò)模型的構(gòu)建、損失函數(shù)的選取、特征相似度等問(wèn)題。殘差神經(jīng)網(wǎng)絡(luò)[2](Resnet)的出現(xiàn)解決了傳統(tǒng)深度神經(jīng)隨著網(wǎng)絡(luò)加深退化的問(wèn)題,修改損失函數(shù)和特征相似度成為優(yōu)化人臉識(shí)別模型的研究熱點(diǎn)。
Softmax損失函數(shù)在深度神經(jīng)網(wǎng)絡(luò)中被廣泛使用[3],先將分類(lèi)結(jié)果映射到指數(shù)域上后再歸一化,收斂速度快,但因只考慮了分類(lèi)正確與否,未能設(shè)置類(lèi)內(nèi)約束,導(dǎo)致最終的特征提取效果不佳。權(quán)重與特征歸一化Softmax(W&F-Norm Softmax)[4-5]去掉了Softmax 的偏置,之后將最后一層卷積層輸出和全連接層權(quán)重L2范數(shù)歸一化,減少了網(wǎng)絡(luò)參數(shù),并且將損失函數(shù)引入到了余弦域中。文獻(xiàn)[6]提出了一種添加余弦裕度的損失函數(shù)(Cosineface),相比特征與權(quán)重歸一化Softmax,Cosineface添加了類(lèi)內(nèi)約束,提升了人臉識(shí)別率,但存在著算法收斂較慢的缺點(diǎn)。文獻(xiàn)[7]提出了一種添加角度裕度的損失函數(shù)(Arcface),相比Cosineface,Arcface 在幾何性質(zhì)上有更好的解釋性,并且文中在不同階段的角度約束時(shí)對(duì)損失函數(shù)的貢獻(xiàn)進(jìn)行了量化與論證。但Arcface 涉及到余弦函數(shù)計(jì)算,計(jì)算過(guò)程較為復(fù)雜。
目前基于余弦域損失函數(shù)的人臉識(shí)別算法模型收斂速度較慢,類(lèi)內(nèi)距離變化幅度較小。與訓(xùn)練階段余弦域損失函數(shù)相匹配的測(cè)試階段,應(yīng)當(dāng)使用L2范數(shù)歸一化特征,再計(jì)算特征差的L2范數(shù)衡量特征間相似度[8]。但對(duì)于一些異常數(shù)據(jù)單單依靠L2范數(shù)時(shí)特征相似度信息太少,無(wú)法達(dá)到正確分類(lèi)。
本文根據(jù)神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)收斂的條件,針對(duì)添加類(lèi)內(nèi)約束后收斂變慢,提出了一種斜率可變的余弦裕度損失函數(shù),在訓(xùn)練過(guò)程中與較為常見(jiàn)的損失函數(shù)進(jìn)行人臉識(shí)別效果對(duì)比,并且在最佳模型上使用多重范數(shù)來(lái)代替L2范數(shù)衡量特征相似度,探討斜率可變的余弦裕度損失函數(shù)在提升收斂速度和降低類(lèi)內(nèi)距離上的優(yōu)勢(shì),以及多重范數(shù)在提升識(shí)別率上的效果。
本文使用的神經(jīng)網(wǎng)絡(luò)的訓(xùn)練流程如圖1所示,人臉圖片先經(jīng)過(guò)卷積層轉(zhuǎn)變?yōu)樘卣飨蛄?,再通過(guò)一層全連接層后計(jì)算損失函數(shù)。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練即尋找損失函數(shù)最小時(shí)對(duì)應(yīng)的參數(shù)最優(yōu)解。近年來(lái),損失函數(shù)基于Softmax有很多改進(jìn)算法,其中包括W&F-Norm Softmax、Cosineface、Arcface等。
Softmax最常用的損失函數(shù)之一,該函數(shù)的定義如下:
其中,m表示在訓(xùn)練過(guò)程中batch的大小,n表示訓(xùn)練集的類(lèi)別個(gè)數(shù),xi表示第i個(gè)樣本的特征值,該樣本屬于zi類(lèi),W ∈Rd×n表示最后一層全連接層的權(quán)重,b ∈Rn表示最后一層全連接層的偏置。在卷積神經(jīng)網(wǎng)絡(luò)中,一般將最后一層卷積層的輸出值作為特征x,經(jīng)過(guò)全連接層編碼WTx ∈Rn之后進(jìn)入Softmax 層,將特征轉(zhuǎn)化為屬于各個(gè)類(lèi)的概率值。
為了簡(jiǎn)化,一般將Softmax 的全連接層的偏置設(shè)置為0,且為了將更多的分類(lèi)信息集中體現(xiàn)在角度域上,將特征和權(quán)重進(jìn)行L2范數(shù)歸一化處理,計(jì)算兩者的乘積,就得到了該特征與權(quán)重之間夾角的余弦值,即
圖1 人臉識(shí)別模型
經(jīng)過(guò)特征和權(quán)重歸一化之后,分類(lèi)邊界只與角度有關(guān),訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí)通過(guò)優(yōu)化損失函數(shù)將對(duì)應(yīng)角度縮小。文獻(xiàn)[9-10]解釋了歸一化對(duì)于特征提取的作用。由于在歸一化之后,特征空間被壓縮到單位超球面上,導(dǎo)致?lián)p失函數(shù)無(wú)法優(yōu)化到接近于0,故添加尺度因子s將特征空間擴(kuò)大。
W&F-NormSoftmax 只強(qiáng)調(diào)分類(lèi)正確與否,對(duì)類(lèi)內(nèi)距離和類(lèi)間距離沒(méi)有設(shè)置約束。Cosineface通過(guò)添加角度余弦裕度,使得類(lèi)內(nèi)特征更加緊密,從而變相增加了類(lèi)間距離,即
其中,t為角度余弦裕度。
相比Cosineface,Arcface對(duì)類(lèi)內(nèi)的約束具有更加直觀的解釋性。通過(guò)設(shè)置角度裕度t ,使得特征與權(quán)重之間的角度大于其真實(shí)值,這使得優(yōu)化條件變得更加苛刻,即
根據(jù)式(6)、式(7)可以看出Arcface 是余弦域損失函數(shù)的一種情況。
令y=cosθ∈[-1,+1],損失函數(shù)為:
其中,A(s,yi)為特征與標(biāo)簽對(duì)應(yīng)的權(quán)重之間的角度余弦函數(shù),B(s,yi)為特征與其他權(quán)重之間的角度余弦函數(shù)。為了滿(mǎn)足優(yōu)化條件,損失函數(shù)一般需具有以下幾個(gè)性質(zhì):
為了簡(jiǎn)化并滿(mǎn)足性質(zhì)(2),將A和B設(shè)定為指數(shù)形式,即
若要滿(mǎn)足性質(zhì)(1)、(3)、(4),只需滿(mǎn)足式(11)、(12)即可。
根據(jù)式(11)、(12)構(gòu)造函數(shù)A(s,yi)=s(kyi+b),其中k大于0。添加余弦裕度,需要使得:
即,b≤k-1。如圖2 所示,改進(jìn)的kcosine 具有更多的變化形式,是對(duì)Cosineface 的擴(kuò)展,相比Arcface 不需要復(fù)雜的角度余弦變換和計(jì)算。
圖2 A/s曲線
在人臉識(shí)別模型測(cè)試時(shí),通常使用計(jì)算特征差的L2范數(shù)來(lái)計(jì)算相似度,本文采用多重范數(shù)方法對(duì)其改進(jìn),流程如圖1所示。
人臉識(shí)別通常可以分為兩個(gè)部分:特征提取和特征相似度衡量。目前較為流行的特征提取辦法是經(jīng)過(guò)分類(lèi)訓(xùn)練的深度神經(jīng)網(wǎng)絡(luò)的卷積層部分,由于本文采用余弦域相關(guān)的損失函數(shù),故在特征相似度衡量時(shí)先將特征進(jìn)行L2范數(shù)歸一化處理,再計(jì)算特征差的L2范數(shù)評(píng)價(jià)其相似程度,這樣處理的好處在于通過(guò)L2范數(shù)可以評(píng)價(jià)余弦相似度。
L2范數(shù)定義如下:
其中,A 和B 為兩個(gè)n維向量。設(shè)定閾值,根據(jù)式(15)比較L2范數(shù)和閾值的大小,判定兩個(gè)特征是否來(lái)自同一個(gè)人。
使用MobileFaceNets[11]網(wǎng)絡(luò)作為特征提取部分,L2范數(shù)作為衡量方法,6 000 組LFW[12]圖片作為測(cè)試集(3 000組正類(lèi):相同ID,3 000組負(fù)類(lèi):不同ID,每組兩張圖片),根據(jù)10-fold 規(guī)則依次選取5 400 組作為訓(xùn)練集統(tǒng)計(jì)出最佳閾值,另外600組作為測(cè)試集測(cè)試閾值分類(lèi)效果。圖3 中(a)圖、(b)圖、(c)圖記錄了3 份測(cè)試集的L2范數(shù)的平方值(1~300 為正類(lèi),301~600 為負(fù)類(lèi),圖中橫線為通過(guò)訓(xùn)練集得到的最佳閾值),觀察得知,在閾值附近,存在一些異常點(diǎn)被誤判,不能通過(guò)一維閾值達(dá)到很好的線性可分。
假設(shè)在閾值附近存在兩個(gè)不同ID 的特征滿(mǎn)足式(16)、(17):
其中,n表示特征維度。即存在分量在L2范數(shù)計(jì)算時(shí)占據(jù)主導(dǎo)作用,但并不能通過(guò)閾值將其判定為負(fù)類(lèi),基于這個(gè)假設(shè),可以通過(guò)計(jì)算特征差值的L∞范數(shù)即最大值,將該組特征判定為負(fù)類(lèi)。圖3中(a)圖、(b)圖、(c)圖所示,L∞范數(shù)與L2范數(shù)存在相關(guān)關(guān)系,且在正類(lèi)和負(fù)類(lèi)的L∞范數(shù)的散點(diǎn)圖呈明顯階梯狀,故選取L∞范數(shù)特征作為L(zhǎng)2范數(shù)的輔助特征。
圖3 人臉特征相似度
構(gòu)建新特征L,滿(mǎn)足式(18)、(19):
圖3中(d)、(e)、(f)圖分別記錄了(a)、(b)、(c)圖對(duì)應(yīng)數(shù)據(jù)構(gòu)建新特征的二維圖,相比一維L2范數(shù)特征在分類(lèi)策略上有更多的選擇。本文采用SVM[13]對(duì)構(gòu)建的新特征進(jìn)行分類(lèi),核函數(shù)采用高斯核。
為了證明改進(jìn)損失函數(shù)和多重范數(shù)與SVM結(jié)合的有效性,本文首先根據(jù)相同的網(wǎng)絡(luò)設(shè)置和環(huán)境,比較不同損失函數(shù)下模型訓(xùn)練后的人臉識(shí)別準(zhǔn)確度。挑選出最佳模型,通過(guò)比較利用L2范數(shù)和利用多重范數(shù)+SVM的人臉識(shí)別準(zhǔn)確率大小,證明新算法的優(yōu)勢(shì)所在。
本文采用MS-Celeb-1M-Arcface[14]數(shù)據(jù)集作為訓(xùn)練集,LFW、AgeDb[15]作為測(cè)試集。
4.1.1 MS-Celeb-1M-Arcface
在微軟亞洲研究院公布的MS-Celeb-1M的基礎(chǔ)上,文獻(xiàn)[7]檢查了所有圖片特征與身份特征中心的距離,刪除掉了距離身份特征中心較遠(yuǎn)的干擾項(xiàng),并且對(duì)距離身份特征信息較近的圖像和其身份做了對(duì)比,即在類(lèi)內(nèi)和類(lèi)間距離上排除了噪聲。該數(shù)據(jù)集包含了85 164 個(gè)ID,總共有380 4847張人臉。
4.1.2 LFW
從LFW數(shù)據(jù)集中隨機(jī)抽選了6 000對(duì)圖片,其中相同身份和不同身份的圖片對(duì)各占一半,圖4顯示了LFW數(shù)據(jù)集的部分圖片。該數(shù)據(jù)集主要用來(lái)測(cè)試人臉識(shí)別算法的準(zhǔn)確率,計(jì)算公式為(正確判斷相同身份的個(gè)數(shù)+正確判斷不同身份的個(gè)數(shù))/6 000。
圖4 LFW數(shù)據(jù)庫(kù)部分人臉
4.1.3 Agedb
AgeDb 包含了不同ID 的不同年齡段的照片,涵蓋年齡范圍為3~101歲。采用和對(duì)LFW相同的處理方式,隨機(jī)抽選6 000對(duì)照片,3 000對(duì)來(lái)自相同ID,3 000對(duì)來(lái)自不同ID,通過(guò)對(duì)比驗(yàn)證方法測(cè)試人臉識(shí)別準(zhǔn)確率。圖5為Agedb數(shù)據(jù)庫(kù)中的部分圖片。
圖5 Agedb數(shù)據(jù)庫(kù)部分人臉
實(shí)驗(yàn)使用兩個(gè)GPU 核,其型號(hào)為NVIDIAGM204-GL(Tesla M60),每個(gè)核顯存大小為8129MiB。在Linux環(huán)境下利用MxNet 庫(kù)完成實(shí)驗(yàn)?zāi)P蜆?gòu)建以及新算法實(shí)現(xiàn)。
使用SE_LResNet100_IR[7]網(wǎng)絡(luò)訓(xùn)練人臉識(shí)別模型,最后一層卷積層輸出維度為512,batch大小為80。
4.3.1 損失函數(shù)優(yōu)化結(jié)果
為了比較使用不同損失函數(shù)在訓(xùn)練過(guò)程中的收斂速度,每2 000個(gè)batch采樣一次,使用LFW和AgeDb測(cè)試采樣模型的識(shí)別準(zhǔn)確率。經(jīng)測(cè)試,在經(jīng)過(guò)64 000 個(gè)batch之后,算法進(jìn)入平穩(wěn)期,識(shí)別率出現(xiàn)震蕩且增長(zhǎng)緩慢,故本實(shí)驗(yàn)只比較了64 000 個(gè)batch 內(nèi)模型的訓(xùn)練情況。實(shí)驗(yàn)結(jié)果如圖6、圖7 所示,在余弦域損失函數(shù)中,權(quán)重-特征歸一化后的Softmax 損失函數(shù)沒(méi)有添加余弦懲罰效果較差,kcosine(k=0.825,b=-0.175)相比其他余弦域損失函數(shù)識(shí)別率增長(zhǎng)速度較快且更加平穩(wěn),在經(jīng)過(guò)64 000個(gè)batch后識(shí)別率最高。
圖6 在LFW下準(zhǔn)確率變化曲線
圖7 在Agedb下準(zhǔn)確率變化曲線
圖8 在LFW下平滑后的準(zhǔn)確率變化曲線
圖9 在Agedb下平滑后的準(zhǔn)確率變化曲線
為了減少干擾,將所有曲線進(jìn)行窗口為3的平滑濾波處理,如圖8、圖9所示,可以看出kcosine損失函數(shù)相比Softmax,在LFW 數(shù)據(jù)集上識(shí)別率增長(zhǎng)平穩(wěn),并且在64 000 個(gè)batch后的識(shí)別率更優(yōu)。在Agedb 數(shù)據(jù)集上曲線震蕩都較為明顯,但kcosine要明顯優(yōu)于Softmax損失函數(shù)訓(xùn)練模型的識(shí)別效果。
表1 比較了以上所有算法經(jīng)過(guò)64 000 個(gè)batch 訓(xùn)練之后在LFW 和Agedb 數(shù)據(jù)集上的識(shí)別率,可以看出經(jīng)過(guò)改進(jìn)的kcosine算法識(shí)別效果較好。
表1 LFW和Agedb數(shù)據(jù)庫(kù)下的識(shí)別率
將6 000對(duì)LFW人臉圖片作為輸入,經(jīng)過(guò)不同batch個(gè)數(shù)下的模型輸出后,進(jìn)行L2范數(shù)歸一化,最后分別統(tǒng)計(jì)3 000 對(duì)正類(lèi)和3 000 對(duì)負(fù)類(lèi)的L2范數(shù)均值衡量該模型輸出特征類(lèi)內(nèi)距離和類(lèi)間距離。kcosine 中參數(shù)k為0.825、b=-0.175,其目的在于當(dāng)角度余弦為-1時(shí)kcosine和w-f-norm softmax保持一致,懲罰力度為0,當(dāng)角度余弦為+1 時(shí)kcosine 和cosineface 的懲罰力度保持一致。即kcosine隨著夾角的增大,懲罰力度也逐漸增加,這樣可以避免在優(yōu)化過(guò)程中當(dāng)分類(lèi)效果不佳時(shí)懲罰的冗余。
如圖10、圖11所示,kcosine能夠?qū)㈩?lèi)內(nèi)距離快速降低,且類(lèi)間距離也相對(duì)較低,在64 000 個(gè)batch 訓(xùn)練下,kcosine 相比其他兩種算法不僅可以更好地分類(lèi),還能在類(lèi)內(nèi)距離和類(lèi)間距離上得到優(yōu)化。
本文中,人臉識(shí)別模型訓(xùn)練時(shí)使用的余弦域損失函數(shù)的時(shí)間復(fù)雜度都為O(n),n為訓(xùn)練集的大小。在訓(xùn)練過(guò)程中,訓(xùn)練60 000個(gè)batch所使用的時(shí)間如表1所示,由于涉及到GPU 調(diào)度和交互,不同算法所用時(shí)間的長(zhǎng)短關(guān)系可能存在偏差,但基本都在同一量級(jí)上。kcosine在保證人臉識(shí)別率穩(wěn)定快速增長(zhǎng)的同時(shí),用時(shí)沒(méi)有明顯增加,并且在訓(xùn)練用時(shí)相同時(shí),kcosine相比于其他幾種算法具備人臉識(shí)別率較高的優(yōu)勢(shì)。
4.3.2 多重范數(shù)特征優(yōu)化結(jié)果
采用kcosine損失函數(shù)優(yōu)化后的模型和Mobilefacenet模型,根據(jù)10-fold 規(guī)則分別測(cè)量在LFW 和Agedb 數(shù)據(jù)集下不同特征衡量方法的識(shí)別率。由表2 數(shù)據(jù)可以得出使用構(gòu)造出的多重范數(shù)特征衡量方法可以使識(shí)別率均值提升0.1%左右,并且降低了識(shí)別率標(biāo)準(zhǔn)差,有更加穩(wěn)定的泛化能力。
在識(shí)別過(guò)程中,由于只側(cè)重于實(shí)時(shí)識(shí)別效率,故不考慮歐式距離閾值計(jì)算和SVM 訓(xùn)練的用時(shí)。經(jīng)測(cè)試,每組圖片使用歐式距離分類(lèi)的平均用時(shí)為7.92×10-6s,使用多重范數(shù)+SVM 分類(lèi)的平均用時(shí)為1.23×10-5s。相對(duì)于歐式距離,多重范數(shù)的使用使得用時(shí)增加了55.3%,但根據(jù)人眼視覺(jué)暫留機(jī)制,10-6s 量級(jí)的延時(shí)對(duì)人眼體驗(yàn)來(lái)說(shuō)是幾乎沒(méi)有影響的。
圖10 類(lèi)內(nèi)距離變化趨勢(shì)圖
圖11 類(lèi)間距離變化趨勢(shì)圖
表2 LFW和Agedb數(shù)據(jù)庫(kù)下的識(shí)別率
針對(duì)余弦域損失函數(shù)的類(lèi)內(nèi)約束,本文提出了基于添加斜率因子的余弦損失函數(shù),比較了多種余弦域函數(shù)的優(yōu)劣并與常用的Softmax 作比較,分析了幾種算法在優(yōu)化類(lèi)內(nèi)距離和類(lèi)間距離的作用,改進(jìn)的損失函數(shù)在收斂速度和優(yōu)化特征類(lèi)內(nèi)距離上均能做出改善。并且針對(duì)L2范數(shù)在衡量特征相似度上存在的不足,提出了多重范數(shù)算法,利用L∞范數(shù)和L2范數(shù)結(jié)合的方式構(gòu)造新特征,實(shí)現(xiàn)特征升維的效果,通過(guò)SVM 將新特征分類(lèi),實(shí)驗(yàn)證明,構(gòu)建的新特征在SVM上有較好的分類(lèi)效果,優(yōu)化了人臉識(shí)別模型輸出個(gè)別特征不佳的缺陷,在人臉識(shí)別率提升空間不大的情況下能夠?qū)⑵涮嵘?.1%,并且使算法的泛化能力更加穩(wěn)定。