Circle Loss: A Unified Perspective of Pair Similarity Optimization


Circle Loss: A Unified Perspective of Pair Similarity Optimization

本文從一個統一的角度來看待 成對的 相似度 優化問題 (Pair Similarity Optimization),這個問題的目的是讓不同類別之間的相似度 \(S_n\) 盡可能小,讓同一類別的相似度 \(S_p\) 盡可能大;

統一兩類損失函數

  • 目前大部分的損失函數,以經典的粗分類損失函數 Softmax Cross Entrophy 和 細分類損失函數 Triplet Loss 為例子,其優化方法是可以統一起來用 \(S_n\)\(S_p\) 表示,然后去減小 (\(S_n\) - \(S_p\)), \(S_n\)越小,\(S_p\)越大,上式也就越小

1. 粗分類代表:Softmax 交叉熵損失函數

\[\operatorname{softmax}\left(\mathrm{y}_{i}\right)=\mathrm{y}_{i}^{\prime}=\frac{e^{\mathrm{y}_{i}}}{\sum_{j=1}^{n} e^{\mathrm{y}_{i}}} \]

--------------------------------------------------------------------------------

\[H(p, q)=-\sum_{x} p(x) \log q(x) \]

---------------------------------------------------------------------------------

\[L_{ce}= -\sum_{i} \mathrm{y_i} \log \frac{e^{\mathrm{y}_{i}}}{\sum_{j=1}^{n} e^{\mathrm{y}_{i}}} \]

---------------------------------------------------------------------------------

softmax 交叉熵損失的特點:

  • 對於目標分數的梯度為 \(p_y-1\),為負數,
    • 梯度回傳使得目標分數逐漸增加,與onehot中的 1 的差距越來越小
  • 對於非目標分數的梯度為 \(p_i\),為正數,
    • 梯度回傳使得非目標目標分數逐漸減小,與onehot中的 0 的 差距越來越小
  • \(p_y-1 =- \sum_{i\neq y}{p_i}\),正樣本的梯度與所有其他負樣本的梯度之和是等值反向的
  • 所有的梯度之和為0,可以看到,回傳的正負梯度是平衡的

2. 細分類代表:Triplet Loss

  • 細分類相對於粗分類來說,其類別急劇增加;比如說人臉識別,就存在着好幾十億個類別,這樣類別數就遠大於特征的數目;這樣子如果再使用softmax交叉熵來處理的話,對算力的需求就急劇增大了;而且softmax交叉熵在處理這類細微差別的效果也不好,因此就需要新的損失函數;
  • FaceNet提出了 triplet loss,其目的是構造了一個三元組,使得同一類別的差距盡可能小,然后不同類別的差距盡可能大

\[L_{triple} = max[d(x^a, x^+) - d(x^a, x^-) + margin, 0] \]

當 L 趨向於0時,\(d(x^a, x^+) < d(x^a, x^-)\),也就是說,同一類樣本的距離是小於其與不同樣本的距離的,即,使得同一類別的相似度盡可能大,不同類別的相似度盡可能小;

  • \(max(x, 0)\)函數又可以通過 \(\log(1+e^x)\)來擬合

\[L_{triple} = \log (1+e^{d_p - d_n +m}) \]

2.1 triple loss流程:

image.png
image.png
image.png
image.png


3.兩類損失的統一

粗分類和細分類的損失是可以統一起來的,其統一的損失公式如下

\[\begin{aligned} \mathcal{L}_{u n i} &=\log \left[1+\sum_{i=1}^{K} \sum_{j=1}^{L} \exp \left(\gamma\left(s_{n}^{j}-s_{p}^{i}+m\right)\right)\right] \\ &=\log \left[1+\sum_{j=1}^{L} \exp \left(\gamma\left(s_{n}^{j}+m\right)\right) \sum_{i=1}^{K} \exp \left(\gamma\left(-s_{p}^{i}\right)\right)\right] \end{aligned}\]

