SphereReID:從人臉到行人,Softmax變種效果顯著

SphereReID:從人臉到行人,Softmax變種效果顯著

來自專欄 Deep into CV/DL

本文主要是介紹自己做的一個工作:SphereReID: Deep Hypersphere Manifold Embedding for Person Re-Identication ,用了Softmax的變種,在行人重識別上取得了非常好的效果,並且端到端訓練,網路結構簡單。在Market-1501數據集上達到94.4%的準確率(並且不需要re-ranking和fine-tuning)。

另外,也介紹了一種新的學習率調整策略,可以有效地提升網路訓練效果,同時並不局限於行人重識別任務,自己用在關鍵點檢測上也取得了不錯的效果,僅僅通過改變學習率測率就可以漲兩個點的樣子。

在過去一年中,人臉識別領域取得了非常多的進展,識別率到了一個非常高的水平,一個很重要的原因,是大家重新審視了Softmax Cross-entropy這個古典的損失函數,來了一場損失函數的文藝復興,提出了各種各樣的變種,並且效果取得了巨大的提升。這股風主要在人臉領域刮,而我是做行人重識別的,自然也會想到在行人上面也深挖一下Softmax,於是就有了這篇文章。就我所知,這是第一個利用Softmax變種將行人特徵映射到一個超球面上進行重識別的工作。

人臉中的Softmax變種

傳統的Softmax Loss

傳統的Softmax Loss被廣泛用於分類問題,可以很好地區別不同類的樣本,是最基本的最常用的損失函數之一。其公式如下:

其中x是網路最後一層(不包括分類層)輸出的特徵,經過一個全連接的分類層,即乘以權重W並加上偏置b,輸出score,然後經過一個Softmax函數再算交叉熵。

Softmax可以有效區分類間差異,但是對於類內的分布沒有很好的約束,因此監督效果不夠。

Large-Margin Softmax

論文:W. Liu, Y. Wen, Z. Yu, and M. Yang, 「Large-Margin Softmax Loss for Convolutional Neural Networks,」 in ICML, 2016.

最後分類層的每個神經元乘以權重的過程,可以分解為如下形式:

即神經元的權重向量的模和特徵向量的模相乘,再乘以兩個向量夾角的餘弦值,這是簡單的向量點積的基本定義公式。 對上面的右邊的公式進行重解釋,解釋為特徵向量到神經元向量的點積,到哪個特徵向量點積大最後就劃分到哪個類別。

原始的餘弦值不加額外約束,即只要到正確類別的點積更大即可正確劃分。這篇文章作者認為不僅要分對,還要有Margin,更好地分開來,所以替換掉裡面的餘弦值,用一個新的變換來替代:

可以用m來控制Margin的大小,當m等於2的時候,和原始的餘弦值函數比,人為地添加了一定的Margin來強制約束兩個類分得更開:

這是用在MINIST手寫數字識別上的效果,新的損失得到的特徵更加緊湊:

Angular Softmax

論文:W. Liu, Y. Wen, Z. Yu, M. Li, B. Raj, and L. Song, 「SphereFace: Deep Hypersphere Embedding for Face Recognition,」in CVPR, 2017.

還是用新的餘弦值映射函數來替代原始的餘弦值函數,增加Margin,並且對分類權重向量的權重做了歸一化,消除了不同類別的權重的模的不同帶來的差異,而更加依賴於權重向量和特徵向量的角度。而我們新的Margin就是用來約束角度的,角度的區分度的優勢可以更好地體現出來:

Additive Cosine Margin

論文:H. Wang et al., 「CosFace: Large Margin Cosine Loss for Deep Face Recognition,」 CVPR. 2018.

論文:F. Wang, W. Liu, H. Liu, and J. Cheng. "Additive margin softmax for face verification". In arXiv:1801.05599, 2018

這兩篇大約同時掛出來,都是講的歸一化後餘弦值上加Margin。

另外,往前的NormFace里就提出了類似的歸一化的思想:F. Wang, X. Xiang, J. Cheng, and A. L. Yuille, 「NormFace: L2 Hypersphere Embedding for Face Verification,」 in Proceedings of the 25th ACM international conference on Multimedia, 2017.

前面提到的用替代餘弦函數來取代原始餘弦函數添加Margin的做法,有一個缺點是替代函數的選取以及使用替代函數會比較複雜,並且Margin不太好控制,夾角不同時約束變化不同。並且引入用來替代函數實現也複雜,所以提出來直接在餘弦值上添加一個Margin:

這樣做簡單直接多了。

Additive Angular Margin

論文:J. Deng, J. Guo, and S. Zafeiriou, 「ArcFace: Additive Angular Margin Loss for Deep Face Recognition,」 ArXiv e-prints, Jan. 2018.

直接修改餘弦值增加Margin,Margin對score的影響不是線性的,權重向量和特徵向量之間夾角不同,約束強度也不一樣。所以想到了直接對角度進行約束,提出了:

