ECCV 2022 | 無需下游訓練,Tip-Adapter大幅提升CLIP影象分類準確率

語言: CN / TW / HK

  • 論文連結:https://arxiv.org/pdf/2207.09519.pdf

  • 程式碼連結:https://github.com/gaopengcuhk/Tip-Adapter

一.研究背景

對比性影象語言預訓練模型(CLIP)在近期展現出了強大的視覺領域遷移能力,可以在一個全新的下游資料集上進行 zero-shot 影象識別。為了進一步提升 CLIP 的遷移效能,現有方法使用了 few-shot 的設定,例如 CoOp 和 CLIP-Adapter,即提供了少量下游資料集的訓練資料,使得 CLIP 能夠更好的針對不同的視覺場景做出調整。但是,這種額外的訓練步驟會帶來不小的時間和空間資源開銷,一定程度上影響了 CLIP 固有的快速知識遷移能力。因此,我們提出了 Tip-Adapter,一種不需要額外下游訓練並且能很大程度提升 CLIP準確率的 few-shot影象分類方法 。基於此,我們又提出了一種僅需要少量微調就能達到 state-of-the-art 效能的方案:Tip-Adapter-F,實現了效率和效能的最佳折中。如下表 1 所示,Tip-Adapter 不需要任何訓練時間,即可以將 CLIP 在 ImageNet 資料集提升 + 1.7%準確率(Accuracy),而 Tip-Adapter-F 僅需要之前方案十分之一的訓練時間(Epochs,Time),就可以實現現有最佳的分類效能。

表 1:不同方案在 ImageNet 資料集上 16-shot 的影象分類準確率和訓練時間的比較

二.研究方法

1.Tip-Adapter

Tip-Adapter 的整體網路結構如下圖 1 所示,對於給定的 few-shot 訓練資料集和標籤,我們藉助 CLIP 通過一個非訓練的方案來構建一個快取模型(Cache Model),它儲存了來自下游訓練資料的分類知識;在測試時,Tip-Adapter 通過將 Cache Model 的預測和原始 CLIP 的預測進行線性加和,來得到更強的最終分類結果。

詳細的來說,我們使用 CLIP 預訓練好的視覺編碼器(Visual Encoder)來提取 few-shot 訓練集所有圖片的特徵,作為 Cache Model 的 Keys;並且將對應的圖片標籤轉化為 one-hot 編碼的形式,作為 Cache Model 的 Values。這種 Key-Value Cache Model 的構建方法由於使用的是已經預訓練好的 Visual Encoder,所以不需要任何訓練開銷;並且考慮到 few-shot 訓練集中,每一個類別只含有少量的圖片(1~16 shots),Cache Model 也幾乎不會佔用額外的視訊記憶體開銷,參考表一中的 GPU Mem. 指標。

對於一張測試圖片,我們首先會利用 CLIP 的 Visual Encoder 來得到它的特徵,再將該特徵視為 Query 去 Cache Model 中進行下游 few-shot 資料的知識檢索。由於 Keys 也是由 CLIP 的 Visual Encoder 提取得倒,因此和測試圖片特徵 Query 同源,我們可以直接計算它們之間的餘弦相似度得倒一個 Key-Query 的鄰接矩陣,此矩陣可以看作是每一個對應 Value 的權重。因此,我們可以計算 Values 的加權和來得到該測試影象通過檢索 Cache Model 得到的分類預測。除此之外,我們還可以通過將測試圖片特徵和 CLIP 的 Textual Encoder 文字特徵進行匹配,來得到 CLIP 的 zero-shot 預測。通過將兩者進行線性加權求和,我們得到了最終的分類預測,該預測既蘊含了 CLIP 預訓練的影象語言對比性知識,也結合了下游新資料集的 few-shot 知識,因此可以實現更強的影象分類準確率。

基於 Tip-Adapter 的網路結構,我們可以進一步將 Cache Model 中的 Keys 部分變為學習引數,即可以通過訓練來進行更新,該方案為 Tip-Adapter-F。藉助已經構建好的 Cache Model,Tip-Adapter-F 僅需要現有 CLIP-Adapter 十分之一的訓練回合數和時間,就可以實現更高的效能,如表一所示。

圖 1:Tip-Adapter 和 Tip-Adapter-F 的網路流程圖

2.Tip-Adapter 和現有方案的區別與聯絡

對比 CLIP-Adapter,如圖 2 所示,Tip-Adapter 儲存的 Keys 和 Values 其實可以分別對應於 CLIP-Adapter 中 adapter 結構的兩個線性層,只不過前者是不需要訓練來構建的,後者是隨機初始化,然後需要訓練來學習最佳的引數。

圖 2:Tip-Adapter 相比於 CLIP-Adapter

對比現有的其他構建 Cache Model 的方案,如圖 3 所示,Tip-Adapter 的 Cache Model 可以看作是一種多模態的視覺語言 Cache。因為 CLIP 的 Textual Encoder 輸出的特徵可以看作是文字的 Key-Value,即相當於測試圖片特徵作為 Query,分別在視覺和文字的 Cache 中檢索知識,相對於現有的僅含視覺 Cache 的方案,Tip-Adapter 能夠利用多模態知識得到更強的識別效能。

圖 3:Tip-Adapter 相比於其他構建 Cache Model 的方案

三.實驗結果

1.  在 ImageNet 的分類準確率

圖 4 和表 2 比較了 Tip-Adapter、Tip-Adapter-F 和現有各個方案在 1、2、4、8、16 shots 的 few-shot影象分類準確率;表 3 比較了 16-shot ImageNet 資料集上使用不同 CLIP 的 Visual Encoder 的準確率比較。可見,我們的兩種方案都在資源開銷很小的情況下,達到了非常卓越的效能。

圖 4 和表 2:ImageNet 資料集上不同方法的 1~16-shot影象分類準確率比較

表 5:16-shot ImageNet 上不同 CLIP 的 Visual Encoder 的影象分類準確率比較

2.  在另外 10 個影象分類資料集

如圖 5 所示,我們提供了另外 10 個影象分類資料集的準確率比較結果,分別是 StandfordCars,UCF101,Caltech101,Flowers102,SUN397,DTD,EuroSAT,FGVCAircraft,OxfordPets 和 Food101。如圖所示,我們的 Tip-Adapter-F 均取得了最高的識別準確率。

圖 5:另外 10 個數據集上不同方法的 1~16-shot影象分類準確率比較

3.  領域泛化能力的測評

我們也測試了 Tip-Adapter 和 Tip-Adapter-F 在領域泛化(Domain Generalization)方面的表現。如表 6 所示,我們的兩種方案都表現出了很強的魯棒性以及特徵遷移能力。

四.結論

本文提出了 Tip-Adapter,一種可以免於訓練的將 CLIP 用於下游 few-shot影象分類的方案。Tip-Adapter 通過構建一個 Key-Value Cache Model,來作為測試圖片 Query 的知識檢索庫,並通過融合 Cache Model 的預測和 CLIP 的 zero-shot 預測,來得到更強的識別效能。我們期望 Tip-Adapter 可以啟發更多預訓練模型高效遷移的後續工作。

「其他文章」