Deep Convolutional Ranking for Multilabel Image Annotation
2014 ICLR Google
多標籤幾種損失
成對排序損失
它直接對標註問題建模。特別是,我們希望將正面標籤排在總是比負面標籤更高的個刻度,這導致了以下最小化問題
J = ∑ i = 1 n ∑ j = 1 c + ∑ k = 1 c − max ( 0 , 1 − f j ( x i ) + f k ( x i ) )
J = \sum _ { i = 1 } ^ { n } \sum _ { j = 1 } ^ { c _ { + } } \sum _ { k = 1 } ^ { c _ { - } } \max \left( 0,1 - f _ { j } \left( \boldsymbol { x } _ { i } \right) + f _ { k } \left( \boldsymbol { x } _ { i } \right) \right)
J = i = 1 ∑ n j = 1 ∑ c + k = 1 ∑ c − max ( 0 , 1 − f j ( x i ) + f k ( x i ) )
其中c +是正標籤,c-是負標籤。在反向傳播期間,我們計算了該損失函數的子梯度。
這種損失的一個限制是它優化了ROC曲線下面積(AUC),但沒有直接優化top-k標註精度。
因爲對於圖像標註問題我們最感興趣的是top-k標註,這種成對排名損失並不符合我們的目的。
加權近似排名(WARP)
這一損失是加權近似排名(WARP)是對上述損失函數的拓展,這在(2011 IJCAI-Wsabie: Scaling up to large vocabularyimage annotation)中首次描述。它通過使用隨機抽樣方法專門優化註釋的top-k精度。這種方法非常適合深層體系結構的隨機優化框架。它最小化
J = ∑ i = 1 n ∑ j = 1 c + ∑ k = 1 c − L ( r j ) max ( 0 , 1 − f j ( x i ) + f k ( x i ) )
J = \sum _ { i = 1 } ^ { n } \sum _ { j = 1 } ^ { c _ { + } } \sum _ { k = 1 } ^ { c _ { - } } L \left( r _ { j } \right) \max \left( 0,1 - f _ { j } \left( \boldsymbol { x } _ {i } \right) + f _ { k } \left( \boldsymbol { x } _ { i } \right) \right)
J = i = 1 ∑ n j = 1 ∑ c + k = 1 ∑ c − L ( r j ) max ( 0 , 1 − f j ( x i ) + f k ( x i ) )
其中L ( ⋅ ) L(·) L ( ⋅ ) 是不同等級的加權函數,r j r_j r j 是衡量某一個正標籤預測值的懲罰程度。我們工作中使用的加權函數L ( ⋅ ) L(·) L ( ⋅ ) 定義爲:
L ( r ) = ∑ j = 1 r 1 j
L ( r ) = \sum _ { j = 1 } ^ { r } \dfrac {1}{j}
L ( r ) = j = 1 ∑ r j 1
如果正面標籤在標籤列表中排名靠前,那麼L ( ⋅ ) L(·) L ( ⋅ ) 將爲損失分配一個小權重,並且不會花費太多損失。但是,如果正面標籤沒有排在最前面,L ( ⋅ ) L(·) L ( ⋅ ) 將爲損失分配更大的權重,從而將正面標籤推到頂部。
最後一個問題是如何估計等級r j r_j r j 。
求出r j r_j r j ,
對於每一個正標籤j j j 的預測值f j ( x i ) f_j(x_i) f j ( x i ) ,從負標籤預測值集合f k , k ∈ c − f_k, k \in c_- f k , k ∈ c − ,進行隨機採樣一個f k f_k f k
一旦f k f_k f k 滿足1 − f j ( x i ) + f k ( x i ) > 0 1 - f _ { j } \left( x _ { i } \right) + f _ { k } \left( x _ { i } \right) > 0 1 − f j ( x i ) + f k ( x i ) > 0 , 記錄採樣次數N N N ,則r j = ⌊ C − 1 N ⌋ r _ { j } = \left\lfloor \frac { C - 1 } { N } \right\rfloor r j = ⌊ N C − 1 ⌋ , c c c 爲標籤空間的維度
如果採樣了C − 1 C-1 C − 1 次都沒有滿足上式,則L ( r j ) L \left( r _ { j } \right) L ( r j ) = 0,即不計算誤差