人臉識別和檢測中loss學習 - 7 - SphereFace


論文下載:http://openaccess.thecvf.com/content_cvpr_2017/papers/Liu_SphereFace_Deep_Hypersphere_CVPR_2017_paper.pdf

 

SphereFace: Deep Hypersphere Embedding for Face Recognition

softmax損失僅僅能夠學到分辨性不夠強的特征,除此之外,還有contrastive loss,center loss,triplet loss。

但是它們都在一定程度上存在弊端:

  • center loss僅能使得類內緊湊,無法使得類間可分。
  • contrastive loss和triplet loss需要pair/triplet 挖掘過程,增加時間的損耗。
  • 除此之外,還有一個更關鍵之處:以上的損失函數都使用了歐式距離,而softmax損失學習到的特征有角度上的分布特性

 

 證明了softmax損失學習到的特征有角度上的分布特性,因此在這種意義上,歐式距離與softmax損失是不兼容的,所以作者認為結合softmax損失和歐式距離效果可能不是最佳的。

 

一步步修改損失:

1)modified softmax loss

傳統softmax loss損失函數為:

為了簡化計算,把偏置b設置為0,,然后權重和輸入的內積用下面式子表示:

 

 

 

因此為了將損失函數變換成僅受角度影響的公式,需要經過下面的幾個變換:

1》決策邊界

首先softmax loss的決策邊界(decision boundary)為:

(W1 −W2)x + b1 − b2 =0

其中W1、W2表示的是對應的權重矩陣中1、2對應的類的那一行;b1、b2同理;x即整個input輸入的特征向量

這個公式是因為其決策邊界是線性的

 

證明:

假設決策邊界是線性的,那么會有:

1.首先在決策邊界上softmax對任意兩類的輸出概率是相等的。即對如上圖的任一邊界上的一點,softmax輸出的概率向量上,該點被判斷為邊界兩側的類的對應分量是相等的

這樣,通過計算可知:

zi = Wi*x + bi = zj = Wj*x + b (這里Wi和Wj是權重矩陣第i,j行,i、j即邊界兩側的兩個類)

 

2.邊界是線性的等價於邊界上的任意兩個點X1、X2,他們的線形組合X0=t*X1+s*X2 仍然在決策邊界上,這里t+s=1

 

根據上面這兩個條件證明:

從softmax的決策邊界上任取兩點X1,X2

由上面的敘述1可知,W1*x+b1=W2*x+b2,即(W1-W2)*x=b2-b1

再任取一點X0 = t*X1 + s*X2,s+t = 1

則softmax對X0的計算得z1 = W1*X0 + b1, z2 = W2*X0 + b2, 下面證明z1=z2

