隨著CLIP的出現,如何將大規模預訓練的模型高效地遷移到小樣本的下游任務中,成為了一個新的挑戰。
根據方法策略的不同可以分為兩類:Prompt-based方法和Adapter-based方法。Prompt-based和Adapter-based方法中,我們又可以根據梯度是否經過編碼器,將其細分為兩類:梯度經過編碼器的方法和梯度不經過編碼器的方法。此外,一部分遷移的方法專注於給定少樣本的情況,另一部分遷移的方法則專注於測試時適應。
梯度經過編碼器的Prompt-based方法可以分為:文字模態、視覺模態和雙模態。
文字模態的Prompt Learning:CoOp(Context Optimization)將NLP領域的Prompt Learning遷移到視覺語言模型中。給定少量資料集和模板(如“a photo of [class]”),CoOp最佳化前幾個輸入的token,使模型能夠更好地適應特定任務。TPT(Test-time Prompt Tunning)在測試時適應的過程中最小化不同增強視角的平均熵來最佳化prompt,與CoOp方法可以無縫整合。
視覺模態的Prompt Learning:VPT在視覺輸入中嵌入可學習的token,將這些token作為額外的輸入嵌入到視覺編碼器中,對視覺特徵進行調整。
雙模態的Prompt Learning:UPT在將雙模態的可學習的token送入編碼器之前,經過一個Transformer網路處理,增強了模態之間token的表達能力。MaPle在文字和視覺端的token之間加入了一個可學習的線性層,使得兩種模態的token耦合,產生更強的聯絡。Prompt-align將MaPle進一步擴充套件至測試時適應,計算支援集的圖片的編碼之後的token的均值和方差並在測試時將測試圖片的token的均值和方差向支援集拉近。
梯度經過編碼器的Adapter-based方法有CLIP-LoRA和MMA(Multi-modal Adapter)。CLIP-LoRA將LoRA微調大語言模型的經驗應用到少樣本微調中,透過微調CLIP模型文字端和影像端的Query、Key和Value矩陣,實現高效的引數更新。MMA在Transformer層之間加入了文字和影像端耦合的Adapter模組,增強了多模態資訊的融合。
梯度不經過編碼器的Prompt-based主要為TaskRes。TaskRes在文字端學習一個殘差,僅調整文字編碼器的輸出。相比CoOp,TaskRes方法簡單更小,效果更佳。類似的,TPS方法選擇在測試時調整改殘差。梯度不經過編碼器意味我們只需要編碼一次,同時我們可以更好的利用外部知識,因為我們不受到CoOp中模版的限制。我們可以向LLM中獲得更加豐富的Prompt,參考CuPL的工作。
梯度不經過編碼器的Adapter-based的方法:Tip-Adapter使用一個簡單的快取模組,將訓練集的影像特徵存成Key,標籤作為Value。測試時,輸入影像透過編碼器得到的特徵作為Query,與快取中的Key進行匹配,實現快速的少樣本適應。CaFo利用大型語言模型(LLM)的外部知識擴充概念,並藉助生成模型來擴充少量的資料集,提高模型的泛化能力。DMN設計了一個動態記憶和靜態記憶模組,隨著測試樣本的增多,動態記憶不斷被填滿,提高模型效能。TDA設定了一個正樣本快取模組和負樣本快取模組,隨著測試樣本的不斷增多,更新快取模組。Dual-Adapter和Cluster-Adapter:這兩種方法在視覺和文字端針對編碼後的原型共同學習殘差,增強了多模態的適應性。DPE則在測試時適應的過程中共同學習文字和影像端的殘差,保持了模型的泛化能力。
透過對以上方法的調研,我發現當前的高效遷移學習方法存在以下主要問題和挑戰:
1.高效遷移學習加劇了CLIP模型的類別偏差
現有的高效遷移學習方法雖然能夠在少樣本學習中提升模型的效能,但也加劇了CLIP模型在零樣本任務中固有的類別偏差問題。CLIP模型基於大規模的多模態資料進行訓練,天然具有良好的泛化能力,但由於類別分佈的不均勻,模型對某些類別的學習較為充分,而對其他類別的學習則幾乎完全失敗。在少樣本場景中,這種偏差更加明顯,因為少數類別的訓練樣本更為稀少,模型容易忽略這些類別,甚至出現類別完全崩塌的現象。例如,使用CoOp等Prompt-based方法時,模型可能過度擬合於頻繁出現的類別,對罕見類別的表現卻極差。
2.測試時過度依賴監督訊號,訓練與測試不統一
現有的一些測試時適應的方法在測試階段過度依賴監督訊號,同時缺乏訓練和測試的統一。DMN和TDA這兩種方法在測試時引入了偽標籤或快取模組,對測試資料施加了明確的監督訊號。雖然在理論上提升了模型的測試準確性,但卻忽視了對資料分佈的學習能力,可能導致模型的確認偏差,進一步擴大類別之間的差異。目前,僅有DMN,TPT+CoOp,TPS+TaskRes可以做到在既能給定小樣本的情況下訓練,又能測試時適應,一個高效準確的方法應當既能在有資料的情況下適應,也能在測試時適應。
3.模型引數和超引數複雜度增加,應用成本高
為了提升模型的效能,現有的高效遷移學習方法往往增加了大量的引數和超引數,導致模型複雜度和應用成本增加。Tip-Adapter對於不同的資料集,需要設定不同的引數,人為地加入了先驗知識,缺乏統一的標準。MaPLe等方法在模型結構中引入了較多新的可學習層或模組,增加了模型的引數量和複雜度。超引數過多不僅增加了模型訓練和除錯的難度,也使得方法之間缺乏公平的比較,影響了實際應用。
4.文字與影像模態利用不足,模態融合效果不佳
當前的方法在多模態資訊的融合上存在明顯不足,具體表現在:Prompt生成未結合影像資訊:現有的Prompt多依賴於預設的模板或外部的語言模型生成,未能根據輸入影像的內容動態調整,導致文字和影像模態之間的聯絡不足。視覺端的噪聲干擾:如VPT方法在視覺端引入可學習的token,但這些token與輸入影像的實際內容並無直接關係,無法根據影像的變化進行靈活調整。少樣本情況下,模型容易受到影像中的背景噪聲干擾,無法有效提取前景目標的資訊。
5.訓練集擬合與CLIP基礎模型泛化能力的平衡
現有的高效遷移學習方法在提高模型適應性的同時,往往會過度擬合訓練集,導致CLIP基礎模型的泛化能力下降。現有的解決方案主要有兩種,殘差學習方法:TaskRes、Dual-Adapter、Cluster-Adapter等方法透過在編碼器輸出上學習殘差,嘗試在擬合訓練集和保持模型泛化能力之間取得平衡。一致性正則方法:CoPrompt,在微調的過程中引入對比損失,保持微調後的模型與原始模型之間的特徵一致性,避免過度偏離原始模型的分佈。然而,這些方法在實際應用中仍需要在效能和泛化能力之間進行權衡,找到最佳的平衡點。
最後我認為未來的研究應該從以下幾個方向上展開:
1、平衡類別學習,減少偏差:未來可以探索新的損失函式或資料平衡策略,減少類別偏差。
2、統一訓練和測試策略:耦合訓練和測試時適應,減少對測試時偽標籤的依賴
3、降低模型複雜度,提高實用性:簡化模型結構,減少引數和超引數的數量。
4、加強模態融合,提升多模態協同效果:在Prompt生成和特徵提取過程中,充分利用影像和文字的模態資訊,增強多模態協同效果
5、保持模型的泛化能力,避免過度擬合:引入其他領域的方法,在微調的同時保持原始模型的泛化特性,避免過度擬合訓練集。
(隨手寫的,很多優秀的方法現在回看依然沒有寫上,如一致性正則的一些方法,以及一些最新的方法)