Ranked List Loss for Deep Metric Learning | 論文分享

極驗發表於2019-03-12

深度度量學習(Deep Metric Learning, DML) 在很多場景中都發揮著重要的作用,一個經典的應用就是人臉識別,Google 的FaceNet模型使用Triplet-Loss重新整理了當時人臉識別的記錄,近兩年基於Softmax改進的Angular-Softmax, Additive Margin Softmax等在人臉識別成功應用的損失函式,都引入了度量學習的思想。

基於深度學習度量學習其發展主要體現在各種不同的Loss Function上。最基本的兩種損失函式分別是 Contrastive Loss 和 Triplet-Loss。 Contrastive Loss主要是約束成對資料之間的相似或者不相似。Triplet-Loss 則包括一個錨點(anchor) 、一個正樣本和一個負樣本,它的目的是使得錨點和正樣本的距離儘可能小,與負樣本的距離儘可能大。一般來說,Triplet-Loss的效果比Contrastive Loss的效果要好,因為他考慮了正負樣本與錨點的距離關係。基於上述的兩種損失函式衍生出了很多變形,比如將資料豐富的結構化資訊加入到Loss中,而不僅僅侷限於二元組或三元組。

Ranking-Motivated Structured Losses

先回顧下目前幾種基於排序思想的損失函式。 

Triplet Loss 

Ranked List Loss for Deep Metric Learning | 論文分享

其中Ranked List Loss for Deep Metric Learning | 論文分享是三元組的集合,距離使用的是歐氏距離,Ranked List Loss for Deep Metric Learning | 論文分享表示hinge函式。

N-pair-mc 

不同於Triplet Loss使用單個的正負樣本,這個損失函式利用了資料之間的結構資訊來學習到更有區別性的表示。具體來說,樣本由一個正樣本和N - 1 個負樣本組成,這N - 1 個負樣本來自於N - 1個不同的類別,即每個類別1個負樣本。

Ranked List Loss for Deep Metric Learning | 論文分享

其中Ranked List Loss for Deep Metric Learning | 論文分享是來自N個類別的N個樣本,Ranked List Loss for Deep Metric Learning | 論文分享分別表示anchor和對應的正樣本,Ranked List Loss for Deep Metric Learning | 論文分享是負樣本集合。通過引入N-1個負樣本來提升效能。

Lifted Struct 

這個目標函式比N-pair-mc更進一步,提出引入所有的負樣本,通過促使錨點與一個正樣本的距離儘可能近,與所有的負樣本的距離都大於α。 

Ranked List Loss for Deep Metric Learning | 論文分享

Proxy-NCA 

這個方法提出的目的是去解決取樣的問題。假設W代表著訓練集中的一小部分資料,在取樣時通過選擇與W中距離最近的一個樣本u作為代理(proxy), 即:

Ranked List Loss for Deep Metric Learning | 論文分享

基於選擇的proxy, 使用傳統的NCA損失: 

Ranked List Loss for Deep Metric Learning | 論文分享

上述幾種損失的示意圖如下:

Ranked List Loss for Deep Metric Learning | 論文分享

上述的損失函式都存在如下的兩點侷限性:

1. 這些損失函式雖然都提出了加入更多的負樣本來獲得結構化的資訊,但是使用的負樣本僅僅是一小部分;
2. 另外這些損失函式沒有考慮類內的資料分佈,都追求將同一個class壓縮到一個點上。

本文基於上述的兩個原因,提出了相應的改進措施。

Methodology

首先對一些符號進行說明: Ranked List Loss for Deep Metric Learning | 論文分享表示訓練集,其中每一組元素Ranked List Loss for Deep Metric Learning | 論文分享表示成對的樣本與其標籤,總共包括C個類別,即Ranked List Loss for Deep Metric Learning | 論文分享Ranked List Loss for Deep Metric Learning | 論文分享表示屬於類別c的所有樣本,Nc表示相應類別的樣本數量。

我們的目標是學習到一個函式f使得正樣本對之間的相似度高於負樣本之間的相似度。

Pairwise Constraint

為了將正負樣本區分開,我們希望負樣本之間的距離大於某個閾值α,並且正樣本之間的距離小於α-m,即正負樣本之間至少有m的間隔。基於此,提出了pairwise margin loss: 

Ranked List Loss for Deep Metric Learning | 論文分享

其中當Ranked List Loss for Deep Metric Learning | 論文分享時,Ranked List Loss for Deep Metric Learning | 論文分享 ,否則Ranked List Loss for Deep Metric Learning | 論文分享, 距離使用歐式距離。

Ranked List Loss

給定一個anchor Ranked List Loss for Deep Metric Learning | 論文分享, 基於相似度對其他樣本進行排序,在這個排序的結果中,有Nc-1 個正樣本,用Ranked List Loss for Deep Metric Learning | 論文分享表示。同樣地,有Ranked List Loss for Deep Metric Learning | 論文分享個負樣本,用Ranked List Loss for Deep Metric Learning | 論文分享表示。

Non-trivial Sample Mining 

對樣本進行合適取樣可以加快模型的收斂速率和提高模型效能,比如常見的困難樣本挖掘。本文使用的取樣策略很簡單,就是損失函式不為0的樣本,具體來說,對於正樣本,損失函式不為0意味著它們與anchor之間的距離大於α-m , 類似的,對於負樣本,損失函式不為0意味著它們與anchor之間的距離小於α。

Loss-based Negative Examples Weighting 

但是存在一個問題就是負樣本的數量通常比較大,並且它們的損失值幅度範圍也較大,為了更好的利用它們,作者提出了對負樣本進行加權的策略。加權的方式為: 

Ranked List Loss for Deep Metric Learning | 論文分享

它基於樣本多大程度地違反了pairwise的約束。

Optimisation Objective 

對於每個anchorRanked List Loss for Deep Metric Learning | 論文分享 , 我們希望使得它與正樣本集P的距離越近越好,並且與負樣本集Nc,i之間存在著m的間隔,同時,我們還希望使得負樣本的之間大於邊界α。因此我們相當於使得同一類別位於一個半徑為α-m大小的超球體內。因此對於正樣本我們使用的損失函式為:

Ranked List Loss for Deep Metric Learning | 論文分享

對於負樣本集,考慮到它的樣本數量比較大,因此對每個負樣本使用加權的方式:

Ranked List Loss for Deep Metric Learning | 論文分享

那麼整個的損失函式就是: 

Ranked List Loss for Deep Metric Learning | 論文分享

Learning Deep Models Based on RLL

整個演算法的流程如下: 

Ranked List Loss for Deep Metric Learning | 論文分享

實驗

作者在多個資料集上都進行了相關實驗,取得了不錯的效果。具體可以參考論文的實驗部分。

論文連結: https://arxiv.org/abs/1903.03238

相關文章