z1 - z2 = W1*X0 + b1 - (W2*X0 + b2)                              ,(代入X0 = t*X1 + s*X2

          = t*(W1 - W2)*X1 + s*(W1 - W2)*X2 + (b1 - b2)     ,(代入(W1-W2)*x=b2-b1

          = t*(b2-b1) + s*(b2-b1) + (b1-b2)

          = 0

所以,z1=z2,即證明X0也在決策邊界上

 

2》約束條件

然后使用L2正則化處理Wj使得||Wj||=1,L2正則化就是將Wj向量中的每個值都分別除以Wj的模,從而得到新的Wj,新的Wj的模就是1:

說明該方法只歸一化了權重,而沒有歸一化特征向量

 這樣根據式子:

可以將softmax loss損失函數變換為只與角度相關的公式:

||x|| (cos(θi) - cos(θj)) = 0

這里的θi是Wi和x之間的角度

通過這樣的損失函數學習,可以使得學習到的特征具有更明顯的角分布,因為決策邊界只與角有關

 

這樣修改后的損失函數modified softmax loss為:

 xi表示第i個訓練樣本,yi為第i個訓練樣本的類別,Wj表示W的第j列,Wyi表示W的第yi列,表示是因為進行了轉置

 

 

2)A-softmax loss(angular softmax

1》添加定量控制參數m

添加一個定量控制參數m(m>=1)到決策邊界上,這樣類1和類2的決策邊界為:

    ||x|| (cos(mθ1) - cos(θ2)) = 0, 對於類1來說

和 ||x|| (cos(θ1) - cos(mθ2)) = 0, 對於類2來說

m參數用來定量控制角度邊際

 

在modified softmax loss,對於一個來自類別1 的可學習特征向量x,θi是該x和Wi之間的角度,可知如果我們希望網絡能夠分類得到該x屬於類別1,那么就需要cos(θ1) > cos(θ2), 因為θi范圍為[0,Π],在這個范圍內cos()函數是遞減的,所以要求(θ1) < (θ2)

所以如果增加一個參數m,變為cos(mθ1) > cos(θ2) , m >= 2 ,那么就希望訓練得到的θ1更小,該類1的決策邊界為cos(mθ1) = cos(θ2);同理cos(θ1) < cos(mθ2),也是希望訓練得到的θ2更小,該類2的決策邊界為cos(θ1) = cos(mθ2)。這樣兩個類的分布中間就會隔着一個比較大的角度邊際,因為各自的角度都要乘以m才能到達邊界

 

假設所有訓練樣本都正確分類了,那么決策邊界將生成一個角度邊際為(m1/m+1)θ,即兩個類的類間角度特征距離, θ是表示兩個類的權值W1,W2之間的夾角。證明:
對於類別1,cos(mθ1) = cos(θ2), θ = θ1 + θ2

所以cos(mθ1) = cos(θ - θ1)

所以 mθ1 = θ - θ1

所以 θ1 = (1/m+1) θ

同理,對於類別2,cos(θ1) = cos(mθ2), θ = θ1 + θ2

所以cos(mθ2) = cos(θ - θ2)

所以 mθ2 = θ - θ2

所以 θ2 = (1/m+1) θ

所以最后計算兩個類邊界的角度為 θ - θ1 - θ2 = (m1/m+1)θ

 這樣對於類型1,需要訓練θ1< θ2/m;這樣對於類型2,需要訓練θ2 < θ1/m。這樣肯定是比原始softmax loss的訓練θ1< θ2θ2 < θ1要難的

 

現在的損失函數為:

 

 

 

2》 定義新角度函數

為了擺脫這個角度的限制,通過概括一個單調遞減的角度函數ψ(θyi,i)來擴展cos(θyi,i)的定義范圍,在[0,π/m]的范圍中兩個函數是等價的,這樣最終的損失為:

 

 

 

其中將 ψ(θyi,i)函數定義為:

 

 m >= 1是用來控制角度邊際大小的。當m=1時,該損失函數就等價與了modified softmax loss

 

 

可見

 根據上面的式子畫圖:

 可見該函數是單調遞減的

 

然而, SphereFace 的實現中整合了 Softmax 監督以保證訓練的收斂,並且權重由動態超參數 λ
λ 控制。加入額外的 Softmax 損失,所以ψ(θyi,i)實際上是:

 

 其中 λ是一個額外的超參數,以利於 SphereFace 的訓練。λ在開始時設置為1,000,並且減少到5以使每個類的角度空間更緊湊。這個額外的動態超參數 λ使得 SphereFace 的訓練相對棘手


3》 該A-softmax loss的屬性

屬性1 :A-Softmax Loss定義了一個大角度間隔的學習方法,m越大這個間隔的角度(m1/m+1)θ也就越大,相應區域流形的大小(θ1和θ2)就越小,這就導致了訓練的任務也越困難。

定義1:定義mmin, 即當m>mmin時,類內的最大角度特征距離小於類間的最小角度特征距離

屬性2 :在2分類問題中,mmin > 2 + √3

屬性3: 在多分類問題中,mmin >= 3

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM