本文來自《Large-Margin Softmax Loss for Convolutional Neural Networks》,時間線爲2016年12月,是北大和CMU的做品。網絡
過去十幾年,CNN被應用在各個領域。你們設計的結構,基本都包含卷積層和池化層,能夠將局部特徵轉換成全局特徵,並具備很強的視覺表徵能力。在面對更復雜的數據下,結構也變得更深(VGG),更小的strides(VGG),新的非線性激活函數(ReLU)。同時受益於很強的學習能力,CNN一樣須要面對過擬合的問題。因此一些如大規模的訓練集,dropout,數據加強,正則,隨機池化等都不斷被提出。ide
最近的主流方向傾向於讓CNN可以學到更具辨識性的特徵。直觀上來講,若是特徵具備可分性且同時具備辨識性,這是極好的。但是由於許多任務中自己包含較大的類內變化,因此這樣的特徵也不是輕易可以學到的。不過CNN強大的表徵能力能夠學到該方向上的不變性特徵,受到這樣的啓發,contrastive loss和triplet loss都所以提出來加強類內緊湊性和類間可分性。然而,一個後續問題是,所須要的圖片二元組或者三元組理論上須要的量是\(O(N^2)\),這裏\(N\)是訓練樣本的個數。考慮到CNN常常處理大規模訓練集合,因此須要精心的選擇訓練集的一個子集來擬合這些loss函數。由於softmax的簡潔和機率可解釋性,softmax被普遍的應用。再加入cross-entropy loss一塊兒使用,造成了最CNN分類結構中最經常使用的組件。函數
本文中,做者將softmax loss定義爲cross-entropy loss,softmax函數和最後一層全鏈接層的組合。以下圖
性能
做者本文的目的就是經過角度類似度項,泛化softmax loss到一個更通用的大邊際softmax(L-Softmax)loss上,從而讓學到的特徵之間具備更大的角度可分性。經過預設常數\(m\),乘以樣本和ground-truth類別分類器之間的角度。\(m\)肯定了靠近ground-truth類的強度,提供了一個角度邊際。而傳統的softmax loss能夠當作是L-sofmax loss的一個特例。
學習
- 傾向擴大類之間的角度決策邊際,生成更多辨識性的特徵。它的幾何解釋也十分清晰和直觀;
- 經過定義一個更困難的學習目標來部分避免過擬合,即採用了不一樣的觀點來闡述過擬合;
- L-Softmax不止得益於分類問題。在驗證問題中,最小的類間距離也會大於最大的類內距離。這種狀況下,學習可分性的特徵能夠明顯的提高性能。
做者的實驗驗證了L-Softmax能夠有效的加速分類和驗證任務的性能。更直觀的,圖2和圖5中的特徵可視化都揭示了L-Softmax loss更好的辨識性
測試
當前普遍使用的數據loss函數包含歐式loss,hinge(平方) loss,信息增益loss,contrastive loss, triplet loss, softmax loss等等。爲了加強類內緊湊性和類間可分性,《Deep learning face representation by joint identificationverification》提出將softmax和contrastive相結合。contrastive loss輸入的是一對訓練樣本,若是這對樣本屬於同一個類,那麼contrastive loss須要他們的特徵儘量的類似;不然,contrastive loss會讓他們的距離超過一個邊際閾值。優化
而不論是contrastive loss仍是triplet loss都須要仔細的設計樣本選擇過程。而他們都更加傾向類內緊湊性和類間可分性,這也給做者一些靈感:在原始softmax loss上增長一個邊際限制。spa
做者提出在原始softmax loss上進行泛化。假設第\(i\)個輸入特徵\(x_i\)和對應的label是\(y_i\)。那麼原始softmax loss能夠寫成:
\[L=\frac{1}{N}\sum_i L_i=\frac{1}{N}\sum_i-\log \left ( \frac{e^{f_{y_i}}}{\sum_j e^{f_j}}\right ) \tag{1}\]
其中,\(f_j\)表示類別得分\(\mathbf{f}\)向量的第\(j\)個元素(\(j\in [1,K]\),K表示類別個數),N表示樣本個數。在softmax loss中,\(\mathbf{f}\)一般表示全鏈接層\(\mathbf{W}\)的激活函數,因此\(f_{y_i}\)能夠寫成\(f_{y_i}=\mathbf{W}_{y_i}^Tx_i\),這裏\(\mathbf{W}_{y_i}\)是\(\mathbf{W}\)的第\(y_i\)列。注意到,忽略了\(f_j\)中的常量\(b\),\(\forall j\)爲了簡化分析,可是L-Softmax loss仍然能夠容易的修改爲帶有\(b\)的(性能沒什麼差異)。
由於\(f_j\)是基於\(\mathbf{W}_j\)和\(x_i\)的內積,能夠寫成\(f_j=||\mathbf{W}_j||||x_i||cos(\theta_j)\),這裏\(\theta_j(0\leq \theta_j \leq \pi)\)是基於\(\mathbf{W}_j\)和\(x_i\)向量的夾角,所以loss變成:
\[L_i=-\log\left( \frac{ e^{||\mathbf{W}_{y_i}||||x_i||cos(\theta_{y_i})} }{ \sum_i e^{||\mathbf{W}_j|| ||x_i|| cos(\theta_j)} } \right ) \]設計
這裏先給出一個簡單的例子來直觀的描述一下。考慮一個二分類問題,有一個來自類別1的樣本\(x\),爲了正確分類,原始softmax表現爲\(\mathbf{W}_1^Tx> \mathbf{W}_2^Tx\)(即,\(||\mathbf{W}_1||||x||cos(\theta_1)> ||\mathbf{W}_2||||x||cos(\theta_2)\))。然而,爲了生成一個決策邊際而讓分類更嚴格,做者認爲能夠\(||\mathbf{W}_1||||x||cos(m\theta_1)>||\mathbf{W}_2||||x||cos(\theta_2)(0 \leq \theta_1 \leq \frac{\pi}{m})\),這裏\(m\)是一個正整數,由於有下面不等式:
\[ ||\mathbf{W}_1||||x||cos(\theta_1) \geq ||\mathbf{W}_1||||x||cos(m\theta_1) > ||\mathbf{W}_2||||x||cos(\theta_2) \]
所以,\(||\mathbf{W}_1||||x||cos(\theta_1) > ||\mathbf{W}_2||||x||cos(\theta_2)\).因此新分類標準是一個更強的標準。3d
按照上面的解釋,L-Softmax loss定義爲:
做者的目標是經過L-Softmax loss來獲得一個角度邊際。爲了簡化幾何上的解釋,這裏分析二分類狀況,其中只有\(\mathbf{W}_1\)和\(\mathbf{W}_2\)。
首先,假設\(||\mathbf{W}_1||=||\mathbf{W}_2||\),如圖4。
對於\(||\mathbf{W}_1||>||\mathbf{W}_2||\)和\(||\mathbf{W}_1||<||\mathbf{W}_2||\)等狀況,幾何解釋更復雜一些。由於\(\mathbf{W}_1\)和\(\mathbf{W}_2\)的模是不一樣的,類1和類2的可行角度也是不一樣的。正常的更大的\(\mathbf{W}_j\),對應的類就有更大的可行角度。因此,L-Softmax loss會對不一樣的類生成不一樣角度的邊際。同時也會對不一樣的類生成不一樣的邊際。
L-Softmax loss在原始softmax上作了一個簡單的修改,在類之間得到了一個分類角度邊際。經過設定不一樣的m值,就定義了一個可調整難度的CNN模型。L-Softmax loss有許多不錯的特性:
- L-Softmax 有一個清晰的幾何解釋。m控制着類別之間的邊際。更大的m(在相同訓練loss下),表示類別之間理想的邊際也更大,同時學習的困難程度也會上升。當m=1,L-Softmax就是原始softmax;
- L-Softmax 定義了一個帶有可調整邊際(困難)的學習目標。一個困難的學習目標能夠有效的避免過擬合,同時繼承深度和廣度結構上很強的學習能力;
- L-Softmax 能夠很容易的做爲標準loss的一個選擇,就和其餘標準loss同樣,也包含可學習的激活函數,數據加強,池化函數或其餘網絡結構模型。
L-Softmax loss的前向和後向是很容易計算的,因此也很容易經過SGD進行迭代優化。對於\(L_i\),原始softmax和L-Softmax之間的差異在於\(f_{y_i}\)。所以只須要在前向和後向中計算\(f_{y_i}\),且同時其餘的\(f_j,\, j \neq y_i\)與原始softmax是同樣的,將式子6和式子7相結合,獲得\(f_{y_i}\):
在兩個類型數據集上進行了本文方法的測試:圖像分類和人臉驗證。在圖像分類中使用MNIST,CIFAR10,CIFAR100;在人臉驗證中使用LFW。只有在softmax層有差異,前面的網絡結構在每一個數據集上都是各自同樣的。以下圖
當訓練具備較多目標的數據集如CASIA-WebFace上,L-Softmax的收斂會變得比softmax 要困難,對於這種狀況,L-Softmax就更難收斂,這時候的學習策略是
。