CVPR2020,來自曠視

@Yifan Sun

,瑞斯派克特

摘要:

研究領域是深度特徵學習(

deep feature learning

),領域內研究目的是最小化類間相似度(

s_n

,similarity of negative pairs)以及最大化類內相似度(

s_p

,similarity of positive pairs)。 調研發現主流的度量學習(甚至多分類學習)損失函式都會歸為

s_n-s_p

,作者觀察到這樣的損失對於所有的樣本相似度產生的懲罰是一致的,無論他們的對應關係如何。故而一個比較好的思路是,對於那些更遠離最優解的點進行更多懲罰(相應的更近的點懲罰更少)

intro簡單:

提出關於深度特徵學習的兩條路子:

類別標籤

以及

樣本對應關係標籤

。但殊途同歸都會歸結到同一個最佳化目標的變種:

\min(s_n - s_p)

,使用這樣的損失函式會帶來兩個明顯的問題:

對於

s_n

s_p

相同的懲罰力度,舉例來說,當

s_n

已經接近0但

s_p

還很小的時候,雖然直覺上需要對

s_p

更多關注,但依然會給

s_n

s_p

相同尺度的關注。

最佳化

s_n-s_p

的目標往往會得到一個分類邊界

s_n-s_p=m

,而該分類面會帶來模糊性(模稜兩個),舉例來說,兩個樣本獲得的<

s_p, s_n

>分別是<0。7, 0。4> <0。5, 0。2>,他們都有

s_n-s_p=-0.3

,但是前者的

s_n

和後者的

s_p

僅有0。1的差距。這種模糊性會對特徵空間的可分離性造成較大影響。

嘗試解決上面問題1,比較好的思路是分別對

s_n

s_p

新增權重

\alpha_n

\alpha_p

,最佳化目標變成了

\min(\alpha_n s_n - \alpha_p s_p)

;同時將

\alpha_n

\alpha_p

分別設為

s_n

s_p

的線形相關項,舉例來說: 取

s_n

s_p

的最優目標為

O_n

O_p

,設定

\alpha_n = [s_n - O_n]_+

\alpha_p = [ O_p - s_p]_+

。 那麼最佳化目標可以轉化為

\min s_n *[s_n-O_n]_+  - s_p *[O_p - s_p]_+ \approx \min (s_n^2 + s_p^2 -O_n * s_n - O_p * s_p)

,在這種情況下,分類面為

s_n^2 + s_p^2 -O_n * s_n - O_p * s_p=m

,不難推測幾何上是個圓。

相比與之前的研究,作者列舉了三個circle loss和之前損失函式不同的點:

一種統一的深度特徵學習損失(統一class label 和 pairwise label);

靈活的最佳化方向(相比sn-sp對於兩者相同的懲罰);

確定的收斂狀態,對於特徵的可區分性有裨益。

本文先討論文章中提出的Unified Loss(統一的深度特徵學習損失),介紹上面提到的傳統兩條路子裡的經典損失函式,並推導Unified Loss是如何將他們統一的。關於Circle Loss的主體將在接下來的文章裡介紹。

兩條路子

文中提到了進行深度特徵學習的兩條經典路子:給定

類別標籤

vs 給定

成對標籤

,下面首先對這兩條路子裡比較經典的損失函式進行介紹。

給定

類別標籤

的損失

Softmax

初始的softmax損失函式表達為:

\mathcal{L}{s} = - \frac{1}{n} \sum_i^n\log{\frac{\exp(W_{y_i}^\top \mathbf{f}i)}{\sum_j^c\exp(W_j^\top \mathbf{f}_i)}} = - \frac{1}{n} \sum_i^n\log{\frac{\exp(\Vert W_{y_i} \Vert \Vert \mathbf{f}i\Vert\cos(\theta{y_i}))}{\sum_j^c\exp(\Vert W_j \Vert \Vert \mathbf{f}i \Vert \cos(\theta_j))}}

。其中

\mathbf{f}

代表的是最後一層softmax前網路生成的特徵,

\mathbf{f}_i

就是第i個樣本的特徵;而

W{y_i}

代表的是softmax層矩陣

W

y_i

類對應的向量(可以視為第

y_i

類特徵的標的)。