可以看到,直接在角度那裡添加Margin約束。

一個直觀的幾種變種的Margin約束強度如下圖所示:

SphereReID

損失函數

受人臉對於Softmax重新解釋,添加幾何意義,看作向量夾角接近的方法的啟發,我們也在行人重識別上採用來類似的做法,不把特徵映射在普通的歐式空間,而是映射到球面上,這樣分類的幾何意義就非常清晰了:

圖a是原始的Softmax損失,綠色是分別是類別1和類別2的分類層神經元,分別輸出屬於類別1和類別2的score,黃點和紅點分別是落在空間中的不同類別的樣本。可以看到,原始的Softmax在空間的分布比較隨意。回顧一下,輸出的score為:

而z1=z2就是兩個類別的臨界面,約束類別1的樣本的score滿足z1>z2,類別2的樣本的score滿足z2>z1即可正確進行分類,但是實際上特徵分布並不夠理想。

圖b是行人重識別度量學習中常用的Triplet Loss的分布,Triplet Loss要滿足正樣本對見的距離比負樣本對之間的距離更小,並小於一個設定的閾值:

Triplet Loss使用的是相對約束,對於特徵的絕對分布沒有添加現實的約束,所以還經常將Triplet Loss和Softmax Loss結合起來,效果也會進一步提升。

圖c則是本文的Sphere Loss,將特徵映射到一個高維球面上,具體的公式如下:

將權重向量和特徵向量都進行歸一化消除模的影響,並引入一個溫度參數s,控制softmax的溫度(即曲線的波動程度)。

這樣做以後,如下圖所示:圖a原始的softmax是比較點積,對於樣本x,如果

則分到第1類,反之分到第2類,分類結果不僅和角度有關,還和向量的模有關。

而圖b中歸一化以後,只需要比較兩個角度的大小,如果

則分到第1類,反之分到第2類,只由角度決定,清晰簡單多來,全部映射到一個超球面上了:

網路結構

我們還設計來一個網路使用該損失函數用於行人重識別任務。

設計的網路結構如下:基礎網路(本文使用來ResNet-50)抽取特徵,然後全局平均池化、BN、Dropout、FC再BN,然後用L2歸一化,得到最終的特徵,然後計算損失。如下圖:

數據供應部分,使用了類似Batch Hard的方式,每次輸入P個人的K張圖片。

Warming-up策略

此外,文章還提出了一種新的Warming-up學習率策略。直接上學習率曲線如下:

核心就是先用小的學習率,然後逐漸增大學習率到想要的值。

背後的動機在於:網路在一開始的時候是未良好初始化的,Base Model的權重是在ImageNet上訓的,而不是用於ReID,而新添加的層則是隨機初始化的。所以一開始網路並不能很好的提取特徵,使用較大的學習率很容易梯度爆炸(比如在Batch Hard Triplet Loss中特別明顯),可以使用梯度裁剪來緩和梯度過大的問題,但是這樣認為裁剪影響梯度的正常傳播,最後訓練的效果會受到一定的影響。

所以提出了一開始用較小的學習率,warming-up,讓網路先漸漸地緩慢到達一個良好初始化的狀態,再增大到預期的大學習率進行正常訓練。

實驗結果證明,這種策略可以有效地提升訓練效果,並且不需要額外的修改或計算量。並且,通過在其它任務上地實驗,比如關鍵點檢測,發現該warming-up方法也能有效提高最終準確率。

結果

最後單模型僅用一個單損失函數,end-to-end地訓練,就可以達到state-of-the-art,不需要re-ranking或fine-tuning。其中在Market-1501上達到了94.4%,在DukeMTMC-reID上達到了83.9%的top-1準確率,並且具有單模型單損失端到端特徵向量小實現簡單等優點。

總結展望

SphereReID是Softmax重發現在行人重識別上的第一個工作,取得了很好的效果,並且有端到端訓練、實現簡單、原理清晰、效果顯著等優點,說明了該思想的有效性。而本文的方法,在未來還有很多可以值得進一步探索和提升的地方:

  1. 添加Margin,本文沒有添加Margin,未來可以探索添加Margin,進行更好的約束,進一步提升效果;
  2. Softmax變種並不太容易訓練,希望有更多的研究可以解決訓練的問題;
  3. Warming-up學習率策略不一定局限於ReID,在關鍵點檢測上也有效,可能可以應用到其它更多的領域;
  4. 從人臉到行人重識別,效果確實不錯,Softmax的變種也可能被用在更多的領域,等待進一步的探索;
  5. 從特徵提取層面入手和從損失函數入手,行人重識別準確率已經被提得很高,不過一些細化的問題和更難的一些場景仍需探索;

推薦閱讀:

TAG:計算機視覺 | 深度學習DeepLearning | 行人重識別 |