本文來自《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個角度解決人臉驗證上的問題:app
- 將人臉圖片對輸入到訓練算法中,並得到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一塊兒聯合訓練。
在無約束條件下進行人臉驗證依然是一個挑戰,由於仍然很難去處理視角,分辨率,遮擋和圖像質量等變化極大的問題。訓練集中數據質量的非平衡性也是形成上述性能瓶頸的緣由之一。現有的人臉識別訓練樣本數據集包含大量高質量的正臉圖片,而無約束和難分辨的人臉數據較少。大可能是基於DCNN的模型都是基於softmax訓練的,但是該模型傾向於對高質量圖片過擬合,因此就無法正確區分困難場景下的人臉。ide
固然使用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\)之間的關係,並提供合適的邊際,以獲取穩定的高性能;
- 在全部比賽上得到了一致,明顯的加速。
先概述下使用DCNN訓練一我的臉驗證系統的流程。
大數據
在預測的時候,用\(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。
提出的L2-softmax式子如:
做者在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維空間。
這裏提供基於DCNN,式子3的實現細節。該約束是經過增長一個L2-norm層和scale層實現的:
該模塊是全可微分的,能夠用在end-to-end的網絡訓練中。在預測階段,該模塊是冗餘的,由於在計算cos類似度的時候,自己特徵向量就須要歸一化到單位模(unit length)。在訓練階段,梯度會反向通過L2-norm和scale層。經過鏈式法則計算關於\(\alpha\)的梯度以下:
如上所述,\(\alpha\)扮演着關鍵角色。即有2種方法來加強L2-norm約束:
- 在整個訓練過程當中保持\(\alpha\)不變;
- 讓網絡本身學習\(\alpha\)。
第二個方法相對優雅並且也能保證數據驅動,從而老是可以在常規softmax上提高效果。可是網絡學到的\(\alpha\)很大,會致使一個相對寬鬆的L2-約束。softmax分類器意在最小化總的loss下增大特徵範數,如今是增大\(\alpha\),會讓網絡更自由的去擬合容易的樣本。因此由網絡學習的\(\alpha\)能夠當作是該參數的上限。因此一個更好的性能就是將\(\alpha\)固定到一個相對更低的常量。
不過另外一方面,\(\alpha\)若是很小,訓練就不會收斂,例如\(\alpha=1\)在LFW上效果就不好,只有86.37%的準確度。
做者前面DCNN用的是Face-ResNet,其結構爲: