人臉識別-arcface損失函數

人臉識別-arcface損失函數(arcLoss、insight Loss)

參考博客:
L-margin softmax loss:
https://blog.csdn.net/u014380165/article/details/76864572

A-softmax loss:
https://blog.csdn.net/u011808673/article/details/80491361

AM-softmax loss:
https://blog.csdn.net/fire_light_/article/details/79602310

arcface:
https://blog.csdn.net/Fire_Light_/article/details/79602705

softmax loss:
在這裏插入圖片描述
N是樣本的數量,i代表第i個樣本,j代表第j個類別,fyi代表着第i個樣本所屬的類別的分數

fyi是全連接層的輸出,代表着每一個類別的分數,
在這裏插入圖片描述
每一個分數即爲權重W和特徵向量X的內積
在這裏插入圖片描述
每個樣本的softmax值即爲:
在這裏插入圖片描述
L-softmax loss:

假設一個2分類問題,x屬於類別1,那麼原來的softmax肯定是希望:
在這裏插入圖片描述
也就是屬於類別1的概率大於類別2的概率,這個式子和下式是等效的:
在這裏插入圖片描述
large margin softmax就是將上面不等式替換爲:
在這裏插入圖片描述在這裏插入圖片描述
m是正整數,cos函數在0到π範圍又是單調遞減的,所以cos(mx)要小於cos(x)。通過這種方式定義損失會逼得模型學到類間距離更大的,類內距離更小的特徵。
在這裏插入圖片描述
從幾何的角度看兩種損失的差別:
在這裏插入圖片描述

設置爲cos(mx)後,使得學習到的W參數更加的扁平,可以加大樣本的類間距離。

Large-Margin Softmax的實驗效果:
在這裏插入圖片描述

A-softmax loss

A-softmax loss簡單講就是在large margin softmax loss的基礎上添加了兩個限制條件||W||=1和b=0,使得預測僅取決於W和x之間的角度。
softmax的計算:在這裏插入圖片描述

在這裏插入圖片描述
可以寫成
在這裏插入圖片描述

若引入兩個限制條件,
在這裏插入圖片描述 在這裏插入圖片描述
decision boundary變爲:
在這裏插入圖片描述
只取決於角度了
則損失函數變爲:
在這裏插入圖片描述
在這兩個限制條件的基礎上,作者又添加了和large margin softmax loss一樣的角度參數,使得公式變爲:
在這裏插入圖片描述

AM-softmax
在A-softmax的基礎上,修改Cos(mθ)爲一個新函數:
在這裏插入圖片描述
與ASoftmax中定的的類似,可以達到減小對應標籤項的概率,增大損失的效果,因此對同一類的聚合更有幫助
然後根據Normface,對f進行歸一化,乘上縮放係數s,最終的損失函數變爲:
在這裏插入圖片描述
這樣做的好處在於A-Softmax的倍角計算是要通過倍角公式,反向傳播時不方便求導,而只減m反向傳播時導數不用變化

Asoftmax是用m乘以θ,而AMSoftmax是用cosθ減去m,這是兩者的最大不同之處:一個是角度距離,一個是餘弦距離。

之所以選擇cosθ-m而不是cos(θ-m),這是因爲我們從網絡中得到的是W和f的內積,如果要優化cos(θ-m)那麼會涉及到arccos操作,計算量過大。

arcface
在這裏插入圖片描述

分類正確label的值爲
在這裏插入圖片描述
,cos函數在(0,1)內是單調遞減的,加上m,會使該值變得更小,從而loss會變得很大。

這樣修改的原因:角度距離比餘弦距離在對角度的影響更加直接

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