Softmax loss是圖像分類領域常用的損失函數。在本文中,softmax loss表示一組操作:最後的全連接層,softmax函數和交叉熵損失函數,如圖1所示。
Softmax loss的數學表達式如下:
其中是樣本數量;是類別數量;,可以被視為一個類別的中心, 是輸入softmax loss的樣本特徵向量,被稱為logit, 用于衡量樣本和類別之間的相似度。
將使用softmax loss訓練獲得的特徵向量用於retrieval和verification等「需要設置閾值」的任務時,效果可能不足夠好,這其中的原因是:softmax loss儘可能使得所有樣本能夠被正確地分類;而retrieval和verification等任務要求一個具有優良泛化性能的度量空間;這兩種目的的相關性很強,但是不直接等價。近年來,在人臉識別等領域對softmax loss進行了改進,使得既能夠充分利用softmax loss收斂快等良好性質,又能夠訓練獲得一個具有優良泛化性能的度量空間。這些改進方法大概能夠被劃分為歸一化(normalization)和增加margin.歸一化優化softmax loss需要增大,根據定義,增大可能會出現以下情況:1)增大正確類別的;2)增大;3)減小和之間的夾角。Ranjan等人[1]發現高質量正臉圖片的特徵向量L2-norm大,低質量側臉圖片的特徵向量L2-norm小,如圖2所示。這使得softmax loss不能夠同等對待高質量和低質量圖片。Ranjan等人提出了L2-softmax來緩解這個問題,即固定,從而使得softmax loss能夠同等對待高質量和低質量圖片。在SphereFace [4]的附錄中,Liu等人提出的大小與該類別樣本數量相關,當該類別樣本數量越大時,越大。因此,本人認為L2-softmax產生作用的前提是各類別樣本數量相當,在這個前提下,L2-softrmax可以優化和之間的夾角。圖3展示了L2-softmax的結構圖,其中可以人工設定或者學習獲得。
圖2:Images with high, medium and low L2-normWang等人[2]發現在優化softmax loss時,我們使用內積衡量相似度,但是在測試時,我們使用歸一化的內積(餘弦相似度)衡量相似度,這導致我們在訓練和測試時使用了不同的相似度指標。圖4展示了使用softmax loss優化之後的MNIST數據集在2維空間的分布,數據分布呈現輻射狀。Proposition 1 [2]解釋了數據分布呈現輻射狀的原因,即softmax loss會使得容易被正確分類的樣本特徵向量的L2-norm變大。假設使用歐氏距離來衡量,同類別的f2和f3之間的距離大於不同類別的f2和f1之間的距離,這會導致f2被錯分;根據數據分布,使用餘弦相似度更加合理。因此,我們需要固定和,使得softmax loss優化和之間的夾角,即它們之間的餘弦相似度。為了統一在訓練和測試時使用餘弦相似度,Wang等人提出了NormFace, 即, , 從而優化和之間的夾角。為了緩解歸一化和帶來的收斂性問題,作者建議增加一個縮放層(a scale layer)。為了避免偏置項的影響,Wang等人在分析中將. 本人認為NormFace的研究動機更加清晰直接,而且具有詳細的理論分析和充分的實驗結果。
圖4:使用softmax loss優化之後的MNIST數據集在2維空間的分布增加margin在face verification等任務中,我們需要一個度量空間使得「類內樣本差異小」和「類間樣本差異大」,這不是softmax loss直接優化的目標,但是可以通過優化softmax loss間接達成這個目標。在接下來的分析中,我們統一將偏置項.
Margin是機器學習領域的經典思想,用於softmax based loss是一個有意義的創新。L-softmax (large-margin softmax) [3]是將margin引入softmax的一篇開創性工作。L-softmax的目標是增大特徵向量在角度空間中的區分性。以二分類為例,傳統softmax loss的分類邊界是, L-softmax的分類邊界是 (),其中是一個正整數。圖5展示了L-softmax分類邊界的幾何解釋,由於的引入,兩個類別有不同的分類邊界,兩者之間存在angular margin, 從而使得每個類別的特徵向量被壓縮到一個更小的空間。
L-softmax的數學表達式是
其中要求在區間內單調遞減,作者在[3]中的定義如下
歸一化和增加margin是兩個不同的研究方向,幾乎在同一時期被研究,根據下文的研究工作,我們發現在增加margin方向,研究者也討論了特徵歸一化和權重歸一化的作用。L-softmax沒有引入權重歸一化。在L-softmax的基礎上,通過引入,Liu等人[4]提出了A-softmax (angular softmax, SphereFace). 根據圖6的結果,A-softmax在angular空間可以獲得區分性更好的特徵向量。此外,作者在附錄中通過實驗證明將可以減輕不同類別樣本數量不均衡的影響。A-softmax的數學表達式是
其中與L-softmax相同。
圖6:在某數據集上,經A-softmax優化之後的特徵向量分布但是,在引入margin之後,L-softmax和A-softmax的優化變得非常困難。作者提出使用組合退火策略來緩解優化問題。L-softmax和A-softmax的優化問題來源於乘性margin:
1)乘性margin將餘弦函數的單調區間壓縮到了.
2)乘性margin導致不均勻margin, 當兩個類別的區分性較弱時,乘性margin接近0.
為了緩解乘性margin的優化問題,Hao Wang等人[5]和Feng Wang等人[6]提出了加性margin. 這兩篇論文的思路是一致的,在[5]中,作者稱之為CosFace (large margin cosine loss); 在[6]中,作者稱之為AM-softmax (additive margin softmax). 通過將和, AM-softmax的數學表達式是
相比於L-softmax和A-softmax, AM-softmax更加容易優化。
Deng等人[7]將前人的工作總結統一至同一個框架,並提出了ArcFace (additive angular margin loss)
SphereFace, CosFace和ArcFace的統一數學表達式是
圖7展示了不同softmax-based loss functions的分類邊界,從圖7中我們可以認識到:1)softmax loss沒有margin; 2)SphereFace的乘性margin分布是不均勻的;3)CosFace的cosine margin分布是非線性的;4)ArcFace的angular margin分布是線性的。
圖7:二分類情況下,不同softmax-based loss functions的分類邊界
為了便於分析和比較,表1展示了這些softmax-based loss functions. 根據表1,我們可以認識到:AM-softmax和ArcFace可以被視為在NormFace的基礎上分別引入cosine margin和angular margin獲得。
總結本文梳理了softmax loss的兩個重要改進方向:歸一化和增加margin. 歸一化可以緩解簡單與困難樣本的問題和類間樣本數量不均衡問題;增加margin可以使得softmax loss的度量空間的區分性更好。
[1] Ranjan et al., L2-constrained softmax loss for discriminative face verification, arXiv 2017.
[2] Wang et al., NormFace: L2 hypersphere embedding for face verification, MM 2017.
[3] Liu et al., Large-margin softmax loss for convolutional neural networks, ICML 2016.
[4] Liu et al., SphereFace: Deep hypersphere embedding for face recognition, CVPR 2017.
[5] Wang et al., CosFace: Large margin cosine loss for deep face recognition, CVPR 2018.
[6] Wang et al., Additive margin softmax for face verification, IEEE Signal Processing Letters, 2018.
[7] Deng et al., ArcFace: Additive angular margin loss for deep face recognition, CVPR 2019.
[8] 曠視科技,人臉識別中softmax-based loss的演化史,https://zhuanlan.zhihu.com/p/76391405