本文來自《L2-constrained Softmax Loss for Discriminative Face Verification》,時間線為2017年6月。
近些年,人臉驗證的性能因引入了深度卷積網絡而提升很大。一個典型的人臉識別流程就是:
- 訓練一個基於softmax loss的深度卷積網絡;
- 提取倒數第二層作為每個樣本圖片的特征表征;
- 基於兩個樣本的表征向量,計算cos的向量相似度。
softmax本身並不會讓兩個正樣本對的相似度得分優化的更大,兩個負樣本對的相似度得分優化的更小。而實際需要中,需要構建具有類內緊湊性和類間可分性的特征,這會存在瓶頸,所以需要在loss上增加一些類似正則項的東西。本文中,作者在特征表征層加入\(L_2\)約束,意圖讓該樣本落在一個固定半徑的超球面表面。該模型可以很容易的基於現有的深度學習框架實現。通過在訓練集整合該簡單步驟,明顯能夠提升人臉驗證的性能。特別的,在IJB-A上的True Accept Rate為0.909,False Accept Rate為0.0001。
近些年,人臉識別上也有不少出色的工作,其主要從2個角度解決人臉驗證上的問題:
- 將人臉圖片對輸入到訓練算法中,並獲得embedding向量,在該向量中,正對(相同ID的人臉)會更靠近,負對(不同ID的人臉)會更遠離。如《Learning a similarity metric discriminatively, with application to face verification》《Discriminative deep metric learning for face verification in the wild.》,FaceNet等等;
- 將人臉圖片和對應的ID label一起用來訓練辨識性的特征。大多數現有方法是先基於softmax loss訓練一個DCNN,然后這些特征后續直接計算人臉對的相似性得分或者用來訓練得到辨識性度量embedding;另一個策略是聯合識別-驗證來多任務訓練網絡。
最近提出的center loss可以學到更具辨識性的人臉特征。不過L2-norm softmax不同的是:
- 本方法只用一個loss函數,而center loss要聯合softmax一起訓練;
- center loss在訓練中會引入額外的CxD參數,這里C是類別個數,D是特征維度;另一方面,L2-norm softmax定義中 只引入一個超參數。同時可以將L2-norm softmax 與center loss一起聯合訓練。
0 引言
在無約束條件下進行人臉驗證依然是一個挑戰,因為仍然很難去處理視角,分辨率,遮擋和圖像質量等變化極大的問題。訓練集中數據質量的非平衡性也是造成上述性能瓶頸的原因之一。現有的人臉識別訓練樣本數據集包含大量高質量的正臉圖片,而無約束和難分辨的人臉數據較少。大多是基於DCNN的模型都是基於softmax訓練的,可是該模型傾向於對高質量圖片過擬合,所以就沒法正確區分困難場景下的人臉。
當然使用softmax 訓練人臉驗證也有其優缺點:
- 一方面,它可以很容易的用現有的深度學習框架去實現,而且不同於triplet loss等,softmax不需要在輸入batchsize上做任何限制,而且收斂也快。學到的特征對於人臉驗證而言具有足夠的辨識性,且不需要額外的度量學習(metric learning);
- 另一方面,softmax對於樣本分布是有偏的。不同於contrastive loss和triplet loss,它們是特定尋找難樣本,而softmax loss就是最大化給定mini-batch下所有樣本的條件概率,因此,softmax能夠很好的擬合高質量人臉,卻忽略了整個mini-batch中很少出現的困難臉。
作者受到《Deep convolutional neural network features and the original image》的啟發,帶有L2-norm的softmax已經帶有足夠圖片質量的信息:
- 高質量的正臉特征的L2-norm很高,同時模糊且姿態特異的人臉的L2-norm很小,如圖1b
- 更甚,softmax loss不會特定優化人臉驗證的需求(即,相同ID的人臉更靠近,不同ID的人臉更遠離)。正是基於這個原因,許多方法在softmax特征部分采用度量學習《Unconstrained face verification using deep cnn features》,《Deep face recognition》,《Triplet probabilistic embedding for face verification and clustering》或者在softmax loss上增加輔助loss《Deeply learned face representations are sparse, selective, and robust》,《Latent factor guided convolutional neural networks for age-invariant face recognition》,《A discriminative feature learning approach for deep face recognition》。
本文提出一個針對softmax loss的策略,作者期望在訓練中,在特征上增加一個約束,如L2-norm。換句話說,是期望將特征約束在一個固定半徑的超球面表面,提出的L2-softmax有2個優勢:
- 同時關注高質量和低質量的人臉,因為此時所有特征都都有相同的L2-norm;
- 它通過在規范化空間(normalized space)中更嚴格的讓相同ID的特征更靠近,不同ID的特征更遠離來增強人臉驗證信息。
因此,它最大化了負對(不同ID的人臉)和正對(相同ID的人臉)之間的規范化L2距離或余弦相似性得分的邊際。因此,它克服了常規softmax loss的主要缺點。不過它同時保留了常規softmax loss的優勢:一個網絡結構,一個loss體系,不需要聯合監督(多任務學習,正則項等等方式),其本身可以很容易的基於現有的深度學習框架去編寫,而且收斂也很快。它對網絡只是引入一個標量。相比於常規softmax loss,L2-norm softmax在性能加速上有明顯提升。且在幾個比賽上比那些多網絡或者多loss的模型更好。本文貢獻:
- 提出一個簡單,新穎,高效的L2-softmax,且能將特征表征約束到一個標量\(\alpha\);
- 研究不同性能變化與尺度參數\(\alpha\)之間的關系,並提供合適的邊際,以獲取穩定的高性能;
- 在所有比賽上獲得了一致,明顯的加速。
1 背景
先概述下使用DCNN訓練一個人臉驗證系統的流程。
給定一個包含人臉和對應ID的訓練數據集,先訓練一個DCNN用作分類,該網絡此時學到如何將一張給定的人臉圖片分到對應的ID。softmax loss式子如:
這里M是batch-size,\(\mathbf{x}_i\)是該batch中第\(i\)個輸入樣本,\(f(\mathbf{x}_i)\)是DCNN倒數第二層的輸出,\(y_i\)是對應的類別,\(W,b\)是網絡最后一層(扮演着分類器角色)的權重和偏置。
在預測的時候,用\(f(\mathbf{x}_g)\)和\(f(\mathbf{x}_p)\)表示測試圖片\(\mathbf{x}_g\),\(\mathbf{x}_p\)經過DCNN得到的特征描述,並經過歸一化到單位模(length=1)。然后,在這兩個特征描述上,使用一個距離度量去計算在嵌入空間中它們之間的相似度得分。如果該得分超過一個設定的閾值,那么就判定這2張圖片來自同一ID。而常用的計算距離度量的就是L2距離或者是cos距離如式子2。
上述流程中隱含2個主要問題:
- 人臉驗證中訓練和預測是分開的。用softmax做訓練不論是在規范化還是角度空間中,都不會傾向於正對相距更近,負對相距更遠(即本身沒這種正則懲罰);
- softmax分類器在對困難或者極端樣本建模時候是很弱的。如在經典的訓練batch中,且當前batch是數據質量不平衡的,softmax可以通過增加容易樣本的L2-norm,並忽略難樣本,從而達到最小化。網絡因此通過特征描述的L2-norm來響應人臉的質量。為了驗證這個理論,作者在IJB-A上做了個實驗。首先將該數據集中templates(同一個ID的圖片/幀組,groups of images/frames of same subject)基於各自特征描述(這些特征都是使用Face-Resnet通過常規softmax訓練得到的)的L2-norm分成3個不同的子集:
- L2-norm < 90歸類到集合1;
- 90< L2-norm <150歸類到集合2;
- L2-norm< 150歸類到集合3.
它們總共形成6組評估對。圖1a描述了這6對的結果,可以很容易發現當兩個templates的L2-norm都很小的時候,效果是很差的。而如果一對中兩個的L2-norm都很大,那么效果是最好的。不同組之間的結果差距還是很明顯的。圖1b展示了集合1,集合2,集合3中的一些樣本templates,可以發現L2-norm透露着圖片質量信息。
所以作者讓每個人臉圖片的L2-norm都是固定的。即增加一個L2約束到特征描述上,從而強制每個特征都處在一個固定半徑的超球面上。該方法有2個優勢:
- 在超球面上,最小化softmax等效於最大化正對之間的cos相似度同時最小化負對之間的cos相似度,從而強調特征的驗證信息;
- softmax loss可以更好的對極端或者困難人臉進行建模,因為此時所有的人臉特征都有相同L2-norm。
2 \(L_2\) softmax loss
提出的L2-softmax式子如:
這里\(\mathbf{x}_i\)是大小為M的mini-batch中的一個輸入,\(y_i\)是對應的類別標簽,\(f(\mathbf{x}_i)\)是從DCNN倒數第二層獲取的特征描述,C是類別個數,\(W,b\)是將最后一層扮演成分類器的網絡權重和偏置。該等式相比於式子增加了一個約束項。下面用MNIST來展示該約束的效果。
2.1 基於mnist
作者在MNIST上研究了L2-softmax的效果,首先采用的是比LeNet5更深更寬的網絡結構,其中最后一層隱藏層神經元設為2,方便可視化,並做了一組對照實驗:
- 使用常規softmax進行end-to-end的訓練;
- 在最后的2維空間上,增加一個L2-norm層和scale層,即式子3的描述。
圖3描述了MNIST中1w個測試樣本,不同類的2D特征,每個點表示一個樣本。第二個對照實驗使用的向量是來自L2-norm層之前的輸出
作者在上面對照實驗中發現兩個很清晰的不同點:
- 當使用常規softmax,類內角度變化會更大,這可以通過每個葉片(形象描述)的平均寬度來計算。L2-softmax獲取的特征類內角度變化是更小的;
- 更大的特征范數,會讓一個能夠正確分類的類別獲得更大的概率。所以softmax的特征幅值要更大(都快到150了)。然而在L2-softmax中,特征范數的影響卻很小,因為每個特征都在計算loss之前被歸一化到固定半徑的園上了。因此網絡重點會在規范化或者角度空間中,將來自同一個ID的特征互相靠近,並讓來自不同ID的特征相互遠離 。
ps:值得注意的是,這里基於經典DCNN並將圖片映射到2維空間。
2.2 實現細節
這里提供基於DCNN,式子3的實現細節。該約束是通過增加一個L2-norm層和scale層實現的:
該模塊就是簡單添加到原始帶有softmax的DCNN倒數第二層之后,softmax層之前。
L2-norm層通過式子4歸一化輸入特征\(\mathbf{x}\)到單元向量上。scale層如式子5,通過一個參數\(\alpha\)將輸入向量尺度縮放到固定半徑上。也就是總的來說,引入了一個標量參數\(\alpha\),而它可以通過網絡其他參數一起訓練。
該模塊是全可微分的,可以用在end-to-end的網絡訓練中。在預測階段,該模塊是冗余的,因為在計算cos相似度的時候,本身特征向量就需要歸一化到單位模(unit length)。在訓練階段,梯度會反向經過L2-norm和scale層。通過鏈式法則計算關於\(\alpha\)的梯度如下:
2.3 參數分析
如上所述,\(\alpha\)扮演着關鍵角色。即有2種方法來增強L2-norm約束:
- 在整個訓練過程中保持\(\alpha\)不變;
- 讓網絡自己學習\(\alpha\)。
第二個方法相對優雅而且也能保證數據驅動,從而總是能夠在常規softmax上提升效果。但是網絡學到的\(\alpha\)很大,會導致一個相對寬松的L2-約束。softmax分類器意在最小化總的loss下增大特征范數,現在是增大\(\alpha\),會讓網絡更自由的去擬合容易的樣本。所以由網絡學習的\(\alpha\)可以看成是該參數的上限。所以一個更好的性能就是將\(\alpha\)固定到一個相對更低的常量。
不過另一方面,\(\alpha\)如果很小,訓練就不會收斂,例如\(\alpha=1\)在LFW上效果就很差,只有86.37%的准確度。
原因猜測是如果基於一個小的半徑的超球面,其超球面的面積更受限,來自同一個類的樣本和不同類的樣本的分布就相對沒更大半徑超球面要容易區分。
因此,需要計算得到\(\alpha\)的下界。假設類別個數C有2倍小於特征維度D,那么可以在維度D的超球面上進行分布,保證任意2個類的中心相距90度。
如圖5a,表示在一個半徑為\(\alpha\)的園上分布C=4個類中心。並假設分類器權重\(W_i\)是指向各自類別中心方向上的單元向量,並忽略偏置。
正確對一個特征進行分類的平均softmax分類概率\(p\)為:
忽略項\(e^{-\alpha}\),然后將類別泛化到C類,平均概率為:
圖5b中可以發現,在給定分類概率(p=0.9)下,C更大,那么\(\alpha\)就需要更大。給定類別C,可以通過下面式子獲得\(\alpha\)的下界
3 實驗及分析
作者前面DCNN用的是Face-ResNet,其結構為:
基於caffe實現。