最陌生的老朋友Softmax Loss

今天給大家介紹的工作是大家最陌生的老朋友Softmax Loss。Softmax可以算是最爲廣泛使用的分類loss,在大家都在極力壓榨網絡結構來換取性能提升的時候,回過頭來再去看看這個網絡訓練的“指揮棒”,能有很多新的發現。

其實在讀到這一系列工作之前,我花很久考慮過一個問題,對於SVM來講,margin的概念十分清晰易懂,那麼對於Softmax而言,如果我們要引入Max Margin的概念,那麼所謂的margin究竟是什麼?實話講,這個問題是我考慮很了很久,但是並沒有清晰答案的一個問題,把這一系列的工作串起來後,這個困擾我很久的問題終於有了解答。

爲了能對這一系列工作有更深刻的理解,我們需要從幾何上來理解softmax loss究竟在做什麼。爲了方便表述,下文所指softmax loss均指softmax之前的全連接層+softmax loss function,即
這裏寫圖片描述

其中f_i爲第i個sample的feature,y_i爲其對應的label,w_{y_i}爲y_i類對應的weight。爲了方便後文推導,我們可以認爲bias term b = 0。這裏有一個關鍵的變換是,我們把inner product表示爲:
這裏寫圖片描述

這個簡單的變換是後面這一系列工作的核心:我們可以看到這個inner product的大小,和三個元素相關:w的l2 norm,f的l2 norm,w和f這兩個向量的夾角。如果我們對於類別沒有特殊的假設,那麼w的l2 norm可以認爲是一致的。那麼可以影響結果的就只有後兩項了,後面介紹的一系列工作都是在這兩項上進行改動。在開始之前,我們需要一個在二維的空間中直觀的解釋來幫助理解:
這裏寫圖片描述

在這些圖中,黃色和綠色的點分別代表兩類樣本,黑色的虛線代表decision boundary,黑色的實線代表兩個class的weight。這些weight vector,把整個空間劃分成了若干個錐形,每個錐形對應着一類樣本的空間。如果假設每一類的weight的l2 norm是一致的,那麼每個樣本屬於哪一類就只和這個樣本在這些weight vector的方向上投影長度相關。
最左側的圖中,顯示的是原始的softmax,可以看到,由於softmax並沒有顯式地加強margin,會導致訓練樣本可以分對,但是泛化性能並不好的情況。尤其是對於Deep Learning 模型而言,由於模型複雜度較高,大量的樣本在訓練後期正確類別的概率都會在0.99以上,這會導致大量的樣本在訓練後期回傳的gradient非常小,從而不能更好地指導模型的訓練。

所以爲了拓展這個margin,根據前面的分析,主要有兩個方向:第一個方向是限定f的l2 norm的情況下讓不同類之間的角度維持一個margin,這個方向上代表的兩個工作是[1, 2];第二個方向在第一個方向上更進一步,儘量讓f的l2 norm變大[3]。這分別對應的是中間和右側的示意圖。在中間的圖中,可以看到如果我們在投影的夾角上加入一個margin,可以讓每一類的樣本push向正確類別的weight方向(藍色箭頭),最終都集中在過原點的一個錐中,這樣可以顯著改善類間和類內距離;最右側的圖中,我們更進一步,我們不僅僅希望在這樣的一個錐中,還希望樣本的特徵表示f儘量遠離原點(紅色箭頭),在這樣一個錐形的“底部”。下面分別介紹下這兩類工作的formulation。

在第一類工作中,以[1]舉例,我們希望得到一個更嚴格的formulation,對於合適的m,我們希望滿足:
這裏寫圖片描述
其對應的loss function爲:
這裏寫圖片描述

雖然看上去phi的定義比較複雜,原因在於cos函數並不是單調的,通過合適的phi定義是爲了保障loss function是單調遞減的。一個示例如下圖:
這裏寫圖片描述
整個BP的過程就不再贅述,是很標準的求導操作。實驗中,作者使用mnist做了一個很直觀的illustration,相信大家看了也會一目瞭然:
這裏寫圖片描述
[2]在這個基礎上,引入了對weight的normalization,提供了更好的理論分析,以及對open set樣本性能的提升。

對於第二個方向,[3]給出了很好的探索。首先作者給出了理論證明,feature norm並不需要無限增長來保障泛化性能,所以在設計對應的regularization的時候,作者希望這個term的強度和feature norm的大小成反比。所以作者使用了下述的方式:
這裏寫圖片描述

其中h(i)爲一個indicator function指示第i個樣本有沒有分類正確。雖然可以理解作者引入這個indicator的目的是希望只有在分類正確的時候再講feature的l2 norm加大以增強和其他類的margin,但是首先這個indicator會導致整個目標的不連續,不能區分剛好在margin上的樣本和完全錯誤的樣本。這裏可能使用一個連續如tanh的近似可能更加合理。其次按照作者提供的motivation,對於分類正確的樣本應當增加feature l2 norm,同樣對於錯誤的樣本應當減小其l2 norm,但是在這個設計上並沒有體現出這一點。第三,這個indicator function並沒有和w和f相關,這會導致這一項的gradient無法回傳。所以個人覺得作者motivation很讓人信服,但是在具體的regularization設計上,可能存在改進的空間。

值得一提的是,最近還有大量的文章[4, 5, 6, 7],提到了feature normalization和之後的scale對於性能的提升,也提供了很多理論分析的結果。這幾個工作和前面介紹的工作十分相關,有興趣的讀者可以自行參考。但是需要注意這些工作中首先將feature normalize,然後再去scale到一個較大值的方式並不等價於直接增大f的l2 norm。原因在於這樣scale並沒有通過gradient回傳給之前的feature extractor(即CNN)需要增大feature的l2 norm的信息,只是對於feature的“後處理”。這樣雖然能夠改善最終softmax分類器的性能,但並不能指導CNN學習到泛化能力更強的feature。

關於我們老朋友softmax的故事今天就給大家介紹到這裏。除了各種花樣翻新的網絡結構,這些看似很熟悉的東西其實對於性能的提升也很顯著,希望大家多拓寬思路,畢竟條條大路通羅馬~

[1]Liu, Weiyang, Yandong Wen, Zhiding Yu, and Meng Yang. “Large-Margin Softmax Loss for Convolutional Neural Networks.” InProceedings of The 33rd International Conference on Machine Learning, pp. 507-516. 2016.
[2] Liu, Weiyang, Yandong Wen, Zhiding Yu, Ming Li, Bhiksha Raj, and Le Song. “SphereFace: Deep Hypersphere Embedding for Face Recognition.” arXiv preprint arXiv:1704.08063 (2017).
[3] Yuan, Yuhui, Yang Kuiyuan, Zhang Chao. “Feature Incay for Representation Regularization” arXiv preprint arXiv:1704.08063 (2017).
[4] Chunjie, Luo, and Yang Qiang. “Cosine Normalization: Using Cosine Similarity Instead of Dot Product in Neural Networks.” arXiv preprint arXiv:1702.05870 (2017).
[5] Ranjan, Rajeev, Carlos D. Castillo, and Rama Chellappa. “L2-constrained Softmax Loss for Discriminative Face Verification.” arXiv preprint arXiv:1703.09507 (2017).
[6] Wang, Feng, Xiang Xiang, Jian Cheng, and Alan L. Yuille. “NormFace: L2 Hypersphere Embedding for Face Verification.” arXiv preprint arXiv:1704.06369 (2017).
[7] Liu, Yu, Hongyang Li, and Xiaogang Wang. “Learning deep features via congenerous cosine loss for person recognition.” arXiv preprint arXiv:1702.06890 (2017).

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章