《SVDNet for Pedestrian Retrieval》理解
《SVDNet for Pedestrian Retrieval》理解
Abstract:
這篇文章提出了一個用於檢索問題的SVDNet,聚焦於在行人再識別上的應用。我們查看卷積神經網絡中全連接層的每一個權重向量,發現它們往往都高度相關。這導致了每個全連接描述中個體之間的相關性,在基於歐幾裏得距離時會影響檢索性能。為了解決這個問題,這篇論文使用了SVD來優化深層表達學習。通過嚴厲和放松的叠代(RPI)訓練框架,我們可以在CNN訓練中叠代地整合正交性約束,生成所謂的SVDNet。我們在Market-1501,CUHK03和DukeMTMC-reID數據集上做了評估,證明了RPI可以有效的產生更具區分力的FC描述並顯著提高re-ID正確率。在Market-1501數據集上,基於CaffeNet時將rank-1準確率從55.3%提升到80.5%,基於ResNet-50時則從73.8%提升到82.3%。
1. Introduction
這篇論文考慮的問題是行人檢索,也稱為行人再識別。它目的是檢索出有包含所查詢人物的圖片。
行人再識別不同於圖片分類,因為訓練集和測試集上包含不同的類別。所以流行的re-ID深度學習方法包含以下幾步:1)在訓練集上訓練深度分類模型,2)使用全連接層提取query與gallery圖片的描述3)使用歐幾裏得距離計算相似度返回一個經過排序的列表。
通過觀察訓練後的分類模型我們發現全連接層的權重向量往往高度相關由此受到啟發。這個問題主要有兩個原因。第一個原因與訓練樣本的non-uniform分布有關。此問題在最後一個FC層尤為明顯。FC層的每個單元的輸出代表了輸入圖片與類別的相似度。訓練之後對於相似人物(如身穿紅色與紫色衣服的人)學習到了高度相關的權重向量,如圖1所示。第二個原因是CNN訓練時很少有正交化約束。其實學習到的權重向量或許就是自然相關的。
使用歐幾裏得距離處理檢索問題時FC層的權重向量相關度會影響性能。實際上使用歐幾裏得距離作為檢索的判斷時,特征向量中每個個體應該盡可能獨立。然而,當權重向量相關時,FC層描述——前面CNN層輸出在這些權重向量上的投影——會擁有相關性。這最終會導致一些記錄在歐幾裏得距離中起主要作用,造成不良的排序結果。舉例來說,測試時兩個不同人物的圖片通過網絡傳輸產生如上圖1所示的綠色和黑色虛線,然後投影到紅色,粉紅色,藍色這幾個權重向量來組成描述。投影值在紅色與粉色向量上很接近,這使得兩個描述表現出相似性,而忽略了它們在藍色向量上投影的差異。總結來說,要想在歐幾裏得距離下工作,解決FC描述中的冗余是一個重要的問題。
為了解決這個問題,我們提出了SVD-Net,它的特點是FC層包含不相關的權重向量。我們還提出了一種三步訓練框架。在第一步,權重矩陣經過SVD分解,由左酉矩陣和奇異值矩陣的乘積替換。第二步,我們保持正交的權重矩陣固定,只訓練余下的層。第三步,權重矩陣不再固定,網絡整體優化。這三步叠代進行,來約束權重矩陣的正交性。在大型的re-ID數據集上的結果表現出了在baseline網絡上的顯著提升,我們的結果也是先進水平。
2. Related Work
Deep learning for person re-ID:在行人再識別任務上的深度學習方法可以分為兩類:相似度學習和表達學習。也被稱為深度度量學習,論文[25,24,1,13,5,19]都使用了圖片對或者是triplet的網絡輸入。在兩個早期的工作中,Yi等人在[29]和Li等人在[13]中使用了圖片對,並且在學習過程中加入了部分的先驗知識。之後Varior等人在論文[25]中加入了LSTMs模塊。LSTMs連續處理圖片部分,所以能夠記住空間連接來提升對於深度特征的區分力。[24]中Varior等人在每個卷積層之後插入了一個門限函數來捕獲圖片對之間有效的精細模式。上面提到的這些方法在一定程度上都能夠有效地學習圖片相似性,但是或許在大規模的gallery上會有有效性問題。
第二種基於CNN的行人再識別方法關註於特征學習,它將訓練樣本劃分成預定義的類別,並使用FC描述來做檢索。在[33,34]中,使用一個CNN分類模型對視頻幀或圖片標註框進行學習。Xiao等人在論文[26]中從多個re-ID數據集聯合學習到通用的特征表達。Zheng等人在[31]中提出了類似於pictorial的PoseBox結構學習姿態不變的特征來解決空間的不對齊。為了結合特征學習與相似度學習的優點,Zheng等人在[35]和Geng等人在[10]中結合了contrastive loss和identification loss來提高對於學習特征的區分能力。我們這篇論文采用了分類模型,在不失有效性潛能的同時表現出了有競爭力的準確率。
PCANet and truncated SVD for CNN:我們澄清了SVDNet與幾個“外觀相似”的工作之間的區別。PCANet被提出用於圖片分類。它的特點是級聯的PCA過濾器。PCANet與SVDNet相同的地方是它們都學習正交的投影方向。SVDNet與PCANet在兩個主要方面有所不同。首先,SVDNet是在CNN的權重矩陣上施加SVD,PCANet是在原始輸入和特征上施加PCA。第二個不同是,PCANet中的濾波器是用無監督方式學習的。它不像SVDNet那種依賴於後向傳播。實際上,SVDNet建立了CNN與SVD之間的聯系。SVDNet的參數是通過後向傳播與使用SVD分解進行學習。
Truncated SVD被廣泛應用於CNN模型壓縮。SVDNet與它們有兩點不同。首先,Truncated SVD用來分解FC層的權重然後用幾個重要的向量進行重建,SVDNet不去重建權重矩陣,但是將其替換為左酉矩陣和奇異值矩陣。第二,Truncated SVD在可以接受的預測損失下減少了模型大小和測試時間,但是SVDNet顯著的提高了檢索準確率,沒有對模型大小產生影響。
Orthogonality in the weight matrix:我們註意論文[27]的目的是使CNN濾波器正交化,但是我們的網絡不同。在論文[27]中,正交化的正則化效果有益於深層網絡的後向傳播,從而提高分類準確率。論文[27]中提出的正則化也許並不會直接有益於特征學習過程。但這篇論文中,正交化可以用於產生適用於檢索的不相關描述。我們的網絡或許不適合提高分類效果。
3. Proposed Method
這一部分描述了SVDNet的結構,訓練方法以及工作機制。
3.1. Architecture
SVDNet往往接在主要網絡後,例如CaffeNet和ResNet-50。主要的差別是SVDNet使用Eigenlayer作為倒數第二個FC層,如下圖2所示。Eigenlayer包含一個正交的權重矩陣,是一個不包含偏差的線性層。不使用偏差是因為偏差會幹擾到學習到的正交性。實際上,我們的初步實驗表明了加上ReLU激活層和偏差會對re-ID表現造成損失,所以我們選擇使用線性層來實現Eigenlayer。選擇將Eigenlayer放在倒數第二個FC層而不是倒數第一個FC層是因為對最後一個FC層施加正則化模型不會收斂,這或許是因為最後一個FC層的權重相關性是由訓練樣本的分布決定的。訓練過程中,來自前面層的特征傳遞到Eigenlayer層作為輸入。它們與Eigenlayer層權重的內積組成輸出特征,與最後一個c維度的層形成全連接,這裏的c是訓練類別的個數。
測試時,我們提取query與gallery圖片學習到的嵌入。這一步,我們能夠使用Eigenlayer的輸入或者輸出作為特征表達,如上圖2所示。我們的實驗表明了這兩個特征擁有類似的表現,說明Eigenlayer不僅提高了輸出的表現還提高了輸入的表現。原因有點不明確,我們認為這來源於CNN的後向傳播訓練,在此期間,帶有Eigenlayer的權重矩陣的正交性會直接影響到輸入特征的特性。
3.2.Training SVDNet
訓練SVDNet的過程如下圖所示。我們首先簡要介紹第0步,然後再描述嚴格和放松的叠代策略(RPI),(第1,2,3步)。
Step 0.我們首先向網絡中添加了一個線性層。然後微調網絡直到收斂。註意到第0步之後的權重向量還是高度相關的。實驗中,我們展示了CNN模型在第0步之後的re-ID表現,將對線性層的各種輸出維度進行評估。
Restraint and Relaxation Iteration(RPI):這是訓練SVDNet的關鍵步驟,包含三步。
·Decorrelation:我們按來施加SVD。這裏W是線性層的權重向量,U是左酉矩陣,S是奇異值矩陣,V是右酉矩陣。經過分解,我們將W替換成US。然後線性層使用的所有特征向量作為權重向量並命名為Eigenlayer。
·Restraint:主幹網絡一直訓練直到收斂,但是Eigenlayer層被固定。
·Relaxation:Eigenlayer層不固定,微調繼續進行。
經過步驟1和2,權重向量是正交的,但是步驟3是放松訓練。W不再是固定狀態。所以訓練進入另一個關於”restraint and relaxation”的叠代t(t=1,...,T)。
雖然簡單,但是這種方法背後的機制很有趣。我們嘗試在章節3.3深入研究這種機制。所有涉及到的分析中都是使用在ImageNet上進行預訓練的CaffeNet作為主幹網絡。
3.3 Mechanism Study
Why is SVD employed?我們的想法是在CNN已經學習到的內容上找出一系列正交的投影方向。對於線性層,W空間的一組基是一個可能的解(例如由W列向量組成的線性子空間)。事實上存在了很多的正交基。所以我們決定使用W的奇異向量作為一個新的投影方向並且使用對應的奇異值來加權投影結果。所以我們將替換成US。經過這一步特征表達在整個樣本空間的區分能力會保持不變。數學證明如下:
給出兩幅圖片,我們定義為Eigenlayer層前面對應的特征,分別是Eigenlayer輸出的特征。之間的歐幾裏得距離計算如下:
上式的U,S,V如前面所定義的。因為V是一個單位正交陣,所以等式2又等於:
等式3表明了將替換成US,還是不變的。因此,算法流程中的第1步使得微調之後的CNN模型的區分能力是百分百保留的。
下面有一些其他的分解方法作為SVD的補充。但是這些方法都沒有保留住CNN模型的區分能力。為了證明這一點,我們將SVD與以下幾種做對比。
1. 使用原始的W(定義為Orig)
2. 將W替換為US(定義為US)
3. 將W替換成U(定義為U)
4. 將W替換成(定義為)
5. 將W=QR(Q-R分解)替換成QD,這裏的D是從上三角陣中提取的對角陣(定義為QD)
在Market-1501上的對比見下表1.我們將FC層替換成1024維的線性層並微調網絡直到收斂(算法1中的第0步)。之後我們使用方法2-5來替代微調後的W。這四種方法都是將W更新為一個正交矩陣,但是表1指出,只有將W替換成US才能保持re-ID的準確率,其他的方法都會使準確率下降。
When does performance improvement happen?如上證明所示,Alg.1中的第一步將替換成US並沒有立刻帶來準確率提升,但是保證了不變。不僅如此,經過這一步操作,模型偏離了原始的微調結果,訓練樣本上的loss會在一定範圍內增大。但是ALg.1中第二步和第三步會解決這個問題。這兩步的主要的效果是提高Eigenlayer輸入特征和輸出特征的區分能力。一方面,約束步驟學習Eigenlayer層的上遊和下遊層,它依然保持了正交特性。我們在圖5中展示了這一步提高了準確率。另一方面,relaxation步將會使模型再次偏移正交狀態,但是會更接近收斂。這一步,如圖5所示,表現變差。但是使用RPI,整體的效果會提升。有趣的是教育孩子時,也鼓勵一種交替的relaxation和restraint策略。
Correlation diagnosing:目前為止,我們還沒有提出一種度量來評估向量相關。實際上,向量間相關度可以使用相關系數來估計。但是據我們所知,它無法評估向量集整體之間的相關度。在這篇論文中,我們提出下面的策略來估計總體相關度。給出一個權重向量:
k是W中權重向量的個數(CaffeNet FC7層的k=4096),是W中的權重向量。給出W,我們定義於運算來度量W所有列向量的相關度:
從等式5,我們可以看到S(W)的值落在。當W為正交陣時S(W)的值為1,當所有的權重向量都相同時S(W)獲得最小值。所以當S(W)接近或者很小時,權重向量有高的相關度。比如,在我們的baseline中直接使用微調後的CaffeNet,=0.0072。表明FC7層的權重向量高度相關。我們會在章節4.5中展示,S可以有效地指示SVDNet訓練地收斂。
Convergence Criteria for RPI:實際應用中什麽時候停止RPI是一個很重要的問題。我們使用等式5來評估經過relaxation步W的正交性,發現隨著叠代的進行,S(W)的值增加。這表示W中權重向量的相關度經過RPI一步步減小。所以當S(W)變得穩定時,模型就收斂了,RPI也就結束。詳細的如下圖5所示。
4. Experiment
4.1.Datasets and Settings
Datasets:這篇論文使用Market-1501,CUHK03,DukeMTMC-reID這3個數據集來評估。Market-1501數據集包含1501個個體,由6個相機捕捉的19732張gallery圖片和12936張訓練圖像組成。所有的標註框由DPM檢測器生成。大多數相關實驗都是在Market-1501數據集上進行的。CUHK03數據集包含1467個個體的13164張圖片。每一個個體都是使用2個相機觀察到的。CUHK03同時提出了手動標註的和DPM檢測的標註框,在這篇論文中我們使用後者。對CUHK03進行了20次隨機的訓練測試集劃分,最後給出平均結果。DukeMTMC-reID數據集由8個相機捕捉,用於跨相機追蹤。我們采用了論文[37]的結果作為re-ID基準。它包含1404個個體(一半用來訓練,一半用來測試),16522張訓練圖片,228張query圖片和17661張gallery圖片。對於Market-1501與DukeMTMC-reID我們分別使用論文[32]和[37]中提供的評估包。
在三個數據集上我們都使用了CMC與mAP進行表現評估。
Backbones:我們主要使用了兩種在ImageNet上預訓練的模型作為主幹網絡,分別是CaffeNet和ResNet-50。在使用CaffeNet時,我們直接將原始的FC7層替換成Eigenlayer,這是為了以免認為效果提升來自於更深的結構。當使用ResNet-50作為主幹網絡時,我們在最後一個FC層前插入Eigenlayer,因為ResNet沒有隱藏的FC層,而且在50層結構中增加一層的影響可以忽略。在Market-1501上的一些實驗,我們還使用了VGGNet和Tiny CaffeNet作為主幹網絡來展示SVDNet在不同結構上的效果。Tiny CaffeNet就是將CaffeNet的FC6層與FC7層的維度分別減小到1024和512。
4.2.Implementation Details
Baseline:下面是論文[33]的操作,baseline使用的是經過微調後的CaffeNet與ResNet-50。使用的都是默認配置,除了最後的FC層輸出的維度改為了訓練個體數。CaffeNet baseline使用0.001的學習率訓練了60個epoch,然後又使用0.0001的學習率訓練了20個epoch。ResNet baseline訓練了60個epoch。開始的學習率是0.001,在25和50個epoch時減小了10倍。在測試時,CaffeNet的FC6或FC7層與ResNet-50的Pool5層或FC層用作特征表達。
在Market-1501上,CaffeNet和ResNet-50使用FC6(Pool5)達到的rank-1準確率為55.3(73.8%),這與論文[33]中的結果一致。
Detailed setting:使用CaffeNet作為主幹的SVDNet通過25個RPI達到最終的收斂。除最後一輪restraint與relaxation外,每一輪RPI我們都使用0.001的學習率叠代了2000次。對於最後的restraint訓練我們使用了5000次叠代(學習率為0.001)+3000次叠代(學習率為0.0001)。Batch size設置為64。使用ResNet作為主幹網絡的SVDNet通過7個RPI達到最終收斂,我們使用了8000次叠代,並在5000輪後將學習率減小10倍。1到3輪RPI的初始學習率為0.001,後面的RPI的的初始學習率為0.0001。Batch size大小設置為32。
所有模型中Eigenlayer的輸出維度設置為1024。將在章節4.4中分析超參數的影響。章節4.5會說明為什麽使用不同的主幹網絡時會設置不同的RPI次數。
4.3.Performance Evaluation
The effectiveness of SVDNet:我們在三個re-ID基準上做了測試。整體結果如下表2。
每種主幹網絡的提升都是顯著的:當使用CaffeNet作為主幹網絡時,在Market-1501上rank-1準確率從55.3%提升到80.5%,mAP從30.4%上升到55.9%。在CUHK03(DukeMTMC-reID)數據集上,rank-1準確率提升了26.3%(20.7%),mAP上升了24.7%(17.5%)。當使用ResNet作為主幹網絡時,rank-1準確率在Market-1501,CUHK03,DukeMTMC-reID上分別上升了8.4%,15.6%,11.2%。對應的mAP上升了14.2%,13.7%和12.7%。一些Market-1501上的檢索例子如下圖3。
Comparison with state of the art:我們將SVDNet與最先進的方法對比。表3列出了在Market-1501與CUHK03上的比較結果。與目前已經發表的論文相比,SVDNet取得了有競爭力的表現。我們在Market-1501上達到的rank-1=82.3%,mAP=62.1%,在CUHK03上的rank-1=81.8%,mAP=84.8%。論文[38]中的re-ranking方法在Market-1501上的mAP比我們高,因為re-ranking利用了gallery圖像之間的關系。我們推測,在re-ranking方法上使用SVDNet也會帶來效果提升。與一些未發表的Arxiv論文相比,我們的一些數字比論文[10]和論文[35]稍低。論文[10]和論文[35]都使用了verification與classification loss的結合,我們會進一步將這一策略運用到SVDNet中。
不僅如此,SVDNet在相對簡單CNN網絡上的表現是驚人的。在Market-1501上,使用CaffeNet作為主幹網絡的SVDNet達到了80.5%的rank-1與55.9%的mAP,這遠遠超出了其他基於CaffeNet的方法。另外,使用VGGNet與Tiny CaffeNet作為主幹網絡分別達到了79.7%與77.4%的rank-1準確率。在CUHK03上,使用CaffeNet作為主幹網絡的SVDNet甚至超過了一些基於ResNet的方法(除了DLCE(R))。這個現象說明我們的方法可以通過高效計算獲得一個可接受的結果。
在表4中,使用論文[38]提出的新的訓練/測試策略(稱為CUHK03-NP)對DukeMTMC-reID和CUHK03進行了比較總結。因為DukeMTMC和CUHK03-NP最近才成為基準所以只有相對較少的結果。在DukeMTMC-reID上,這篇文章的rank-1=76.7%,mAP=56.8%,這高於一些有競爭力的方法,甚至是最近的GAN。在CUHK03-NP上,這篇文章的rank-1=41.5%,mAP=37.3%,也高於大部分方法。
4.4. Imapact of Output Dimension
我們改變Eigenlayer輸出層的維度。圖4畫出了在CaffeNet和ResNet-50上的結果。
當不使用RPI訓練時,這個網絡與baseline模型沒有本質區別。可以看到倒數第二層的輸出維度顯著影響了表現。當輸出維度增加,re-ID結果先增加,然後到達一個平臺期再快速下降。在這種方案中,我們發現使用低維更加有益,可能是因為減少了FC層濾波器的冗余。
輸出維度對SVDNet最終效果的影響還展示了另一種趨勢。當輸出維度增加,效果會逐漸提升到一個穩定的水平,這表明我們的模型可以對有害的冗余免疫。
4.5.RPI Boosting Procedure
這個實驗揭示了每個restraint步與relaxation步如何改變re-ID表現以及SVDNet如何一步步達到一個穩定的結果。在我們的實驗中,每個RPI中都使用了25個restraint phase與relaxation phase。Eigenlayer的輸出維度設置為2048。我們測試了所有CNN模型的re-ID表現與S(W)的值。我們也增加了baseline模型的訓練epoch,使其與SVDNet的訓練相同,比較沒有RPI訓練的模型的S(W)的值。結果如下圖5所示,可以由此得出四個結論。
第一,每次RPI,rank-1正確率有一個“上升和下降”的過程來響應restraint和relaxation步驟:restraint訓練時W保持正交性,表現提升,表明學習到的特征的區分能力增加。第二,隨著RPI的進行,整體的準確率提升,當模型收斂時達到一個穩定值。第三,使用S(W)來判斷正交性作為RPI的收斂條件是很有效的。RPI訓練時,S(W)逐漸增加直到達到穩定,沒有RPI時,S(W)會在一個相對低的值範圍波動,表明了權重向量之間的高度相關。第四,使用ResNet作為主幹網絡的SVDNet相對CaffeNet的僅需要很少的RPI次數達到收斂。
4.6. Comparison of Decorrelation Methods
在章節3.3中,介紹了一些分解方法。我們證明了只有將W替換成US才能保持Eigenlayer輸出特征的區分能力,其他三種方法都只會在一定程度上導致表現下降。這裏我們給出使用RPI訓練時的最終表現。
Market-1501數據集上的結果如表5所示。可以看到將W替換成US這種分解方法達到了最高的表現,接著就是”U”,”QD”和“”。事實上與原始“Orig”相比,“”並沒有帶來可見的提升。這個實驗說明了不僅僅是正交本身,分解方法對於SVDNet也很重要。
5. Conclusions
在這篇論文中,提出了SVDNet作為行人檢索或ReID的表達學習。在全連接層的權重矩陣的投影方向上施加去相關。通過restraint和relaxation的叠代,向量相關度逐漸下降。在這種策略下,re-ID表現經過反復的增加和降低,最終達到一個穩定水平。由於權重向量之間的關聯減小,學習到的特征更適合應用到使用歐幾裏得距離的檢索任務中。在Market-1501,CuHK03和DukeMTMC-reID數據集上都得到了顯著的提升,re-ID準確率也接近最先進的表現。
未來我們會進一步研究SVDNet以更多地了解其工作原理。我們也會將SVDNet運用到一般的實例檢索問題中。
《SVDNet for Pedestrian Retrieval》理解