論文提出了Circle loss,不只可以對類內優化和類間優化進行單獨地處理,還能根據不一樣的類似度值調整對應的梯度。整體而言,Circle loss更靈活,並且優化目標更明確,在多個實驗上都有較好的表現,我的認爲是一個很好的工做
來源:曉飛的算法工程筆記 公衆號
論文: Circle Loss: A Unified Perspective of Pair Similarity Optimization算法
論文認爲兩類基礎的深度特徵學習方法classification learning(好比softmax)和pair-wise learning(好比triplet loss)均是爲了最小化類內類似度$s_n$和類間類似度$s_p$,理想是$(s_n=0, s_p = 1)$。而大部分經常使用的損失函數都是將$s_n$和$s_p$embed成類似度對,而後用各自研究的策略最小化$(s_n-s_p)$的值。這種策略提高$s_p$等同於降低$s_n$,但其實這種對稱的優化方法很容易存在如下問題:微信
基於上面的發現,論文認爲不一樣的類似分數應該有不一樣的懲罰力度,首先將$(s_n - s_p)$轉換爲$(\alpha_n s_n - \alpha_p s_p)$,$\alpha_n$和$\alpha_p$是獨立的權重因子,分別與$s_n$和$s_p$線性相關,這樣不只使得$s_n$和$s_p$能以不一樣的步伐進行學習,還能夠更具類似分數調整幅值。這樣的優化策略使得$\alpha_n s_n - \alpha_p s_p=m$在$(s_n, s_p)$空間內呈現圓形,故稱爲Circle loss。
Circle loss主要從如下3個方面入手改變深度特徵學習的內在特性:ide
論文的主要貢獻以下:函數
給予特徵空間的單樣本$x$,假設有$K$個類內類似分數和$L$個類間類似分數關聯$x$,定義類似度分數爲$\{s^i_p\}(i=1,2,\cdots,K)$和$\{s^i_n\}(i=1,2,\cdots,L)$。學習
爲了最小化每一個$s^j_n$以及最大化每一個$s^i_p$,統一的損失函數如公式1,其中$\gamma$爲縮放因子,$m$爲邊際(margin)。公式1迭代每一個類似度對來減少$(s^j_n-s^i_p)$,經過簡單的修改就能變爲triplet loss和classification loss。優化
在分類層計算樣本$x$與各種的類似度以及權重向量$w_i (i=1,2,\cdots,N)$,獲得$(N-1)$個類間類似度$s^j_n=w^T_j x/(||w_j||\ ||x||)$以及單個類內類似度$s_p = w^T_y x/(||w_y||\ ||x||)$。spa
結合公式1,獲得公式2的softmax變種AM-Softmax,當$m=0$時,公式2可以進一步變化爲Normface,當將cosine類似度替換爲內積以及設置$\gamma=1$時,則爲softmax loss。orm
計算mini-batch中樣本$x$與其它樣本的類似性,獲得類間類似度$s^j_n=w^T_j x/(||x_j||\ ||x||)$以及單個類內類似度$s^i_p = w^T_y x/(||x_i||\ ||x||)$。blog
結合公式1,$K=|\mathcal{P}|$,$L=|\mathcal{N}|$,獲得帶hard mining的triplet loss,$\sum exp(\cdot)$用於調節mining的程度,當$\gamma \to + \infty$時,就是絕對的hard mining。圖片
公式2和公式3展現了公式1的通用性,目標均是優化$(s_n-s_p)$。論文假設僅存在單個$s_p$和$s_n$,各類損失函數的梯度進行了可視化,如圖2所示,觀察到了主流損失函數的幾點梯度表現:
爲了讓每一個類似度分數可以根據當前優化狀態調整學習的幅度,先忽略公式1的$m$並調整爲Circle loss,如公式4所示,$\alpha^j_n$和$\alpha^i_p$爲非負權重因子。
假定$s^i_p$的最優值爲$O_p$,$s^j_n$的最優值爲$O_n(O_n < O_p)$,則$\alpha^j_n$和$\alpha^i_p$的計算如公式5,稱爲self-paced manner,$[\cdot]_+$爲cut-off at zero操做來保證$\alpha^j_n$和$\alpha^i_p$非負。
加權是分類loss中的常見操做,全部的類似度分數共享同一個縮放因子$\gamma$,而Circle loss則根據每一個類似度分類的值再進行一次獨立的加權,容許不一樣的學習幅度,可以更加地靈活。
在以前的討論中,主流損失函數的$(s_n-s_p)$的優化是對稱的(減小$s_n$等同於增大$s_p$),僅需一個邊際(margin)便可。而在Circle loss中,$(s_n-s_p)$的優化是非對稱的,所以須要設置獨立的邊際,如公式6,其中$\Delta_n$和$\Delta_p$爲類間邊際和類內邊際,目標是$s^i_p>\Delta_p$以及$s^j_n<\Delta_n$,下面探討邊際的設置問題。
考慮簡單的二分類問題,決策邊界爲$\alpha_n(s_n - \Delta_n)-\alpha_p(s_p-\Delta_p)=0$,結合公式5和6,決策邊界可轉換爲公式7,其中$C=((O_n-\Delta_n)^2+(O_p-\Delta_p)^2)/4$,即爲Circle loss決策邊界爲圓的弧,如圖1b所示,中心點爲$(s_n=(O_n+\Delta_n)/2, s_p=(O_p+\Delta_p)/2)$,半徑爲$\sqrt{C}$。
Circle loss包含5個參數$(O_p, O_n, \gamma, \Delta_p, \Delta_n)$,論文經過設置$O_p=1+m$,$O_n=-m$,$\Delta_p=1-m$,$\Delta_n=m$來減小參數,最終將公式7轉換爲公式8。基於公式8的決策邊界,能夠看到其目標爲$s_n \to 0$和$s_p \to 1$,參數$m$控制決策邊界的半徑能夠看做是鬆弛因子,便可將Circle loss目標改成$s^i_p>1-m$和$s^i_n<m$。
Circle loss關於$s^j_n$和$s^i_p$的梯度分別爲公式9和公式10,在簡單的二分類問題上,梯度的可視化如圖2c所示,能夠觀察到幾點梯度表現:
經過觀察圖4發現:
論文可視化了收斂後的類似度分佈,能夠看到,Circle loss以更緊密地方式經過了決策邊界,而AMSoftmax則較爲稀疏地經過了,這代表Circle loss的優化目標較爲明確的,特徵空間可分離性更好,這種狀況在圖5c中更爲明顯。
論文將classification learning和pair-wise learning進行了統一的表達,並根據目前的損失函數實際存在問題進行了改進,提出了Circle loss,不只可以對類內優化和類間優化進行單獨地處理,還能根據不一樣的類似度值調整對應的梯度。整體而言,Circle loss更靈活,並且優化目標更明確,在多個實驗上都有較好的表現。
若是本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公衆號【曉飛的算法工程筆記】