1. 程式人生 > >18.4.9 Range Loss for Deep Face Recognition with Long-tail 小感

18.4.9 Range Loss for Deep Face Recognition with Long-tail 小感

最近讀了一篇《Range Loss for Deep Face Recognition with Long-tail》,是繼centerloss,A-softmax loss之後的有一篇對loss進行的工作,即提出了range loss。其中caffe中定義的range loss的層定義已經在github上上傳了(傳送門)。

首先,作者提出了現在資料庫中普遍存在的問題,就是資料存在長尾分佈的情況。那麼什麼是長尾分佈呢?其實有點類似於二八定律,即80%的財富集中在20%的人手裡等等。
這裡寫圖片描述圖1

如圖1所示,右邊黃色的尾巴部分雖然值普遍很小,但是由於數量很多,導致其對一個模型的訓練有很大的影響。長尾分佈的數學定義為:
這裡寫圖片描述


對於人臉資料庫而言,長尾分佈主要表現在很多的identity含有較少的贗本數量,如圖2所示。
這裡寫圖片描述圖 2

作者考慮到人臉資料庫存在長尾分佈的情況,為了能夠分析出長尾分佈對識別的影響,所以作者先做了幾組對比實驗。實驗在LFW資料庫上進行。考慮到該實驗是為了分析出long tail對識別的影響,所以作者對tail部分進行不同程度的裁剪來比較識別率。裁剪的規則如圖3所示,詳細的資料如圖4所示,識別結果如圖5所示。
這裡寫圖片描述 圖3
這裡寫圖片描述 圖4
從圖3和圖4中可以看出,LFW資料庫中存在明顯的長尾分佈情況。最多的10000個identity人均有69張圖片,而剩下的89891個人人均只有11張圖片左右。
這裡寫圖片描述 圖5
從圖5 的實驗結果可以看出來,當擷取50%的tail部分的時候,識別率達到最高。隨著擷取的百分比變化的時候,識別的結果也有所變化,足以看出來tail對識別的影響還是比較大的。

為了進一步看看long tail對識別率的影響,作者還利用VGG在LFW上進行了實驗,考慮到在上一個實驗中50%的擷取率得到的performance最好,所以作者在此次實驗中僅僅做了不擷取和擷取50%d的兩組實驗,但是不同的是,作者不單單選取softmax作為最後的目標函式,還加上了contrastive loss和 triplet loss。實驗結果如圖6所示。
這裡寫圖片描述 圖6
從圖6的結果中可以看出擷取50%的tail對實驗的識別率有著一定的提升,進一步說明了長尾資料對識別率的影響還是比較大的。為了能夠解決或者說是減少這種長尾分佈帶來的影響,作者提出了range loss。range loss所要帶來的影響其實和centerloss很類似,就是減小類內距,增大類間距。不同的是,range loss還有一個目的是減小tail部分資料(poor class)對識別率的影響。
range loss的損失函式如下:
這裡寫圖片描述


其中,
這裡寫圖片描述
這裡寫圖片描述
其中部分的引數可以從圖7中去理解。作者在這利用的是調和平均值來解決的類內距離的,其中k的值,作者按照經驗設定為2。值得一提的是,調和平均值特別受到極值的影響。
這裡寫圖片描述 圖7
實現的虛擬碼如圖8所示。
這裡寫圖片描述 圖8

作者在LFW和YTF資料庫上在VGG網路的基礎上加上了range loss分別進行了實驗,實驗結果如圖9所示。
這裡寫圖片描述 圖9
其中model A表示的是softmax loss,model B表示的是softmax loss 和constrative loss, model C表示的是softmax loss和range loss。從實驗的結果中可以看出,利用了range loss之後不擷取tail的識別率明顯高於截取了50%的結果。這說明了,range loss減少了poor class對識別率的影響。

為了能夠說明range loss的普遍適應性,作者在ResNet上也進行了實驗,實驗的結果如圖10所示。
這裡寫圖片描述 圖10
其中model D 是僅利用softmax loss,model E是利用softmax loss和range loss的聯合損失。