1703.In Defense of the Triplet Loss for Person Re-Identification 論文閱讀筆記

1703.In Defense of the Triplet Loss for Person Re-Identification-v2
本文爲Triplet 的改進方法進行end-to-end 的基於深度學習的度量學習,作者改進了tripletloss,分別採用現成的可參數遷移的resnet-50v2模型和基於resnet設計的從頭訓練的模型進行了實驗,在CUHK03,Market-1501和MARS數據集上。
文章的貢獻主要有兩個方面:
(1) 設計了新的Triplet Loss,並和其它變種進行了對比。
(2) 對於是否需要 pre-trained模型,進行了實驗對比分析。

相關資源:
Paper: https://arxiv.org/abs/1703.07737
Github: https://github.com/VisualComputingInstitute/triplet-reid
還有一篇基於該文章的改進:
Margin Sample Mining Loss: A Deep Learning Based Method for Person Re-identification
還有一篇來自CVPR 的文章,同樣是改進Triplet Loss
文章鏈接: 《Beyond triplet loss: a deep quadruplet network for person re-identification》
Beyond triplet loss—— Re-ID

其他網友的講解:
基於Triplet loss 函數訓練人臉識別深度網絡
基於Triplet loss函數訓練人臉識別深度網絡(Open Face)
description of the triplet loss in Tensorflow
triplet loss 原理以及梯度推導
Tutorial: Triplet Loss Layer Design for CNN
http://blog.csdn.net/shuzfan/article/details/70187597
https://www.cnblogs.com/wangxiaocvpr/p/7105923.html
http://blog.csdn.net/qq_21190081/article/details/78417215
http://blog.csdn.net/yuanchheneducn/article/details/78534604
Understanding Triplet Loss and Two example code
https://www.zhihu.com/question/38937343/answer/94137046

簡介:
Classification Loss: 當目標很大時,會嚴重增加網絡參數,而訓練結束後很多參數都會被摒棄。
Verification Loss: 只能成對的判斷兩張圖片的相似度,因此很難應用到目標聚類和檢索上去。因爲一對一對比太慢。
Triplet Loss: 端到端,簡單直接; 自帶聚類屬性; 特徵高度嵌入,但是不好訓練。hard mining在Triplet訓練中是一個很重要的步驟。 沒有hard mining會導致訓練阻塞收斂結果不佳,選擇過難的hard又會導致訓練不穩定收斂變難。此外,hard mining也比較耗時而且也沒有清楚的定義什麼是 “Good Hard”。

Triplet Loss最早來源於 Google 的 FaceNet,Triplet Loss 的想法很簡單: 類內距離趨小, 類間距離趨大.Triplet Loss 是當前應用,很廣泛的一種損失函數,在人臉識別和聚類領域,這是一種很自然的映射與計算損失的方式,比如FaceNet裏,通過構建一,embedding 方式,將人臉圖像直接映射到歐式空間,而優化這種embedding的方法可以概括爲,構建許多組三元組(Anchor,Positive,Negative),其中Anchor與Positive同label,Anchor與Negative不同label(在人臉識別裏面,就是Anchor,Positive是同一個個體,而與Negative是不同個體),通過學習優化這embedding,使得歐式空間內的Anchor與Positive 的距離比與Negative的距離要近。
triplet loss的最主要應用也就是face identification,person re-identification,vehicle re-identification的各種identification識別問題上當然你可以把每個人當做一個類別來進行分類訓練,但是往往最後會造成softmax的維數遠大於feature的維數,想想resnet50 global ap出來一個2048的feature對應到一個幾萬,幾十萬的分類softmax就可怕。另外一個結論就是triplet loss通常能比classification得到更好的feature,我個人測試triplet loss至少比classification高10個點。還有一個優點就是triplet loss 可以卡閾值,triplet loss訓練的時候要設置一個margin,這個margin可以控制正負樣本的距離,當feature 進行normalization後,可以更加方便的卡個閾值來判斷是不是同一個ID當然triplet loss也有缺點,就是收斂慢,而且比classification更容overfitting。

該論文中,對 triplet loss 的一個討論,裏面的 batch hardmining 非常好用。Triplet loss的缺點在於隨機從訓練集中挑選出三張圖片,那麼可能會出現挑選出來的很可能是簡單的樣本,比如很像的正樣本對和很不像的負樣本對。作者認爲,讓網絡一直學習簡單的樣本會限制網絡的泛化能力,因此提出一種在線batch hard sample mining的改進版triplet loss。
這裏寫圖片描述

幾種Triplet 變種:摘自[鏈接](https://www.cnblogs.com/wangxiaocvpr/p/7105923.html)
Large Margin Nearest Neighbor loss:由於是最近鄰分類,所以同一類當中可能有多個cluster,而且固定的cluster中心也比較難以確定。
FaceNet Triplet Loss:不要求同類目標都靠近某個點,只要同類距離大於不同類間距離就行。
Batch All Triplet Loss:FaceNet Triplet Loss訓練時數據是按順序排好的3個一組3個一組。假如batch_size=3B,那麼實際上有多達很多種三元組組合,僅僅利用B組就很浪費。改變一下數據的組織方式:batch size=K×Bbatch size=K×B,即隨機地選出K個人,每個人隨機地選B張圖片。 這樣總共會有 PK(PK−K)(K−1)PK(PK−K)(K−1)種組合
Batch Hard Triplet Loss:Batch All Triplet Loss看起來一次可以處理非常多的三元組,但是有一點很尷尬:數據集非常大時訓練將會非常耗時,同時隨着訓練深入很多三元組因爲很容易被分對而變成了“無用的”三元組。怎麼辦? Hard Mining. 但是,過難的三元組又會導致訓練不穩定,怎麼辦? Mining Moderate Hard。作者定義了下面的“較難”的Triplet Loss,之所以是“較難”,是因爲只是在一個小的Batch裏面選的最難的。
Lifted Embedding Loss:針對3個一組3個一組排列的batch,提出了一種新的Loss:將anchor-positive pair之外的所有樣本作爲negative,然後優化Loss的平滑邊界。
這裏寫圖片描述

多種Triplet Loss性能對比:
這裏寫圖片描述
這裏寫圖片描述

在數據集上的測試:
這裏寫圖片描述
這裏寫圖片描述
To Pretrain or not to Pretrain?
TriNet表示來自pre-trained model,LuNet是作者自己設計的一個普通網絡。
這裏寫圖片描述
從上面的表格來看,利用pre-trained model確實可以獲得更好一點的效果,但是從頭開始訓練的網絡也不會太差。

特別的,pre-trained model往往體積較大模式固定,不如自己設計網絡來的靈活。同時,pre-trained model往往有其自己的固定輸入,我們如果修改其輸入很可能會得到相反的效果。如下表:

Trick
(1) 如果使用了hard mining, 單純的看loss變化往往不能正確把握訓練的進程。作者推薦觀察一個batch中的有效三元組個數,或者所有pair間的距離。
(2) 初始margin不宜過大;

其他方面實驗:

Market-1501有錯標
這裏寫圖片描述

hardest positives和hardest negatives

這裏寫圖片描述

Experiments with Distractors

這裏寫圖片描述
這裏寫圖片描述

其他截圖
這裏寫圖片描述

網絡結構
這裏寫圖片描述

full Barnes-Hut t-SNE visualization from which the teaser image (Fig. in the paper) was cropped. our learned embeddings for the Market-1501 test-set. Best viewed when zoomed-in.
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章