https://github.com/facebookresearch/multigrain
MultiGrain: a unified image embedding for classes and instances
Abstract
MultiGrain是一種網絡架構,產生的緊湊向量表征,既適合於圖像分類,又適合於特定對象的檢索。它建立在一個標准分類主干上。網絡的頂部產生包含粗粒度和細粒度信息的嵌入,這樣就可以根據對象類別、特定對象或是否失真的副本對圖像進行識別。我們的聯合訓練很簡單:在數據增加的情況下,我們盡量減少用於分類的交叉熵損失和決定兩幅圖像是否相同的排序損失,而不需要額外的標簽。MultiGrain的一個關鍵組成部分是池化層,它在用較低分辨率圖像訓練的網絡中使用高分辨率圖像。
當輸入一個線性分類器時,學習的嵌入提供最先進的分類精度。例如,通過在Imagenet上學習的ResNet-50,我們獲得了79.4%的top-1精度,比AutoAugment方法有+1.8%的絕對改進。當與余弦相似度比較時,相同的嵌入性能與最先進的圖像檢索在中等分辨率中是同等的。
1. Introduction
圖像識別是計算機視覺的核心,每年都有幾十種新方法被提出,每種方法都針對問題的特定方面進行優化。從粗到細,我們可以區分(a)類(classes),即尋找一個特定類型的對象,不管內部類變化,(b)實例(instance),即在變化的觀察條件下尋找一個特定的對象,和(c)副本(copies),即尋找一份特定圖像的副本(盡管被編輯)這三種情況的識別。雖然這些問題在許多方面是相似的,但是標准的做法是對每種情況使用專門化的,因此是不兼容的圖像表征。
專門化表征可能是准確的,但在某些應用程序中構成了一個重要的瓶頸。以圖像檢索為例,其目標是將查詢圖像匹配到包含其他圖像的大型數據庫。通過按類、實例或副本匹配查詢,人們常常希望使用多個粒度搜索相同的數據庫。圖像檢索系統的性能主要取決於所使用的圖像嵌入。這就需要在數據庫大小、匹配和索引速度以及檢索准確性之間進行權衡。采用多個嵌入(針對每種類型的查詢進行了狹義優化)意味着資源使用成倍增加。
在本文中,我們提出了一種新的表示,MultiGrain,它可以同時實現這三個任務,而不考慮它們的語義粒度差異,如圖1所示。我們通過聯合訓練一個多任務的圖像嵌入來學習MultiGrain。結果表征是緊湊的,並優於narrowly-trained嵌入。
實例檢索具有廣泛的工業應用,包括檢測受版權保護的圖像和看不見的物體基於樣本的識別。在需要處理數十億幅圖像的情況下,獲得適合多個識別任務的圖像嵌入是很有意義的。例如,除了檢測相同對象的副本或實例之外,圖像存儲平台可能會對輸入圖像執行一些分類。與所有這些任務相關的嵌入有利地減少了每個圖像的計算時間和存儲空間。
從這個角度來看,僅訓練用於分類的卷積神經網絡(CNNs)已經朝着通用特征提取器的方向走了很長一段路。我們可以學習同時有利於分類和實例檢索的圖像嵌入,這一事實令人驚訝,但並不矛盾。實際上,任務之間存在邏輯依賴關系:根據定義,包含相同實例的圖像也包含相同的類;復制的圖像包含相同的實例。這與多任務環境不同,在多任務環境中,任務是競爭的,因此很難結合在一起。相反,類、實例和副本的一致性會導致嵌入在特性空間中接近。然而,在不同的情況下,相似程度是不同的,分類需要更多外觀變化的不變性和小圖像細節的復制檢測靈敏度。
為了學習一種滿足不同權衡的圖像表征,我們從現有的圖像分類網絡開始。我們使用一個generalized mean層,它將空間激活映射轉換為固定大小的向量。最重要的是,我們證明了這是一種學習架構的有效方式,可以適應不同的分辨率在測試時,並提供更高的精度。這就避免了為學習更大的輸入分辨率[18]所需的大量工程和計算工作
分類目標和實例識別目標的聯合訓練分別基於交叉熵和contrastive損失。值得注意的是,實例識別是免費學習的,沒有使用特定於實例識別或圖像檢索的標簽:我們只是使用圖像的標識作為標簽,並使用數據增強作為生成每個圖像的不同版本的方法。
綜上所述,我們的主要貢獻如下:
- 我們介紹了MultiGrain結構,輸出包含不同粒度級別的圖像嵌入。我們的雙 分類+實例 目標提高了分類本身精度。
- 我們表明,這種增益部分是由於批處理策略,其中每個批處理包含其有着不同的數據增強的圖像的重復實例,以達到檢索損失的目的;
- 我們結合了一個池化層,靈感來自圖像檢索。當提供高分辨率圖像時,它可以顯著提高分類精度。
總的來說,我們的架構在分類和圖像檢索方面都提供了具有競爭力的性能。值得注意的是,我們報告了我們使用ResNet-50網絡在Imagenet上得到的准確性對比最先進結果來說顯著提高了。
論文組織如下。第二部分介紹相關工作。第三部分介紹了我們的架構、訓練過程,並解釋了我們如何在測試時調整解決方案。第四部分報告主要實驗。
2. Related work
Image classification. 大多數為廣泛的任務而設計的計算機視覺架構利用了最初為分類而設計的主干架構,例如Residual網絡[17]。對主干架構的改進最終在其他任務[16]中轉化為更好的精確性,如LSVRC ' 15挑戰的檢測任務所示。雖然最近的結構[21,22,46]顯示出一些額外的收獲,其他的研究路線已經被成功地調查。例如,[30]最近的一個趨勢是通過利用更大的弱注釋數據的訓練集來訓練高容量網絡。據我們所知,Imagenet ILSVRC 2012基准測試是在Imagenet訓練數據上從零開始學習的模型,目前這個基准測試由巨大的AmoebaNet-B架構[23](557M參數)持有,它以480x480幅圖像作為輸入。
在我們的論文中,我們選擇ResNet-50 [17] (有25.6M參數),因為在圖像分類和實例檢索方面的很多工作的文獻中都采用了這種架構。
Image search: from local features to CNN.“圖片搜索”是一個通用的檢索任務,通常是與更具體的問題相關聯,且為其進行評估,如地標識別[25、33],特定對象識別[31]或副本檢測[8],其目標是在一個大的圖像集合中找到與查詢最相似的圖像。在本文中,“圖像檢索”將指實例級檢索,其中對象實例盡可能廣泛,即不像Oxford/Paris基准那樣僅限於建築物。有效的圖像檢索系統依賴於准確的圖像描述符。通常,一個查詢圖像是由一個嵌入向量來描述的,這個任務相當於在嵌入空間中搜索這個向量的最近鄰。可能的改進包括精煉步驟,如幾何驗證(geometric verification)[33]、查詢擴展(query expansion)[4,42]或數據庫端預處理或擴充(database-side pre-processing or augmentation)[41,44]。
傳統上,局部圖像描述符被聚合為全局圖像描述符,以便在inverted數據庫中進行匹配,如在seminal bag-of-words model [39]中一樣。在ImageNet上出現用於大規模分類的卷積神經網絡[28,37]之后,很明顯可見在分類數據集上訓練的卷積神經網絡對於各種視覺任務,包括實例檢索,都是非常具有競爭力的圖像特征提取器[1,9,35]。
特定對象檢索的特定架構建立在一個規則的分類主干上,並進行了修改,以便池化階段提供更多的空間位置,以應對小對象和雜亂的情況。例如,在各種數據集上檢索實例的競爭基准是R-MAC圖像描述符[43]。它將從CNN中提取的區域池化特征進行聚合。結果表明,該專用池化方法與PCA whitening[24]相結合,可以有效地實現圖像區域間的多對多比較,有利於圖像檢索。Gordo等人[10,11]表明,使用排名損失在外部圖像檢索數據集中端對端微調這些區域聚合表征可以顯著改善實例檢索。
Radenović等人[34]表明用generalized mean池化方法替代R-MAC池化方法(見3.1節),這是一個整個圖像p次冪特征的空間池化方法。取冪運算將特征定位在圖像中感興趣的點上,取代R-MAC中的區域聚合。
Multi-task training是一個活躍的研究領域[27,47],其動機是觀察到深度神經網絡可轉移到廣泛的視覺任務[35]。此外,經過訓練的深度神經網絡具有高水平的可壓縮性[15]。在某些情況下,通過共享參數在不同任務之間共享神經網絡的能力,通過允許數據集和低級特征之間的互補訓練來幫助學習。盡管針對視覺的多任務網絡如UberNet[27]已經取得了一些成功,但多任務網絡的設計和訓練仍然涉及許多啟發式方法。正在進行的工作包括尋找一個高效參數共享[36]的合適的架構,和為該網絡找到合適的優化參數,以脫離傳統的單一任務單一數據庫端到端梯度下降的設置,有效地加權梯度以在所有任務[13]中獲得一個良好的網絡。
Data augmentation是大規模視覺應用[28]訓練的基礎,可以提高泛化和減少過擬合。在隨機梯度下降(SGD)優化設置中,可見在一個優化batch中,包含同個圖像的多個數據增強實例,而不是只有不同的圖像,其顯著提高了數據增強效果,提高了網絡的泛化性。Hoffer等人[19]同時引入了相應的batch augmented(BA)采樣策略。當在神經網絡的大規模分布式優化中增大batch的大小時,他們表明,在批處理中使用圖像的數據增強副本填充這些較大的批處理可以獲得更好的泛化性能,並通過減少數據處理時間而更有效地使用計算資源。正如3.3節中討論並在我們的分類結果(4.4節)中突出顯示的那樣,我們表明,在這種采樣方案下,使用相同的batch size可以獲得性能上的提高,也就是說,每批不同圖像的數量更少。我們認為在批處理中使用這種repeated augmentations(RA)的方案可以在優化過程中提高數據增強的效果。我們的結果表明,RA是一種普遍感興趣的技術,超越大規模分布式訓練應用,以改善神經網絡的泛化。
3. Architecture design
我們的目標是開發一個既適用於圖像分類又適用於實例檢索的卷積神經網絡。在當前的最佳實踐中,用於類和實例識別的體系結構和訓練過程有很大的不同。
本節將描述這些技術差異(見表1),以及我們解決這些差異的解決方案。這將我們引向一個統一的體系結構,如圖2所示,我們以端到端的方式共同訓練這兩個任務。
3.1. Spatial pooling operators
本節討論最后的全局空間池層。局部池化運算符,通常使用max pooling,在大多數卷積網絡的層中都可以找到,以實現對小轉換的局部不變性。相比之下,全局空間池化將卷積主干產生的三維激活張量轉換為矢量。
Classification. 在早期的模型中,如LeNet-5[29]或AlexNet[28],最終的空間池化只是激活映射的線性化。因此,它對絕對位置很敏感。最近的架構,如ResNet和DenseNet使用平均池化,其具有置換不變性,因此提供了一個更全局的轉換不變性。
Image retrieval 需要更多的局部幾何信息:特定的對象或地標在視覺上更加相似,但是任務受更多雜亂背景因素影響,並且給定的查詢圖像沒有專門針對它的特定訓練數據。這就是為什么池化操作符試圖支持更多的局部性。接下來我們討論generalized mean池化操作符。
讓作為給定圖像經過卷積神經網絡計算得到的特征張量,其中C是特征channels的數量,H和W分別是映射的高和寬。使用
表示映射中的一個“像素”,c表示通道,xcu表示相關的張量元素:
。generalized mean pooling(GeM)層計算張量中每個channel的generalized mean。正式來說,GeM embedding如下給定:
其中p> 0是一個參數。將該指數設為p > 1,增加了池化特征映射的對比度,聚焦於圖像的顯著特征[2,3,7]。GeM是對分類網絡中常用的平均池化(p = 1)和空間最大池化層(p =∞)的推廣。在最初的R-MAC中,它被用作最大池[7]的近似,但直到最近[34]才顯示出它在圖像檢索方面與R-MAC具有競爭力。
據我們所知,本文是第一個在圖像分類設置中應用和評價GeM池化方法的。更重要的是,在本文的后面,我們展示了對於所有任務來說,調整指數是改變輸入圖像在訓練時間和測試時間之間的分辨率的一種有效的方法,這也解釋了為什么由於該任務使用的是高分辨率的圖像,因此它對圖像檢索有好處。
3.2. Training objective
為了將分類和檢索任務結合起來,我們使用了一個由分類損失和實例檢索損失組成的聯合目標函數。兩分支架構在圖2中說明,下面將詳細說明。
Classification loss. 對於分類,我們采用標准的交叉熵損失。正式來說,讓表示深度網絡為圖像i計算出來的embedding,
是類
的線性分類器的參數,yi則是該圖的ground-truth類。然后:
其中。為了簡單起見,我們省略了它,但通過向特征向量添加一個常量通道,分類層的偏差被納入其權重矩陣中。
Retrieval loss. 對於圖像檢索,兩個匹配圖像(正樣本對)的嵌入距離應該小於非匹配圖像(負樣本對)的嵌入距離。這可以通過兩種方式實現。[14]的contrastive損失要求正樣本對之間的距離小於閾值,負樣本對之間的距離大於閾值。相反,triplet損失要求圖像更接近一個正樣本而不是一個負樣本[38],這是圖像triplets的相對屬性。這些損失需要調整多個參數,包括如何采樣成對和triplets數據。這些參數有時很難調整,特別是triplet損失。
Wu等人[45]提出了一種有效的方法來解決這些困難。給定一批圖像,它們將其embedding重新歸一化到單位球面,將采樣負樣本對作為一個embedding相似度函數,並將這些數據對用於邊際損失,這是contrastive損失的一種變體,分享了triplet損失的一些好處。
更詳細說來,即在一個batch中給定有着embedding 的圖像
,然后邊際損失為:
其中是歸一化embeddings之間的歐式距離,如果兩張圖匹配,則標簽yij為1;如果不匹配則為-1,邊際α>0(一個常量超參數),β>0是一個控制包含embedding向量的embedding空間體積的參數(在訓練時會和模型參數一起被訓練)。由於歸一化,
等價於consine similarity,一直到whitening(3.4節),也在檢索中使用。
損失(3)在使用采樣[45]方法擇的正樣本和負樣本對子集中計算:
有着margin損失的加權采樣距離的使用非常適合於我們的聯合訓練設置:這個框架容忍相對小的batch size( |B|∼80 to 120個實例),同時batch中每個實例只需要少量的正樣本圖片(3到5張),而不需要復雜的參數調優或離線取樣。
Joint loss and architecture. 聯合損失是分類損失和檢索損失的組合,由因子λ∈[0,1]加權。對於批圖像,聯合損失寫為:
損失按相應求和項的數目進行標准化。
3.3. Batching with repeated augmentation (RA)
在這里,我們提出僅使用訓練數據集進行圖像分類,並通過數據增強來訓練實例識別。其基本原理是,數據增強產生另一個包含相同對象實例的圖像。這種方法不需要標准分類集之外的更多注釋。
我們使用SGD和數據增強方法為訓練引入了一種新的采樣方案,我們稱之為重復增強(repeated augmentations)。在RA中,我們從數據集中采樣張不同圖像來構建一個圖像batch
,並通過一個數據增強集對其轉換m次,得到增強后的圖像作為batch中的圖像。因此,實例級ground truth yij = +1 表示圖像i和j是同一訓練圖像的兩個增強版本。與SGD中標准采樣方案的關鍵區別在於,樣本不是獨立的,同一圖像的增強版本高度相關。如果批處理大小比較小,這種策略會降低性能,但對於較大的批處理大小,在使用相同的批處理大小和學習率的情況下,RA的性能要優於標准的i.i.d.方案。這與[19]的觀察不同,[19]也考慮了批中的重復樣品,但同時增加了后者的大小。
我們推測,相關RA樣本的好處是有助於學習特征,這些特征對於重復圖像之間唯一的區別——即增強來說是具有不變性的。通過與使用標准SGD采樣比較,同一圖像的兩個版本只在不同的epochs被看到。在補充材料A中,對一個理想問題的研究說明了這一現象。
3.4. PCA whitening
為了將通過數據增強學習到的特征轉移到標准檢索數據集中,我們根據之前在圖像檢索方面的工作[11,24],采用了PCA whitening步驟。變換特征之間的歐氏距離相當於輸入描述符之間的Mahalanobis距離。這是在訓練網絡之后,使用外部未標記圖像數據集完成的。
PCA whitening的效果可以在分類層的參數中恢復(即PCA whitening不會影響分類結果),從而使白化后的嵌入既可以用於分類,又可以用於實例檢索。細節上來說,e表示一個圖像嵌入向量和wc是類c的權向量,⟨wc, e⟩是等式(2)的分類器的輸出。白化操作可以寫成[11]
,給定白化矩陣S和中心向量μ,因此:
其中是類c的修改權重和偏差。我們觀察到損失[5]的inducing decorrelation不足以保證特征的泛化,與之前的研究[11,34]一致
3.5. Input sizes
圖像分類的標准做法是將輸入圖像的重置大小和中央裁切到一個相對低的分辨率,例如224×224像素[28]。這樣做的好處是更小的內存占用、更快的推斷以及在將輸入裁剪為公共大小時可以對輸入進行批處理。另一方面,圖像檢索通常依賴於圖像中更細的細節,因為實例可以在各種比例下查看,並且只覆蓋少量像素。因此,目前用於圖像檢索的性能最好的特征提取器通常使用輸入最大邊大小為800[11]或1024[34]像素的圖像,而不將圖像裁剪成正方形。這對於聯合分類和檢索網絡的端到端訓練是不切實際的。
相反,我們在標准的224 * 224分辨率下訓練我們的架構,並且只在測試時使用較大的輸入分辨率。這是有可能的,因為我們架構的一個關鍵優勢:一個經過池化指數p和分辨率s的訓練網絡可以使用更大的池化指數p∗> p在更大的分辨率s∗>s下進行評估,參見4.4節的驗證。
Proxy task for cross-validation of p∗. 為了選擇適合於所有任務的指數p∗,我們在分類和檢索之間創建一個合成檢索任務In-aug。我們從ImageNet的訓練集中采樣2000張圖像(每個類2張),並使用前面描述的“full”數據增強,為每個圖像創建5個增強副本。
我們使用UKBench[31]一樣的方法評估In-aug的檢索精度,精確度從0到5不等,取決於衡量5個增強副本有多少排在前5位。我們選擇In-aug中最好的性能p∗∈{1,2,…10},它提供了以下λ和s∗的選擇:
在IN-aug獲得的最優p∗提供了檢索和分類之間的權衡。通過實驗,我們觀察到其他選擇也適用於設置這個參數:通過交叉熵損失反向傳播,僅使用給定分辨率的的訓練輸入來微調參數p∗也可以得到與p∗相似的結果和值。
4. Experiments and Results
在展示數據集之后,我們提供了一個參數化的研究和我們在圖像分類和檢索的結果。
4.1. Experimental settings
Base architecture and training settings. 卷積主干是ResNet-50[17]。SGD開始時學習速率為0.2,在30、60、90個epoch時分別降低了10倍,總共120個epoch(標准設置[32])。batch size |B|設置為512,一個epoch對應T = 5005次的固定迭代次數。在批采樣均勻的情況下,一個epoch對應於訓練集的兩次遍歷;當使用RA和m = 3時,一個epoch對應於訓練集中約2/3的圖像。為了進行公平的比較,所有的分類基線都使用這個更長的方案進行訓練。
Data augmentation. 我們使用標准翻轉,隨機resized crop[20],隨機照明噪聲和亮度、對比度和飽和度的顏色抖動[28,20]。我們將這組增強稱為“full”,詳見補充材料C。如表2所示,僅使用交叉熵和均勻批抽樣訓練時,在我們所選擇的方案和數據增強方法下,我們的網絡top-1驗證誤差達到76.2%。在沒有特別制作的正則化項[48]或數據增強[6]的情況下,這個數字是ResNet-50網絡報道的最高精度[12,17]。
Pooling exponent. 在對我們的網絡進行端到端的訓練時,我們考慮了3.1節中GeM層的池化指數的兩種設置:我們設置p = 1或p = 3。p = 1對應於分類架構中使用的平均池化。相關文獻[34]和我們在現成分類網絡上的初步實驗表明,p = 3值可以提高標准基准上的檢索性能。圖3演示了這種選擇。通過設置p = 3,檢測小車的可信度很高,沒有虛假檢測。Boureau等人[3]分析稀疏特征的平均池化和最大池化。他們發現,當池化特征的數量增加時,使其更加稀疏是有益的,這與我們在這里所觀察到的是一致的。
Input size and cropping. 如3.5節所述,我們對224×224像素的crop進行網絡訓練。為了測試,我們實驗了在分辨率s∗= 224,500,800下計算MultiGrain嵌入。對於分辨率s∗= 224,我們遵循經典的圖像分類協議“resolution 224”:圖像的最小邊被調整到256,然后提取一個224×224的中央剪裁。對於分辨率s∗> 224,我們代替遵循在圖像檢索中常見的協議,將圖像最大的一邊調整到所需的像素數,並在矩形圖像上評估網絡,而不裁剪。
Margin loss and batch sampling. 我們每個batch使用m=3的數據增強重復值。我們使用[45]的默認margin損失超參數(詳見補充材料B)。在[45]中,距離加權采樣是在用於訓練的4個gpu上獨立執行的。
Datasets. 我們在ImageNet-2012訓練集上訓練我們的網絡,該訓練集包含120萬張圖像,這些圖像被標記為1000個目標類別[37]。分類精度報告了該數據集的50,000張驗證圖像。對於圖像檢索,我們報告了Holidays數據集[25]的mAP,必要時手動旋轉圖像,就像之前對數據集[10]的評估一樣。我們還報告了UKB對象識別基准[31]的准確性,其中包含2550個對象實例在4個不同的視點的圖像;每幅圖像作為一個查詢,在嵌入空間中找到它的4個最近鄰;正確鄰居的數量在所有圖像上取平均值,得到最高分4。我們還報告了我們的網絡在副本檢測設置中的性能,表明了INRIA Copydays數據集[8]的“strong”子集上的mAP。我們從YFCC100M大規模的未標記圖像[40]中隨機采樣10K干擾圖像。我們稱這個組合為C10k。
與C10k干擾物不同,利用YFCC100M的20K幅圖像的特征進行PCA whitening。
4.2. Expanding resolution with pooling exponent
作為參考方案,我們以RA采樣和池化指數p = 3在分辨率為224x224的條件下訓練網絡。在對同樣224x224分辨率的圖像進行測試時,Imagenet的top-1驗證准確率為76.9%,比非RA基線高出0.7%,見表2。
在測試時,我們輸入更大的圖像,也就是說,我們考慮分辨率s∗> 224年和在測試時改變指數。圖4a和圖4b顯示了不同分辨率下,使用不同測試池化指數p∗值在ImageNet驗證下的分類精度和在Holidays下的檢索精度,測試池指數的不同值。正如預期的那樣,在s∗= 224處,在分類中產生最佳精度的池化指數是訓練網絡所用的指數,p∗= 3。觀察,在更大范圍的測試需要一個指數p∗> p,用於分類和檢索。
下面,我們采用在In-aug交叉驗證得到的值,見3.5節。
4.3. Analysis of the tradeoff parameter
現在我們分析權衡參數λ的影響。注意,這個參數並不能直接反映兩個損失項在訓練過程中的相對重要性,因為它們不是同質的:λ=0.5並不意味着他們同等重要。圖5在epoch 0和120上通過測量網絡反向傳播梯度的平均范數,分析了分類和邊際損失項的實際相對重要性。我們可以看到,在訓練開始的時候,λ=0.5表示我們的分類項的權重會略微更多一些。在訓練結束時,分類項占主導地位,這意味着網絡已經學會了取消數據增強效果。
從性能上看,λ=0.1導致分類精度較差。有趣的是,λ=0.5(在s∗= 224時為77.4%)的分類性能比λ=1的更高,見表2。因此,邊際損失導致了分類任務的性能增益。
在接下來的實驗中,我們設置了λ=0.5,因為它在實際分辨率s∗= 224和500像素時給出了最好的分類精度。作為參考,我們還報告了一些使用λ=1的結果。
4.4. Classification results
從現在開始,我們的MultiGrain網絡在分辨率s = 224訓練,使用標准平均池化時使用p = 1或在使用GeM池化時使用p = 3。對於每個評估分辨率s∗= 224,500,800,根據章節3.5選擇相同的指數p∗,產生一個用於分類和檢索的單一嵌入。表2給出了分類結果。從設置p = 1、s = 224且使用的“full”數據增加(76.2% top-1精度)的基線Resnet-50,到設置p = 3、λ= 0.5、s = 500 (78.6% top-1精度)的MultiGrain模型,分類性能有了很大提高。我們確定了四個改進來源:
1. 重復增強:加入RA批采樣(第3.3節)提高+0.6% (p = 1)。
2. 邊際損失:檢索損失有助於數據增強的泛化效果:+0.2% (p = 1)。
3.p = 3 pooling: 由於GeM(3.1節)在訓練中增加了特征的局部化,使得margin loss的效果更強:+0.4%。
4. 擴展分辨率:當分辨率為500時使p = 3的MultiGrain網絡的評估效果增加+1.2%,達到78.6的top-1精度。這是通過p = 3訓練實現的——它產生更稀疏的特性,在不同的分辨率上更通用,並且通過p∗池化適配——沒有它,在這個分辨率下的性能只有78.0%。
用於在更高分辨率下進行評估的p∗的選擇有它的限制:在800像素,由於特征提取器的訓練和測試規模之間的巨大差異,精度下降到77.2%(沒有p∗適應的結果為76.2%)。
AutoAugment [6] (AA)是一種在ImageNet上使用強化學習技術來提高分類網絡精度的數據增強學習方法。我們直接集成了算法[6]中在其Resnet-50模型上訓練的數據增強方法,該算法在數據集上使用270次epoch的長訓練方案,批處理大小為4096。
我們觀察到,這種較長的訓練對AA-generated增強產生了更大的影響。因此,我們使用一個更長的方案,每個epoch進行7508次迭代,保持批大小|B| = 512。
我們的方法受益於這種數據增強:在分辨率為224的情況下,當p = 3,λ= 0.5時,MultiGrain達到78.2%的top-1精度。據我們所知,這是Resnet-50在訓練和評估這種分辨率時報告的最佳top-1准確度,顯著高於單獨使用AutoAugment[6]報告的77.6%或混合[48]報告的76.7%。在測試時使用更高的分辨率進一步提高了精度:在分辨率500時,我們獲得了79.4%的top-1精度。我們調整池化指數以適應更大分辨率的策略仍然是有效的,並且在訓練分辨率224時顯著優於在ImageNet上學習的ResNet-50的最新性能。
4.5. Retrieval results
我們在表3中展示了我們的檢索結果,並在補充材料(D)中給出了消融研究和副本檢測結果。在可比分辨率下,我們的NultiGrain提高了所有數據集相對於Resnet-50基線的准確性。重復增強(RA)在此上下文中也是一個關鍵因素。
我們將基線與不使用注釋檢索數據集的基線進行比較。[10,11]用R-MAC池化給出現有的網絡精確度。在可比較的分辨率(s∗=800)下,MultiGrain比他們的結果進行比較。它們在Holidays的精度達到93%以上的mAP,但這需要分辨率s≥1000像素。
值得注意的是,我們在分辨率s∗= 500時達到了合理的檢索性能,相對於傳統的檢索推理分辨率s = 800-1000來說,這是一個有趣的操作點。實際上,Resnet-50在16個處理器內核上的前向傳遞在分辨率500時需要3.80秒,而在分辨率1024時需要18.9秒(慢5倍)。由於時間的二次增長,以及由MultiGrain計算的單一嵌入,我們的解決方案特別適合於大規模或低資源的視覺應用。
為了進行比較,我們還報告了一些在UKB和C10k數據集上較早的相關結果,這些結果與MultiGrain沒有競爭力。Neural codes[1]是最早研究深度特征檢索的工作之一。Fisher向量[26]是一種使用本地SIFT描述符的池化方法。
在分辨率為500時,我們可見邊際損失(λ= 0.5)的結果比不使用邊際損失(λ= 1)的結果稍低。這可能一部分是由於從In-aug任務到檢索數據集中觀察到的變化的轉移有限。
5. Conclusion
在這項工作中,我們介紹了一種統一的用於圖像分類和實例檢索的嵌入。MultiGrain依賴於一個經典的卷積神經網絡主干,在訓練時使用GeM池化,且頂部對應兩個分支。我們發現,通過調整這個池化層,我們能夠增加在推理時使用的圖像分辨率,同時在訓練時保持較小的分辨率。我們已經證明了MultiGrain嵌入在分類和檢索方面有很好的效果。有趣的是,與使用相同卷積主干獲得的所有結果相比,MultiGrain還在純分類方面得到了最好的效果。總的來說,我們的結果表明檢索和分類任務可以相互受益。