人臉識別正則化系列之normface
今天介紹一下NormFace: L2 Hypersphere Embedding for Face Verification
Motivation
希望利用正則化解決兩個問題:1. 人臉識別任務裡面的loss有softmax、contrastive、triplet、pairwise等等,其中softmax是單個樣本輸入就可以訓練的,其他的都是需要sample的,尤其是metric-learning每次要sample 3個樣本才能算出一個loss,這會導致取樣空間為N^3,速度慢而且取樣策略對訓練結果影響很大;2. softmax本身優化的是沒有歸一化的內積結果,但是最後在預測的時候使用的一般是cosine距離或者歐式距離,這會導致優化目標和最終的距離度量其實並不一致。我們之前做的時候用softmax訓練做pretrain,然後後面用歐式距離的metric-learning做進一步學習或者finetune其實也是不大合理的,用一個歐式距離優化目標去finetune一個內積空間最優的模型應該不容易得到好的效果。基本原理
即使樣本被完美分類,即對應類別的輸出為1,其他的為-1,那麼這個概率Py還是一個比較小的值,而softmax loss的梯度為1-Py,這使得容易的樣本梯度也很大。相比於原來的softmax loss,其輸入的scale可以很大使得概率Py是個接近於1的數使得難易樣本的梯度差別比較明顯。所以解決辦法也就顯而易見了,就是在normalize之後加個scale,讓這個差距再拉大,所以最終normalize之後的softmax loss如下,其中w和f都是歸一化的。
到這裡為止作者已經解決了歸一化的softmax問題,那麼歸一化還有什麼好處呢,由於歸一化之後w和f的平方項為1或者常數,
那麼歐式距離、內積、cosine距離就變成了等價的
所以contrastive和metric-learning也可以寫成單樣本形式:其原理在於用Wj、Wk去代替原本loss裡面的fj和fk,作者把這個Wj叫做第j類feature的agent,
直觀的理解就是fi和他自己所在類別的Wj的距離應該足夠接近而與其他類別的Wk的距離應該足夠遠,
其實這個與原本的constractive和triplet loss還是有本質差別的,這裡的loss輸入仍然是f和W內積之後的輸出,
只不過形式變成了不同類別所對應的輸出之間的比較,而原來在沒有normalize的情況下這個值並不能等價
於cosine距離並且範圍不固定使得margin的選擇變得很困難。相比於作者之前的工作
SphereFace: Deep Hypersphere Embedding for Face Recognition. In Proceedings of the IEEE conference on computer vision
and pattern recognition,除了做weight normalize之外還做了feature normalize, 並由此設計了一些分類任務也可以實現的intra&inter classloss。