1. 程式人生 > >行人重識別:SVDNet行人檢索

行人重識別:SVDNet行人檢索

網路結構

作者所採用的基礎網路為resnet-50,在最後一個全連線層的前面加了一個Eigenlayer,其實就是一個全連線層,只不過對引數做了SVD分解,因此稱為SVDNet。

對全連線層做SVD分解的原因是:全連線層是以向量內積形式進行特徵的相似性度量或者說分類,全連線層的權重之間存在相關性的,學出來的特徵也是有相關性的,而在Person Re-ID的普遍測試中是以歐式距離進行相似性度量的,因此存在一定的誤差。

訓練過程

  • step0:用加了全連線層的resnet-50在之前訓好的resnet-50上進行fine-tune直至收斂。

  • Restraint and Relaxation Iteration (RRI):

    • 去相關:將新加的全連線層的權重進行SVD分解

      W=USVTW=USVT

      用US代替W,然後用WWTWWT的特徵向量代替權重。
    • 約束:固定本層引數繼續fine-tune直至收斂。
    • 鬆弛:不固定本層引數繼續fine-tune直至收斂。
  • 重複RRI過程。

經過去相關約束處理後,權重向量是正交的,但是這時候不一定收斂的很好,因此需要鬆弛步驟,然後不斷重複次過程。

為什麼要用WWTWWT特徵向量來代替權重,而不是直接用USUS來代替權重?

作者的回答是:SVD分解的奇異特徵向量的符號是不確定的,因此特徵投影到權重上後的方向是不確定的,因此用WWTWWT特徵向量來代替權重。

學習機制

假設f為Eigenlayer之後的輸出,則特徵之間的歐式距離為

由於V為酉矩陣,因此USUS來替換W之後的相似性度量是不變的,即

作者的實驗也表明了這點

實驗