Distilled Person Re-identification: Towards a More Scalable System

行人重識別之泛化能力

Distilled Person Re-identification: Towards a More Scalable System
原文鏈接:http://openaccess.thecvf.com/content_CVPR_2019/papers/Wu_Distilled_Person_Re-Identification_Towards_a_More_Scalable_System_CVPR_2019_paper.pdf

如題所示,本文主要爲了提升行人重識別的泛化能力,也可以說是應用性。具體從3個方面入手,作者總結的很到位:

  1. 降低標籤成本(減少標籤的需求量)
  2. 降低跨數據庫成本(利用一些先驗知識)
  3. 降低測試成本(使用輕量級網絡)

這篇文章的數學公式較多,喜歡數學的朋友可以參考原文。這裏重點介紹其思想。

在這裏插入圖片描述
整體框架如圖所示,主要是蒸餾學習的思想。訓練時只需要target數據庫中的10個標籤信息,解決了標籤問題;使用了多個老師模型,利用了先驗知識,解決了跨數據庫問題;學生模型使用了輕量級網絡,解決了計算量問題。

按照實現流程來進行分塊介紹:

  • 使用不同的數據庫(source)訓練多個老師模型,訓練結束後,再也不需要source數據庫。
  • ImageNet初始化學生模型。
  • 將目標數據庫(target)隨機分爲有標籤部分(10個身份足矣)和無標籤部分。
  • 分別利用以上模型提取target中每一張圖像的特徵向量x。
  • 根據x計算出相似度矩陣A,A中第i行第j列代表圖像i和圖像j的匹配概率。
  • 使用Lver更新每一個老師模型的權重a(可以理解爲,權重越大,該老師模型對應的source和target越相似)。
  • 計算出每一個老師模型和學生模型得到的相似矩陣的差異,並使用上述的權重加權,從而得到Lta。
  • 使用Lta對學生模型進行更新。
  • 循環訓練。

看到這,對整體框架有了一定的把握。但是會有一個問題:

如何更新各個老師模型的權重?
最開始,每一個權重被平均分配,比如4個老師模型,那麼權重就都是0.25。然後,利用計算出的Lta對學生模型計算的特徵向量x進行更新。然後,根據更新後的x計算Lver。最後對Lver進行求導,從而更新權重。

重點來了,如何計算Lver?
作者使用了很巧妙的方法:
在這裏插入圖片描述
x是特徵向量,s代表這是針對student模型,N代表batchsize,p代表一對正樣本,即i和j構成正樣本對,k和i、j都構成負樣本對。正樣本對利用了上述的10組使用標籤的數據,由於使用標籤的和不使用標籤的不重合,所以從不使用標籤的隨機選一個樣本就可以和使用標籤的樣本構成負樣本對。我們希望正樣本對乘積大,負樣本對乘積小,最後就構成了該損失函數。
雖然只使用了10組有標籤的樣本(實驗證明使用1組就有很大改善),但是因爲只利用該損失更新老師模型所佔權重,不更新其它參數,所以不會發生過擬合問題。換句話說,這10組使用標籤的數據就是在告訴模型,target和哪一個source更相似。

直觀感受一下,附上訓練中權重的變化圖:對應的target是market1501
在這裏插入圖片描述

總結:難得一見得好文章,三個問題很實際,想法很新穎,實驗很充分。具體的數學細節推薦大家參考原文,不難看懂。同時,提醒我們,無監督的re-ID的時代已經到來。


歡迎討論 歡迎吐槽

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