A-Softmax

首先對上面的式子進行了約束,使

\Vert W_j \Vert = 1

,那麼修改後的的softmax損失變成了

\mathcal{L}_{softmax\_modifed} = - \frac{1}{n} \sum_i^n\log{\frac{\exp( \Vert \mathbf{f}_i\Vert\cos(\theta{y_i}))}{\sum_j^c\exp(\Vert \mathbf{f}_i \Vert \cos(\theta_j))}}

, 不難分析,

W_j

對應第j類特徵的標的向量,主要判斷該情況下

\mathbf{f}_i

與哪個方向更接近。

舉二分類的例子,可視為在圓上的兩個半圓,這種情況下分類邊界並未直接拉開,直接比較

\cos(\theta_1)

\cos(\theta_2)

的大小;為了取得更分離的分類邊界,取分類標準為

\cos(m\theta_1) \gt \cos(\theta_2)

以及

\cos(m\theta_2) \gt \cos(\theta_1)

, 這樣得到的分類邊界不再緊貼,而在完美情況下有

\frac{m-1}{m+1}\theta_1^2

\theta_1^2

代表的是

\theta_1和 \theta_2之間的夾角

)的角距離(這裡可以考慮將W1和W2之間的夾角均分為m+1份,而分類邊界分別為最接近W1和W2的一份,故而分類邊界之間的角距離為

\frac{m-1}{m+1}\theta_1^2

),實現更好的可區分性,如下圖的右三中兩個分類區域之間的夾角。

Circle Loss之一:Unified Loss是如何統一的?

A-Softmax文中關於angular margin的釋義

拓展進多分類並對上面的

\mathcal{L}{modified_s}

得到

\mathcal{L}_{AS}=- \frac{1}{n} \sum_i^n\log{\frac{\exp( \Vert \mathbf{f}i\Vert\cos(m\theta{y_i}))}{\Vert \mathbf{f}i \Vert\cos(m\theta{y_i}) + \sum_{j\neq y_i}^c\exp(\Vert \mathbf{f}i \Vert \cos(\theta_j))}}

其中有約束

\theta{y_i}\in[0, \frac{\pi}{m}]

(餘弦函式在[0,pi] 區間上成單調遞減)。這個約束項在神經網路最佳化中很難保證,故而將上式中的餘弦函式替換為關於

\theta

的單調遞減函式

\psi(\theta)

,使其在上述區間上和餘弦函式表現一致,但定義域可以拓展。得到

\mathcal{L}_{AS}=- \frac{1}{n} \sum_i^n\log{\frac{\exp( \Vert \mathbf{f}_i\Vert\psi(\theta{y_i}))}{\exp(\Vert \mathbf{f}i \Vert\psi(\theta{y_i})) + \sum_{j\neq y_i}^c\exp(\Vert \mathbf{f}_i \Vert \cos(\theta_j))}}

,其中

\psi(\theta) = (-1)^k\cos(m\theta)-2k ,\theta \in [\frac{k\pi}{m},\frac{(k+1)\pi}{m}], k\in[0, m-1]

m是一個直接控制分類邊界距離的量,當其取1時A-Softmax就回歸到正常的Softmax,而m越大則對於分類邊界距離的要求越高。

AM-Softmax

相比A-Softmax裡只對W進行歸一化處理,這裡更進一步,將得到的特徵f也進行歸一化處理,即

\Vert W_j \Vert = \Vert \mathbf{f}i \Vert = 1

得到在上面

\mathcal{L}{modified_s}

的變種

\mathcal{L}_{modified_2} = - \frac{1}{n} \sum_i^n\log{\frac{\exp(\cos(\theta{y_i}))}{\sum_j^c\exp(\cos(\theta_j))}}

。相對於A-Softmax中對分類面

\cos(m\theta_1)=\cos(\theta2)

的方式,AM-Softmax採用了更為直觀的方法,直接取在餘弦函式(對特徵和矩陣進行歸一化後餘弦函式可以直接理解為相似度)後增加邊界,即取分類面

\cos(\theta_1) - m = \cos(\theta_2)

(正類為1的情況下)。 對應的AM-Softmax損失函式為

