度量學習
基于深度學習的人臉識別算法,如何讓神經(jīng)網(wǎng)絡(luò)從訓練數(shù)據(jù)中學習到有效、魯棒的生物特征是至關(guān)重要的。在這個過程中,一個良好的學習向?qū)遣豢苫蛉钡?。因此,在模型訓練的過程中,通常使用度量學習的方式,將人物面部特征間的距離,作為神經(jīng)網(wǎng)絡(luò)特征學習的向?qū)В瑏韺崿F(xiàn)區(qū)分不同人物的目的。
為了讓神經(jīng)網(wǎng)絡(luò)能夠更加有效的學習,合理的設(shè)計損失函數(shù)來度量和映射人物特征之間的距離,成為了提高人臉識別精度的主要研究方向之一。許多在分類任務(wù)中常用的損失函數(shù),如Softmax Loss,在經(jīng)過一系列的改進之后,更好的適應(yīng)了人臉識別的任務(wù)。像Arcface這樣的損失函數(shù)(下圖),利用了一種附加角度對cos值進行加法約束,使得模型能夠在學習過程中合理的壓縮相同人物特征間的余弦距離的同時增大不同人物特征間的余弦距離,以此達到精準區(qū)分人物的目的。
圖示展示在利用損失函數(shù)arcface訓練一個深度卷積神經(jīng)網(wǎng)絡(luò)過程中的計算流程。其中的改進在于,給角度加入了加性間隔m作為懲罰項來減小類間間距,并對其余弦值加入放縮s進行放縮,讓網(wǎng)絡(luò)變得易于訓練。
另一些損失函數(shù),如Triplet Loss(下圖),則是通過以特定規(guī)則從訓練集中選擇樣例,提取特征,比較這些特征之間的距離,來達到聚類相同人物特征和離散不同人物特征的目的??梢钥吹剑@種方法因為要逐次比對選擇樣例特征之間的距離并基于此來優(yōu)化模型參數(shù),所以會延長模型訓練的周期。但對于解決一些特殊場景下的困難樣例,會有較好的效果。
圖示為最初版本的Triplet Loss原理示意圖。訓練過程中需要從訓練集中選擇一個Anchor樣本以及與Anchor樣本同類的Positive樣本和與Anchor樣本異類的Negative樣本,在訓練過程中不斷的拉近同類樣本的距離并遠離異類樣本。
選擇不同的損失函數(shù),會對模型進行識別任務(wù)時選用的距離公式(相似度計算方法)產(chǎn)生影響。例如,Triplet Loss在早期優(yōu)化的是歐氏距離,所以在后期進行特征比對時,利用歐式距離來計算特征之間相似度就是更加自然的。此外,通過對這些損失函數(shù)進行變形,來統(tǒng)一各損失函數(shù)的優(yōu)化距離,從而使不同的損失函數(shù)能夠運用在訓練模型的不同階段,或?qū)⒉煌瑩p失函數(shù)對不同的樣例分配進行結(jié)合,從而達到更高效的訓練效率,也是目前的工作方向之一。
網(wǎng)絡(luò)結(jié)構(gòu)
根據(jù)使用場景和計算設(shè)備的不同,通常需要選擇不同規(guī)模的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。隨著人臉識別在移動端的普及以及識別規(guī)模的增大,選用計算量更小、更高效的網(wǎng)絡(luò)結(jié)構(gòu)成為了重要的研究方向。
標準的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),以VGG16為例,通常由卷積層,池化層,全連接層和激活函數(shù)組成。該網(wǎng)絡(luò)通過反復(fù)堆疊3*3的小型卷積核和2*2的最大池化層,不斷加深網(wǎng)絡(luò)結(jié)構(gòu)來提升性能。
但隨著網(wǎng)絡(luò)結(jié)構(gòu)的進一步加深,網(wǎng)絡(luò)參數(shù)會隨之增多,運算開銷會變得很大,增加運算成本。同時,網(wǎng)絡(luò)結(jié)構(gòu)的加深也會讓網(wǎng)絡(luò)發(fā)生退化現(xiàn)象,以至于在進一步訓練時無法達到預(yù)期的精度。
為解決這些問題,設(shè)計出參數(shù)少,深度深,運算快,易于訓練的輕量級網(wǎng)絡(luò)網(wǎng)絡(luò),各種卷積結(jié)構(gòu)和模塊被逐步引入到了卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)構(gòu)架中。
殘差模塊:為解決加深網(wǎng)絡(luò)后的網(wǎng)絡(luò)退化問題,使深度網(wǎng)絡(luò)變得可訓練而提出的結(jié)構(gòu)(見下圖)。這種跳躍連接的結(jié)構(gòu)讓網(wǎng)絡(luò)有能力在需要的時候擬合一個潛在的恒等映射函數(shù),從而避免了在極深網(wǎng)絡(luò)中出現(xiàn)的難以訓練的問題。
分組卷積:在標準的卷積操作中,其參數(shù)量與輸入特征圖通道數(shù),卷積核尺寸和輸出特征圖通道數(shù)有關(guān)。如圖,若輸入特征圖尺寸為H*W*c1,卷積核尺寸為h1*w1*c1,輸出特征圖尺寸為H*W*c2,標準卷幾層的參數(shù)量則為:h1*w1*c1*c2。
若使用分組卷積(見下圖),事先將輸入的特征圖按照通道數(shù)分為g組,分組卷積的參數(shù)量為則會變成標準卷積參數(shù)量的1/g:h1*w1*c1*c2/g。
分組卷積能夠在一定程度上降低卷積的參數(shù)量,但也會減弱各通道之間的相關(guān)性。
深度可分離卷積:深度可分離卷積操作是將普通卷積拆解成深度卷積和逐點卷積。深度卷積負責濾波,逐點卷積負責轉(zhuǎn)換通道。
如圖(a),對于標準卷積,其參數(shù)量為Dk*Dk*M*N。如圖(b),對于深度卷積,其參數(shù)量為:Dk*Dk*1*M。 如圖(c),對于逐點卷積,其參數(shù)量為:1*1*M*N。將兩項操作合并,可知深度可分離卷積參數(shù)量 是標準卷積的:(1/N)+(1/Dk**2)。
棄用池化層:池化層分為平均池化和最大池化,通過制定規(guī)則對池化核覆蓋范圍內(nèi)的像素進行運算,達到學習圖像邊緣及紋理結(jié)構(gòu),同時壓縮特征圖的效果。但池化層常常會導(dǎo)致較多的信息損失,因此,通常使用控制卷積核在特征圖上的滑動步長(如設(shè)定stride=2),來達到壓縮特征圖,提取圖像特征的目的。
減少全連接層:因為全連接層需要將每個神經(jīng)元節(jié)點與其前后層的神經(jīng)元分別連接,其通常會占據(jù)卷積神經(jīng)網(wǎng)絡(luò)的大部分參數(shù)。為了減少模型的參數(shù),會盡量減少全連接層的使用,通常利用全劇平均池化或大尺寸卷積核取代全連接層,來融合學到的特征。
同時,為了讓模型能夠更好的提取人物面部的特征,專門的人臉識別網(wǎng)絡(luò)在這些方面進行了優(yōu)化,例如mobilefacenet在卷積網(wǎng)絡(luò)的尾部加入7*7卷積核壓縮特征圖,直接將特征圖轉(zhuǎn)化成相應(yīng)維度的面部特征并送入全連接層這樣的操作。對于一些特殊場景下的識別任務(wù),則會根據(jù)需求,定制出相應(yīng)的結(jié)構(gòu)模塊。例如,在面對面部遮擋的任務(wù)中,融入空間注意力機制,實現(xiàn)事先為特征熱力圖的空間分布的加權(quán),就變得相對重要。
編輯:lyn
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4814瀏覽量
103679 -
網(wǎng)絡(luò)結(jié)構(gòu)
+關(guān)注
關(guān)注
0文章
48瀏覽量
11607 -
深度學習
+關(guān)注
關(guān)注
73文章
5561瀏覽量
122806
發(fā)布評論請先 登錄
【幸狐Omni3576邊緣計算套件試用體驗】人臉識別
BP神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計原則
BP神經(jīng)網(wǎng)絡(luò)與深度學習的關(guān)系
人臉識別技術(shù)的優(yōu)勢與劣勢
人臉識別技術(shù)的算法原理解析
FacenetPytorch人臉識別方案--基于米爾全志T527開發(fā)板
FacenetPytorch人臉識別方案--基于米爾全志T527開發(fā)板

評論