對於粗分類來說,softmax可以分解為:類內(onehot 為1的,只有一個) + 類外(某一類和其他類組成,N-1 個)

再來看松弛變量 \(\gamma\)(有的論文里面叫 溫度 T),為什么需要 \(\gamma\),舉例說明:
------------------------------------------------------------------
x = [1 2 3 4]
softmax(x) = [0.0321 0.0871 0.2369 0.6439]

從這個例子來看,本來1和4只差4倍,通過指數函數的放大作用,Softmax后的結果相差大約20倍。這樣看,Softmax起到了近似 one-hot max 的作用,但 0.6439 其實也不算靠近1,近似效果不佳。
-----------------------------------------------------------------
x放大十倍
x = [10 20 30 40]
softmax(x) = [9.36e-14 2.06e-9 4.54e-5 1.00]
------------------------------------------------------------------
x = [0.1 0.2 0.3 0.4]
softmax(x) = [0.2138 0.2363 0.2612 0.2887]
------------------------------------------------------------------

  • 溫度項控制着 Softmax 的 smooth 程度, \(\gamma\) 越大,則 Softmax 越接近one-hot max, \(\gamma\) 越小,則近似效果越差。那么只要我們引入這一項,並將 \(\gamma\) 設置得足夠大,是不是就能解決問題了呢?

  • 其實沒那么容易,注意到這個 \(\gamma\) 是施加在所有的分數 z 上的,所以這是對分數的一個線性變換,由於 z 本身就是通過一個內積層(全連接層)得到的,線性-線性還是線性,所以這個 \(\gamma\) 在優化過程中會被融合進前邊的內積層,只要進行充分的訓練,是不會產生什么實際的影響的。

  • 於是就可以動態的設置 \(\gamma\),根據當前分數 z 的大小動態地設置 \(\gamma\) ,就像煉丹一樣,隨時把控火爐的溫度,

相似度加權,優化更加靈活

1. 相似度加權

  • 當前的損失函數的優化是不靈活的,對於上面一點指出的 \((S_n - S_p)\),損失進行梯度回傳的時候對於 \(S_n\)\(S_p\) 的梯度是等值反向的;這就存在一個問題,\(S_n\)\(S_p\) 的優化不是完全同步的,也就說\(S_n\)\(S_p\) 分別與其各自的最優點的距離是不一樣的
  • 因此,不能以完全相同的梯度對二者進行更新,離最優點近的應該要小火慢熬,離最優點遠的應該大火猛煮
  • 於是,本文提出對 \(S_n\)\(S_p\) 進行加權,而其權重的大小是應該與他們和最優點的距離是成正相關的,也就是說,越接近最優點,其權重應該越小,對應回傳的梯度也因為乘以了這個梯度變得更小;反之,其權重就應該越大,使得回傳的梯度也越大;

於是給每個相似度增加了一個權重 \(\alpha_n, \alpha_p\)