\mathcal{L}_{AMS}= - \frac{1}{n} \sum_i^n\log{\frac{\exp(\gamma (\cos(\theta{y_i})-m))}{\exp(\gamma (\cos(\theta_{y_i})-m)) + \sum_{j\neq y_i}^c\exp(\gamma \cos(\theta_j))}}

這裡只有一個超參

\gamma

作為權重影,雖然前作中都有設定其為可學習的超參,但實驗發現收斂很慢且在學習過程中並不會變大,故而直接將其固定為一個較大的值(30)。這裡先給出一張關於AM-Softmax對比原Softmax損失和其變種的直觀圖(其中SphereFace就是之前介紹的A-Softmax)。可以比較明顯的看到,AM-Softmax在s=10,m=0。2的情況下以及高比較接近A-Softmax所取得的結果,而調整更大的m可以得到更有區分性的結果。

Circle Loss之一:Unified Loss是如何統一的?

AM-Softmax文中,作者嘗試了幾個softmax變種對分類結果的影響

關於A-Softmax和AM-Softmax之間的區別,這裡說一下自己的理解,大致上有兩點:

最佳化目標上,A-Softmax依然是關於

\theta

進行最佳化,包括對分類邊界的約束也是加在

\theta

上,利用餘弦函式在一定區間上的單調遞減使不同類之間的分類邊界有分隔;而AM-Softmax則是直接對餘弦函式進行最佳化,並直接把邊界放在了餘弦函式上。

對於分類邊界的控制引數m,A-Softmax透過調大m來使分類邊界之間的距離(透過控制

\frac{m-1}{m+1}\theta_1^2

中的前一項)變大,但並無法直接控制

\theta_1^2

使分類邊界更寬;AM-Softmax調大m則非常直觀,對應了調大分類邊界之間的角度(

\arccos(m)

)。

給定

成對標籤

的損失

Contrastive Loss

對比損失,更像是在給定

成對標籤

情況下對softmax的直接修改,其損失函式如下。

\mathcal{L}_{contrastive} = - \frac{1}{n} \sum_i^n\log{\frac{\exp(sim(\mathbf{f}_i, \mathbf{f}_p)/\tau))}{\exp(sim(\mathbf{f}_i, \mathbf{f}_p)/\tau)) + \sum_k^m\exp(sim(\mathbf{f}_i, \mathbf{f}_{nk})/\tau))}}

其中

\mathbf{f}_i

依然代表網路得到的第i個樣本的特徵,sim函式為任意相似度度量函式(可以直接帶入餘弦函式),

\mathbf{f}_p

為i同類(positive)的樣本,而下面分母中

\mathbf{f}_{nk}

為第k個與i不同類(negative)的樣本。根據softmax,不難推測這樣的對比損失就是將問題轉化為多分類問題,使同類間樣本更像而非同類間樣本更遠。

Triplet Loss

挖墳才知道triplet loss這文章已經是15年的文章,與上面的對比損失一樣,均選擇數個與當前樣本同類和異類的樣本進行特徵抽取,其定義如下。

\mathcal{L}_{triplet} = - \frac{1}{n} \sum_i^n[\Vert \mathbf{f}_i-\mathbf{f}_p\Vert^2 - \Vert \mathbf{f}_i-\mathbf{f}_n\Vert^2 + m]_+

其中

\mathbf{f}_p

\mathbf{f}_n

的定義和對比損失一致,並對

\mathbf{f}

做了歸一化,使其範數為1。雖然文中選擇了用L2距離作為相似度衡量(相似度度量距離降低而降低),使不相似類間的距離更大而相同類間的距離更小,但依然可以採用餘弦函式這種相似度度量隨距離降低而升高的相似度衡量方法,在這種情況下(以餘弦函式舉例)上述triplet loss可以改寫為如下的式子(考慮f已經歸一化,故而兩個f的內積即為其夾角的餘弦):

\mathcal{L}_{triplet\_modified} = - \frac{1}{n} \sum_i^n[\mathbf{f}_i \cdot \mathbf{f}_n - \mathbf{f}_i \cdot \mathbf{f}_p + m]+ = - \frac{1}{n} \sum_i^n[\cos(\theta_n)- \cos(\theta_p) + m]_+

統一的損失函式

