『論文筆記』ArcFace: Additive Angular Margin Loss for Deep Face Recognition


論文:https://arxiv.org/abs/1801.07698

推薦博客:https://blog.csdn.net/u014380165/article/details/80645489

 

人臉Reid基礎流程如下:

典型的人臉reid算法,對特征提取之后的結構而言,輸入xi是1*d的向量,表示輸入的特征向量,對該向量執行L2正則化操作就得到xi/||xi||。對該向量W是d*n的矩陣,n表示分類的類別數,因此對每一列(也就是Wj)都執行L2正則化操作,就得到Wj/||Wj||。xi/||xi||和Wj/||Wj||做矩陣相乘得到全連接層的輸出,這個輸出其實就是cosθj(嚴格講是||xi/(||xi||)||*||Wj/(||Wj||)||*cosθj,因為前面兩項都是1,所以就是cosθj),其中j屬於[1…n]。然后對該輸出中對應真實標簽的值(cosθyi)執行反余弦操作就能得到θyi,yi就表示真實標簽。因為SphereFace、ArcFace和CosineFace中都有m參數,所以這里分別用m1、m2和m3表示,因此這3個算法整合在一起就是cos(m1θyi+m2)-m3。然后乘以一個scale參數s,最后該結果作為以e為底的指數函數的指數送到softmax函數,最后就得到預測的輸出概率。

下面講解下論文中的推導:

Softmax和W-Norm softmax比較簡單,坐標軸是cosθ1和cosθ2,分界線的斜率是1。SphereFace中的坐標軸是θ1和θ2,其中class1的線對應Table1中的公式,因為m小於1,cos函數在該輸入范圍內是遞減函數,所以斜率(cosmθ1/cosθ2)大於1。class2那條線同理,同時兩條線都過原點。CosinFace中的坐標軸是cosθ1和cosθ2,class1那條線相當於將過原點的斜率為1的線向上平移m的結果,為什么這么說?假設θ2=0,那么class1線就是cosθ1=m,又因為縱坐標軸是cosθ1,因此就是平移m,class2同理。ArchFace中的坐標軸是θ1和θ2,class1這條線相當於將過原點的斜率為1的線向上平移m的結果(注意,雖然都是平移m,但是這里的坐標軸和CosinFace不同,因此平移的量不一樣)。

因此這里有個非常重要的結論:在ArcFace中是直接在角度空間(angular space,也就是橫縱坐標是角度θ1和θ2,不是softmax或CosineFace中的cosθ1和cosθ2)中最大化分類界限。

話說新版論文似乎沒有對為什么ArcFace更好給出具體分析,只是籠統的說對margin設計的微小改動對效能有“蝴蝶效應”般的影響。

實驗比較多,貼個主要的,其他的看原文吧:

 


免責聲明!

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



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