Paper name
CosFace: Large Margin Cosine Loss for Deep Face Recognition
Paper Reading Note
URL: https://arxiv.org/pdf/1801.09414.pdf
TL;DR
該篇文章出自CVPR2018,在Angular softmax loss基礎上改進得到Large Margin Cosine Loss,同時在SphereFace的基礎上提出特徵規範化,在多個人臉識別數據集上取得了SOTA結果。
Introduction
- 最近的研究發現基於傳統的softmax loss訓練得到的模型所生成的softmax loss的判別能力不夠強,爲了提高特徵的判別能力,如Angular softmax loss之類的方法被提出用於增加模型生成的特徵的類內相似性與類間區分度。Angular softmax loss將原始歐式空間中的特徵投影到超球面的特徵空間上,並且提出了angular margin用於增加類間區分度。作者任務超球面空間的angular margin相比於歐氏距離的margin更有優勢,因爲因爲角度的餘弦與softmax函數具有內在一致性。
- 作者認爲angular margin還不足夠合理。餘弦公式與人臉識別中常用的相似性度量方法相匹配,從這個角度看,直接在不同類別之間引入餘弦margin來改進餘弦相關的判別信息更爲合理。
- 在本文中,作者通過L2歸一化特徵和權重向量消除徑向變化,將softmax loss重新改造爲cosine loss,在此基礎上引入餘弦margin來進一步最大化超球面特徵空間中的決策裕度。
Dataset/Algorithm/Model/Experiment Detail
實現方式
-
一句話介紹完這篇paper的創新點就是將angular softmax loss中的loss設計進行了以下替換:
- A-softmax loss
- Large Margin Cosine Loss
- A-softmax loss
-
原因是作者認爲由於餘弦函數的非單調性,A-softmax loss較難優化,A-softmax loss爲了解決這問題使用了特殊的分段函數。同時A-softmax loss的決策面會依賴於theta值,這使得不同的類別對應着不同的angular margin,在決策空間中,一些類間特徵有着較大的margin同時另一些類間特徵可能有着較小的margin,這導致特徵的判別能力減弱。
-
作者提出的CosFace整體框架如下所示
-
Large Margin Cosine Loss
- Large Margin Cosine Loss的推導與Angular softmax loss很相似
- 對於傳統的softmax loss:
- 其中f一般是全連接層的激活值,可以由全連接層的權重W與偏移量B所計算,爲了簡單講B設爲0:
- 其中權重W通過L2norm處理成二範數爲1的形式(在測試階段一般使用特徵的餘弦相似度,特徵的norm也就在評測中沒有影響),那麼softmax loss可以轉化爲以下經過normalnize的形式:
-
作者認爲上述softmax loss訓練的模型生成的feature的判別性不夠強,因爲上述loss只強調正確分類即可,作者增加了cosine margin進一步提高類間判別度,其原理與angular softmax loss很相似
-
其中全連接層權重和輸出特徵經過normalnize操作:
-
與其他loss的對比,可以看到cosine loss相比於其他的loss的決策邊界更爲合理
-
Normalization on Features。不同於A-softmax loss僅規範化了權重,作者提出對特徵也做規範化處理。特徵規範化的重要性主要有以下原因:
- 沒有特徵規範化的原始softmax loss隱式學習歐幾里德範數特徵向量的(L2範數)及其餘弦值角度。自適應學習L2範數以最小化總的損失,導致餘弦約束相對較弱。作者要求整個特徵向量集具有相同的L2範數,使得學習僅依賴於餘弦值來發展判別能力。同一類的特徵向量聚在一起,不同類的特徵向量在超球面上分離
-
從特徵角度對LMCL的幾何解釋。不同顏色區域表示不同類的特徵空間。與NSL相比,LMCL具有相對緊湊的特徵區域
-
LMCL的效果可視化實驗,挑選了8個不同id的人的圖片,生成二維的特徵向量用於在特徵空間中顯示,得到的結果如下所示,可以看到隨着m的增加類別間的決策邊界更加分離,也就更利於進行人臉的特徵識別比對:
實驗結果
-
實現細節:
- 通過MTCNN檢測人臉區域與landmarks,利用五個人臉關鍵點進行相似變換
- 在0.49M數據量的CASIA-WebFace數據集上進行訓練,作者都來自於騰訊,可能不缺數據和計算資源,用了一些別的公開數據集以及私有數據集
- 測試階段原始圖片與flipped圖片的feature經過concat操作後作爲最後的人臉特徵
- 餘弦距離用於計算特徵相似性
-
在LFW與YTF兩個經典公開數據集上的實驗結果,可以看到margin對於識別準確度的影響很大,m=0.35時有最佳結果
-
feature normalnization的效果
-
不同loss的結果對比
-
不同方法的對比
-
MegaFace數據集結果,SOTA效果
Thoughts
該篇文章思路、撰寫方式與SpereFace都很類似,對於loss的修改有明顯漲點,作者也對修改的原因進行了詳盡的解釋。另外作者提出對特徵進行規範化的方式也有一定漲點,該部分修改的考慮作者解釋得也十分清楚。人臉識別這一系列的文章就是能夠將簡單的創新用十分詳盡的語言進行描述。