首頁 > 科技週邊 > 人工智慧 > 無需下游訓練,Tip-Adapter大幅提升CLIP影像分類準確率

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

王林
發布: 2023-04-12 15:25:26
轉載
1119 人瀏覽過

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


  • 論文連結: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),就可以實現現有最佳的分類性能。

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

表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 十分之一的訓練回合數和時間,就可以實現更高的性能,如表一所示。

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

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

2.Tip-Adapter 和現有方案的差異與聯繫

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

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

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

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

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

圖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 的準確率比較。可見,我們的兩種方案都在資源開銷很小的情況下,達到了非常卓越的效能。

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

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

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


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

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

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

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

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

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

#圖5:另外10 個資料集上不同方法的1~16-shot影像分類準確率比較

#

3.  領域中泛化能力的評估

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

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

四.結論

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

以上是無需下游訓練,Tip-Adapter大幅提升CLIP影像分類準確率的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:51cto.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板