Asymmetric Co-Teaching for Unsupervised Cross-Domain Person Re-Identification

行人重識別之cross domain

Asymmetric Co-Teaching for Unsupervised Cross-Domain Person Re-Identification (AAAI 2020)
原文鏈接
代碼連接

這篇文章爲cross domain問題提供了一個新思路:在使用聚類算法給target數據庫打僞標籤的時候,會存在一些離羣點(outliers),即這些圖像特徵不是很明顯,所以不屬於任何一類。大多數人的做法是直接放棄這些圖像。本文的重點在於如何利用這些圖像進一步提升cross domain的效果。

算法的前兩步和其它算法類似,簡單說明:

  1. 使用交叉熵損失和三元組損失在source上進行預訓練。
  2. 使用預訓練模型提取target圖像的特徵向量並根據特徵向量進行聚類。根據聚類結果給圖像打標籤(這裏不包括outliers)。在此基礎上對1中的模型進行微調,只使用了三元組損失。

接下來,是文章的重點:如何利用好outliers?
先來思考,什麼樣的圖像容易成爲outliers呢:特徵不明顯的圖像,比如10張小明的圖像,9張角度很正、背景不亂、沒有遮擋,即特徵明顯。1張或者角度不好、光線不好,或者存在遮擋、圖像不完整等。那麼這1張圖像就很容易成爲outlier。下圖是幾個outlier的例子。
在這裏插入圖片描述
所以,即使強行根據聚類的距離對這些圖像打上僞標籤進行訓練,對模型來講也是一件十分困難的事情。所以,作者使用了一種過渡的思想。比如上面五張圖像,最左邊的特徵相對明顯,所以先用該圖像進行訓練。當模型適應了該圖像,我們就可以賦予模型更具挑戰性的outliers。這樣,模型不斷進步,最後就可以使用全部outliers進行訓練。

如何確定outliers的難易程度?
給outliers打上僞標籤,輸入模型。損失越大,即說明該outlier的訓練難度越大。

基於以上分析,我們來看一下文章算法的總體框架:
在這裏插入圖片描述
虛線代表沒有反向傳播,只用來提取特徵。實線代表訓練過程。
根據上述的前兩步訓練,我們可以獲得一個模型進行下一步的訓練。圖中的M和C均是該模型,只不過在接下來的訓練過程中,兩者的訓練方式不同。最後的測試模型是M,C用來輔助訓練過程。

使用M提取特徵,根據聚類算法確定inliers和outliers。C和M分別判斷outliers和inliers中比較簡單的圖像。然後再把簡單的圖像反過來分別輸入到M和C進行訓練。另外M的訓練圖像也包含所有的inliers。損失函數使用了三元組損失。

大家可能有點暈,仔細看一下框圖和上一段話,然後我們一起來分析一下其中的思想:

我們希望M能夠逐步學習outliers中的信息,所以需要對outliers的難易程度進行判斷。但是我們不能使用M本身進行判斷,因爲outliers本身就是由M選出來的,使用M判斷難易程度過於片面。所以,我們需要獲得一個具有基本分辨能力的輔助模型,也就是圖中的C,用它來判斷outliers的難易程度。可是,M越來越強,C的難易程度對於M可能會失去意義。所以,把M認爲簡單的圖像,輸入到C中,使C的性能提高。這樣,在交替訓練的過程中,M和C就能共同進步。最後,充分利用所有的outliers。

總結:本文的思想和對抗思想有異曲同工之處,在共同學習的過程中,兩者不斷變得更加強大。也讓我們看到了使用傳統機器學習算法對深度學習進行輔助的優越性。


歡迎討論 歡迎吐槽

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