Introduction
人臉識別系統通常由以下構建模塊組成:
- 人臉檢測。人臉檢測器用於尋找圖像中人臉的位置,如果有人臉,就返回包含每張人臉的邊界框的坐標。如圖 3a 所示。
- 人臉對齊。人臉對齊的目標是使用一組位於圖像中固定位置的參考點來縮放和裁剪人臉圖像。這個過程通常需要使用一個特征點檢測器來尋找一組人臉特征點,在簡單的 2D 對齊情況中,即為尋找最適合參考點的最佳仿射變換。圖 3b 和 3c 展示了兩張使用了同一組參考點對齊后的人臉圖像。更復雜的 3D 對齊算法(如 [16])還能實現人臉正面化,即將人臉的姿勢調整到正面向前。
- 人臉表征。在人臉表征階段,人臉圖像的像素值會被轉換成緊湊且可判別的特征向量,這也被稱為模板(template)。理想情況下,同一個主體的所有人臉都應該映射到相似的特征向量。
- 人臉匹配。在人臉匹配構建模塊中,兩個模板會進行比較,從而得到一個相似度分數,該分數給出了兩者屬於同一個主體的可能性。
人臉識別相關方法的發展如下圖所示:
對於基於 CNN 的人臉識別方法,影響准確度的因素主要有三個:訓練數據、CNN 架構和損失函數。
因為在大多數深度學習應用中,都需要大訓練集來防止過擬合。一般而言,為分類任務訓練的 CNN 的准確度會隨每類的樣本數量的增長而提升。這是因為當類內差異更多時,CNN 模型能夠學習到更穩健的特征。但是,對於人臉識別,我們感興趣的是提取出能夠泛化到訓練集中未曾出現過的主體上的特征。因此,用於人臉識別的數據集還需要包含大量主體,這樣模型也能學習到更多類間差異。
人臉識別實驗中常用到close-set和open-set:
- close-set:就是所有的測試集都在訓練集中出現過。所以預測結果是圖片的ID,如果想要測試兩張圖片是否是同一個,那么就看這兩張圖片的預測ID是否一樣即可。
- open-set:就是測試的圖片並沒有在訓練集中出現過,那么每張測試圖片的預測結果是特征向量,如果想要比較兩張圖片的人臉是否屬於同一個人,需要測試圖像特征向量的距離。
在光照較差,遮擋,形變(大笑),側臉等諸多條件下,神經網絡很難提取出與“標准臉”相似的特征,異常臉在特征空間里落到錯誤的位置,導致識別和驗證失敗。這是現代人臉識別系統的局限,一定程度上也是深度學習(深度神經網絡)的局限。
面對這種局限,通常采取三種應對措施,使人臉識別系統能正常運作:
1. 工程角度:研發質量模型,對檢測到人臉質量進行評價,質量較差則不識別/檢驗。
2. 應用角度:施加場景限制,比如刷臉解鎖,人臉閘機,會場簽到時,都要求用戶在良好的光照條件下正對攝像頭,以避免采集到質量差的圖片。
3. 算法角度:提升人臉識別模型性能,在訓練數據里添加更多復雜場景和質量的照片,以增強模型的抗干擾能力。
Euclidean Based Metric Learning
Contrastive loss
DeepID1並不屬於contrastive loss系列,只是作為DeepID系列的開山之作而放在這里。
DeepID1:《Deep Learning Face Representation from Predicting 10,000 Classes》
DeepID2:《Deep learning face representation by joint identification-verification》
DeepID2+:《Deeply learned face representations are sparse, selective, and robust》
DeepID3:《Deepid3: Face recognition with very deep neural networks》
DeepID1:
DeepID2:
DeepID2+:
DeepID3:
Triplet Loss
《Facenet: A unified embedding for face recognition and clustering》
Center Loss
《A Discriminative Feature Learning Approach for Deep Face Recognition》
\(c_{y_i}\)代表樣本\(i\)對應類別\(y_i\)所屬的類中心。理想情況下,這個類中心在每次迭代時都需要利用整個數據集的特征來更新,但是這會需要巨大的計算量。因此,在實際使用中,做了如下修改:
- 由整個訓練集更新center改為mini-batch更新center;
- 避免錯誤分類的樣本的干擾,使用scalar α 來控制center的學習率;
雖然center loss取得了良好的結果,但是也有一些不足之處。Center Loss考慮到了使得類內緊湊,卻不能使類間可分;另外訓練樣本對的選擇也較為麻煩。在論文中,作者也提到了,選取合適的樣本對對於模型的性能至關重要,論文中采用的方法是每次選擇比較難以分類的樣本對重新訓練,類似於hard-mining。同時,合適的訓練樣本還可以加快收斂速度。
Center-Invariant Loss
《Deep face recognition with center invariant loss》
Range Loss
《Range loss for deep face recognition with long-tail》
Summary
基於歐式距離的Metric Learning符合人的認知規律,在實際應用中也取得了不錯的效果,但是它有非常致命的兩個問題:
- 模型需要很長時間才能擬合,contrastive loss和triplet loss的訓練樣本都基於pair或者triplet的,可能的樣本數是O(N2)或者O(N3)的。當訓練集很大時,基本不可能遍歷到所有可能的樣本,所以一般來說需要很長時間才能擬合;
- 模型好壞很依賴訓練數據的sample方式,理想的sample方式不僅能提升算法最后的性能,更能略微加快訓練速度。
Margin Based Classification
Softmax Loss
這里的W可以理解為一組基向量,每一個維度對應一個類別。\(W_iX_i\)即將數據\(X_i\)映射到類別\(i\)對應的維度上,\(X_i\)與基向量\(W_i\)的夾角越小,則數據\(X_i\)屬於類別\(i\)的概率越大。因此,對於一個二分類問題而言,只要\(X_i\)與其中一個基向量\(W_i\)的夾角小於45°,則\(X_i\)即被分類為類別\(i\)。
從上述分析可以看出,基於Softmax的分類只要求能夠得到正確的分類結果,但是這種形式並不能夠有效地學習得到使得類內較為緊湊、類間較離散的特征。
L-Softmax Loss
《Large-margin softmax loss for convolutional neural networks》
其中,\(\psi(\theta)\)可以表示為:
公式中的\(\mathcal{D}(\theta)\)必須是一個單調減函數,且\(\mathcal{D}\left(\frac{\pi}{m}\right)=\cos \left(\frac{\pi}{m}\right)\), 以保證 \(\psi(\theta)\)是一個連續函數。
為了簡化前向和后向傳播的計算,作者構建了一種等價的函數形式 \(\psi(\theta)\):
Large-Margin Softmax Loss是Softmax Loss引入margin思想的改進版本。即要是數據\(X_i\)不僅能夠正確分類,而且與正確類別對應基向量的夾角要大於不同類別基向量的夾角一定的margin角度。因此在學習同類樣本時,增強了同類學習的難度,這個難度要比不同類的難度要大些。這樣的區別對待使得特征的可區分性增強。
為了簡單明了地表明L-Softmax Loss的有效性,作者討論了一個二分類問題,只包含\(W_1\)和\(W_2\)。分析結果如下圖所示:
A-Softmax Loss
《Sphereface: Deep hypersphere embedding for face recognition》
A-Softmax與L-Softmax的最大區別在於A-Softmax的權重歸一化了,而L-Softmax則沒有。A-Softmax權重的歸一化導致特征上的點映射到單位超球面上,而L-Softmax則不沒有這個限制,這個特性使得兩者在幾何的解釋上是不一樣的。如圖1所示,如果在訓練時兩個類別的特征輸入在同一個區域時,如下圖10所示。A-Softmax只能從角度上分度這兩個類別,也就是說它僅從方向上區分類,分類的結果如圖2所示;而L-Softmax,不僅可以從角度上區別兩個類,還能從權重的模(長度)上區別這兩個類,分類的結果如圖3所示。在數據集合大小固定的條件下,L-Softmax能有兩個方法分類,訓練可能沒有使得它在角度與長度方向都分離,導致它的精確可能不如A-Softmax。
問題:
A-Softmax雖然效果很好,但是存在着顯著的問題。在測試階段,A-Softmax通過特征間的余弦值來衡量相似性,即以角度為相似性的度量;但在訓練階段,A-Softmax並不是直接優化特征與類中心的角度,而是優化特征與類中心的角度再乘上一個特征的長度。因此,優化的方向還有一部分是去增大特征的長度。下圖是A-Softmax在Mnist數據集上的實驗,分別對應m=1和m=4時的特征可視化。注意坐標的尺度,就能驗證上述觀點。
NormFace
NormFace: \(L_2\) Hypersphere Embedding for Face Verification Feng
AM-Softmax Loss
《Additive Margin Softmax for Face Verification 》
AM-Softmax令\(||x||=1, ||W||=1, b=0\)。\(s\)為縮放因子,論文里固定為30。
角度距離和與余弦距離:
A-Softmax中為\(\cos m\theta_{y_{i}}\),而AM-Softmax為\(\cos\theta_{y_{i}}-m\)。一個是角度距離(angular margin),一個是余弦距離(cosine margin)。當使用傳統的softmax作為損失函數時,角度距離和余弦距離是等價的,即:\(\cos \left(\theta_{1}\right)=\cos \left(\theta_{2}\right) \Rightarrow \theta_{1}=\theta_{2}\)。但當試圖改變決策邊界時,角度距離和余弦距離便不再等價。最終的決策邊界是和余弦相關的,根據cos的性質,優化角度距離比優化余弦距離更有效果,因為余弦距離相對更密集。(為什么論文采用優化余弦距離?)
AM-Softmax的好處在於A-Softmax的倍角計算是要通過倍角公式,反向傳播時不方便求導,而只減m反向傳播時導數不用變化。
特征歸一化:
高質量的圖片提取出來的特征范數大,低質量的圖片提取出來的特征范數小,如圖:
Softmax的目標是盡可能最大化正確分類的概率。它會忽略掉一些比較難分辨的圖片(低質量的圖片),優先擬合高質量的圖片。而L2-Softmax中提到,質量較差的人臉圖片的特征范數越小。在進行了特征歸一化后,這些質量較差的圖片特征會產生更大的梯度,導致網絡在訓練過程中將更多的注意力集中在這些樣本上。因此,對於數據集圖片質量較差時,更適合采用特征歸一化。
如下圖所示,對一個具有二維的特征,正則化后,特征被表示在一個圓中。傳統softmax的決策邊界即是向量\(P_0\),則有\(W_{1}^{T} P_{0}=W_{2}^{T} P_{0}\);而AM-softmax是以決策區域替代決策邊界,對於類別1的邊界為向量\(P_1\),定義\(W_{1}^{T} P_{1}-m=W_{2}^{T} P_{1}\),那么\(m=\left(W_{1}-W_{2}\right)^{T} P_{1}=\cos \left(\theta_{W_{1}}, P_{1}\right)-\cos \left(\theta_{W_{2}}, P_{1}\right)\)。更進一步假設所有的類別都具有相同的方差,\(P_2\)是類別2的邊界向量,那么\(\cos \left(\theta_{W_{2}}, P_{1}\right)=\cos \left(\theta_{W_{1}}, P_{2}\right)\),所以\(m=\cos \left(\theta_{W_{1}}, P_{1}\right)-\cos \left(\theta_{W_{1}}, P_{2}\right)\)。
CosFace
CosFace: Large Margin Cosine Loss for Deep Face Recognition
subject to:
ArcFace
ArcFace: Additive Angular Margin Loss for Deep Face Recognition
\(\\cos \left(\theta_{y_{i}}+m\right)\)相當於原始的余弦函數在x軸上向左偏移。論文中將余弦余量\(m\)設置為 0.35(AM-Softmax, CosFace)。與 SphereFace 相比,附加余弦余量(CosineFace)有三個優點:
- 非常容易實現,沒有棘手的超參數;
- 沒有Softmax監督,更清晰,更易收斂;
- 性能有明顯改善。
Summary
L-Softmax(\(\cos m\theta_{y_{i}}\))、A-Softmax(\(\cos m\theta_{y_{i}}\))、AM-Softmax(\(\cos\theta_{y_{i}}-m\))、CosFace(\(\cos\theta_{y_{i}}-m\))、ArcFace(\(\\cos \left(\theta_{y_{i}}+m\right)\))的本質都是對cosine函數以及margin形式進行改進。區別在於不同的函數形式在前向傳播和反向傳播時所需的計算量有所不同。
cosine函數的圖像為:
但是上述所有損失函數嚴格要求每個類別都有相同的margin,沒有考慮到類別間的語義相關性,使得訓練的難度較大。語義相關性即:部分類別的相似程度高於其他類別,如:貓和狗的相似度高於貓和猴子的相似度。在人臉識別任務中,雖然所有的類別都是人,但是世界上存在着不同的人種:膚色、五官等都有着顯著的區別,且不同地區的長相也趨向於不同。而上述損失函數均沒有考慮到人種間的差異性和相似性。