\[\begin{aligned} \mathcal{L}_{\text {circle}} &=\log \left[1+\sum_{i=1}^{K} \sum_{j=1}^{L} \exp \left(\gamma\left(\alpha_{n}^{j} s_{n}^{j}-\alpha_{p}^{i} s_{p}^{i}\right)\right)\right] \\ &=\log \left[1+\sum_{j=1}^{L} \exp \left(\gamma \alpha_{n}^{j} s_{n}^{j}\right) \sum_{i=1}^{K} \exp \left(-\gamma \alpha_{p}^{i} s_{p}^{i}\right)\right. \end{aligned}\]

其中

\[\left\{\begin{aligned} \alpha_{p}^{i} &=\left[O_{p}-s_{p}^{i}\right]_{+} \\ \alpha_{n}^{j} &=\left[s_{n}^{j}-O_{n}\right]_{+} \end{aligned}\right.\]

與最優點的距離越近,這個權重就越小,與最優點的距離越遠,這個權重就越大

2. Margin

  • 對於沒有權重的損失函數,\(S_n\)\(S_p\)是對稱的,在\(S_n\)上附加一個正的margin 相當於 對 \(S_p\) 施加一個負的 margin,因此最后面就只需要一個margin就夠了

\[\begin{aligned} \mathcal{L}_{u n i} &=\log \left[1+\sum_{i=1}^{K} \sum_{j=1}^{L} \exp \left(\gamma\left(s_{n}^{j}-s_{p}^{i}+m\right)\right)\right] \end{aligned}\]

  • 而現在增加了權重后,\(S_n\)\(S_p\)就不是對稱的了,因此這里需要2個margin

\[\mathcal{L}_{c i r c l e}=\log \left[1+\sum_{j=1}^{L} \exp \left(\gamma \alpha_{n}^{j}\left(s_{n}^{j}-\Delta_{n}\right)\right) \sum_{i=1}^{K} \exp \left(-\gamma \alpha_{p}^{i}\left(s_{p}^{i}-\Delta_{p}\right)\right)\right] \]

這個地方說 期望 \(s_p^i > \Delta_p\)\(s_n^i < \Delta_n\) 不明白;??????
-------------------------------------------------------------

  • 以二分類為例,將權重代入統一的損失函數,可以得到:

    \[\left(s_{n}-\frac{O_{n}+\Delta_{n}}{2}\right)^{2}+\left(s_{p}-\frac{O_{p}+\Delta_{p}}{2}\right)^{2}=C \]

    \[C=\left(\left(O_{n}-\Delta_{n}\right)^{2}+\left(O_{p}-\Delta_{p}\right)^{2}\right) / 4 \]

    是一個關於 \(S_n\),\(S_p\)的圓,這也就是為什么這篇文章叫做 circle loss的原因
    ---------------------------------------------------------
  • 可以看到,這樣子 circle loss就存在5個超參數,太麻煩,於是作者進行了簡化:
    \(O_p = 1+m, O_n = -m, \Delta_p = 1-m, \Delta_n = m\)
    於是,決策邊界可以改為:

\[\left(s_{n}-0\right)^{2}+\left(s_{p}-1\right)^{2}=2 m^{2} \]


Cicle Loss的優點:

image.png

    1. Balanced optimization on \(S_n\), \(S_p\)
    • 如上圖 A(S_n=0.8, S_p = 0.8),其中 \(S_p\)離最優點1已經很接近了,但是\(S_n\)離最優點0還有很遠,
    • 而如圖(a)所示,triplet loss 無論對\(S_n\)還是\(S_p\)的梯度都還很大,這是不應該的
    • 但circle loss,如圖 (c) 所示,可以看到,c_左,\(S_n\)離最優點很遠,其梯度很大;同時,c_右,\(S_p\)離最優點已經很近了,所以其梯度比較小,這是符合邏輯的
      --------------------------------------------------------
    1. Gradually-attenuated gradients
    • 一般的梯度在收斂前都基本保持不變,直到收斂時其梯度陡降,可以看到,圖(a),triplet loss的決策面是幾乎垂直的;而且B點相比與A點來說更加接近決策邊界,但是他們優化時的懲罰力度是相同的,這也是不應該的
    • 而從圖(c)來看,在初始遠離最優點時其梯度比較大,然后慢慢接近最優點時其梯度是逐漸減低的
      ------------------------------------------------------
    1. A (more) definite convergence target
    • triple loss的決策邊界是平行 \(S_n - S_p=m\)的,這樣邊界線上的任意一個點都可能被看作是最優點
    • 而circle loss 是圓形的分界面,其最優點就只有一個
      image.png

消融實驗

  1. 權重的加入,對不同的 \(\gamma\),性能比較穩定
    image.png

  2. \(S_p, S_n\) 的變化
    image.png

可以看到,circle loss的 \(S_p\)增加得比SM-softmax更快,最后的擬合效果也更好。


免責聲明!

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



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