這裡給出作者提出的一種統一化的損失函式(Unified Loss),定義如下

\begin{aligned} \mathcal{L}_{uni} {} & = \log(1 + \sum_i^K \sum_j^L \exp(\gamma(s_n^j - s_p^i + m)))  \\ &= \log(1 +  \sum_j^L \exp(\gamma(s_n^j + m)) \sum_i^K\exp(-\gamma s_p^i)) \end{aligned}

其中,

s_p

s_n

分別代表同類樣本和不同類樣本的相似度,L和K分別表示有K個同類樣本對和L個不同類樣本對,m則依然代表著類別間隔。雖然文中也大致描述了上述Unified Loss如何轉變為使用

類別標籤

的損失函式和使用

成對標籤

的損失函式,我在閱讀的時候還是遇到了一些障礙,所以把我理清的過程也寫在這裡。需要宣告,特別感謝一位師兄

,上述AM-Softmax的工作是他的工作,他在關於circle loss問答下的

解答

對我理解幫助非常大(也成為了度量學習話題下的最多贊答案),涉及最佳化轉變的部分都是他的回答幫助了我。

針對給定

類別標籤

的情況

首先對特徵進行歸一化處理,並使用餘弦函式作為上述相似性度量,那麼unified loss就轉化為

\mathcal{L}{uni_1} = \log(1 +  \sum_j^L \exp(\gamma(\cos\theta_n^j + m)) \sum_i^K\exp(-\gamma \cos\theta_p^i))

;這時只取一個正樣本對,即K=1,那麼損失函式再次轉變為下面的形式,可以直接得到AM-Softmax:

\begin{equation} \begin{aligned} \mathcal{L}_{uni_2} {} &=  \log(1 +  \sum_j^L \exp(\gamma(\cos\theta_n^j + m))\exp(-\gamma \cos\theta_p^i)) \\  & = \log(1 +  \frac{\sum_j^L \exp(\gamma(\cos\theta_n^j + m))}{\exp(\gamma \cos\theta_p^i)}) \\  & = \log(\frac{\exp(\gamma \cos\theta_p^i)+ \sum_j^L \exp(\gamma(\cos\theta_n^j + m))}{\exp(\gamma \cos\theta_p^i)}) \\ & = - \log(\frac{\exp(\gamma \cos\theta_p^i)}{\exp(\gamma \cos\theta_p^i)+ \sum_j^L \exp(\gamma(\cos\theta_n^j + m))}) \\ & = - \log(\frac{\exp(\gamma (\cos\theta_p^i - m))}{\exp(\gamma (\cos\theta_p^i - m))+ \sum_j^L \exp(\gamma\cos\theta_n^j )}) \\  {}&= \mathcal{L}_{AMS}  \end{aligned} \end{equation}

再繼續轉化下去,取

\gamma=1

並使m=0,將餘弦函式寫成內積的形式,直接變成了softmax函式。

2。 針對給定

成對標籤

的情況

需引入兩點:

Softplus函式是對Relu的平滑近似(可以轉步

於此

):

\log(1+\exp(x)) \approx \max(\log(\exp(x)),0)=\max(x,0) = [x]_+

LogSumExp是對max函式的平滑近似:

\lim_{\gamma\to+\infty} \frac{1}{\gamma}\log\sum_i^N\exp(\mathbf{x}_i) = \max(\mathbf{x})

在這兩點的基礎上,對Unified Loss進行下面變換

\begin{equation} \begin{aligned} \lim_{\gamma\to+\infty} \frac{1}{\gamma}\mathcal{L}_{uni}   {}& =\lim_{\gamma\to+\infty} \frac{1}{\gamma}\log(1 +  \sum_j^L \sum_i^K \exp(\gamma(s_n^j - s_p^i + m))) \\  &\approx \lim_{\gamma\to+\infty} \frac{1}{\gamma}[\log(\sum_j^L \sum_i^K \exp(\gamma(s_n^j - s_p^i + m)))]_+ \\ & = \max[s_n^j - s_p^i+m]_+\\ & = \mathcal{L}_{triplet\_hard}  \end{aligned}\end{equation}

這樣就實現了從 Unified Loss到Triplet Loss的轉化(並且是hard-mining)。