RPO: Read-only Prompt Optimization for Vision-Language Few-shot Learning

文章匯總

想解決的問題

對CoOp的改進CoCoOp盡管提升了性能,但卻增加了方差(模型的準確率波動性較大)。

模型的框架

一眼看去,跟maple很像(maple跟這篇文章都是2023年發表的),但maple的視覺提示是由文本提示經過全連接轉換而來的,而這里是文本提示和視覺提示是獨立的。另外maple中的前J層的視覺/文本提示都是學習完之后就丟掉了。

文章的創新點

提示的初始化

其中{piv}i=1KRK×dv,{pit}i=1KRK×dt\{p_i^v\}^K_{i=1} \in R^{K\times d_v},\{p_i^t\}^K_{i=1} \in R^{K\times d_t}表示只讀視覺提示和文本提示的集合,σ2\sigma^2為初始化方差。本文將σ\sigma設為0.1。這對KK提示的初始化略有不同,以便可學習提示避免常量初始化。

這里的亮點在于視覺提示的均值使用了[CLS]x(0)x^{(0)},文本提示的均值使用了[EOS]$ y^{(0)} $。

帶掩碼的注意力

Transformer編碼器中的屏蔽注意操作可表述如下。

亮點在于:

1.屏蔽了文本/視覺特征參考提示做的注意力,即此時文本/視覺特征為qq,prompt作kk

2.文本特征的注意力跟transformer那樣,一個單詞的注意力只和其前面的單詞計算。

摘要

近年來,提示調優已被證明在使預訓練的視覺語言模型適應下游任務方面是有效的。這些方法旨在通過引入可學習的提示來適應預訓練的模型,同時保持預訓練的權重不變。然而,可學習提示會影響自注意模塊的內部表示,這可能會對性能差異和泛化產生負面影響,特別是在數據不足的設置中。為了解決這些問題,我們提出了一種新的方法,只讀提示優化(RPO)。RPO利用隱藏注意力來防止預訓練模型中的內部表示轉移。此外,為了便于優化RPO,根據預訓練模型的特殊令牌初始化只讀提示。我們的大量實驗表明,RPO在基到新泛化和域泛化方面優于CLIP和CoCoOp,同時表現出更好的魯棒性。此外,該方法在數據極度缺乏的情況下也能實現更好的泛化,同時提高了參數效率和計算開銷。代碼可從https://github.com/mlvlab/RPO獲得。

1. 介紹

CLIP[6]、ALIGN[24]、FILIP[50]等視覺語言模型在各種視覺語言任務中都取得了優異的表現。由于視覺語言模型是由基于對比學習目標的自然語言監督的,通過將類名放在文本模板中(例如,“A photo of a [CLASS]”),視覺語言模型可以在開放詞匯設置中有效地對圖像進行分類[6]。

最近的研究探索了這些視覺語言模型在下游任務中的適應性[19]。然而,與小型預訓練模型不同,大規模架構(例如CLIP)很難微調,因為它效率低下,資源密集,并且可能會破壞預訓練期間學習到的良好表示。在CLIP中,進行提示工程以向下游任務提供特定領域的上下文(例如,“A photo of a [CLASS], a type of car”)[6]。但是,這意味著必須根據試驗和錯誤手動選擇提示符。

為了緩解這個問題,上下文優化(CoOp)[33]建議在CLIP上自動化提示工程,用可學習的向量替換基于自然語言的提示中的上下文詞。條件上下文優化(Conditional Context Optimization, CoCoOp)[31]用一個額外的神經網絡生成的圖像條件提示擴展了CoOp,以提高泛化。

圖2:模型適應和RPO方法的說明。(a)如?所表示的,令牌特征和提示特征在傳統的提示調整方法中可以相互看到。雖然模型的權重已經被凍結,但通過自注意機制引入的可學習提示,預訓練CLIP的內部表征越來越多地發生變化。(b)在線性探測中,內部表示和預訓練參數被凍結。模型頂部的線性層被訓練用于模型自適應。?如?所示,在我們的方法RPO中,只有提示符可以讀取令牌特征,而不是其他方式。這使令牌特性保持凍結狀態,不受引入的提示的影響,而我們的只讀提示只從令牌特性讀取有用的信息

雖然現有的這些方法是為了避免在提示學習過程中對預訓練模型的學習參數產生不利影響而提出的,但它們仍然通過注意機制影響模型的隱藏表征,我們稱之為內部表征轉移。我們在圖2a中可視化了這一表示轉換過程。令牌通過transformer[55]層進行處理,預訓練模型的內部表示在很大程度上被可學習提示改變。這可能是有益的,因為它允許模型更好地適應下游任務。

圖1:CoOp、CoOp和線性探測的方差。與CoOp和CoCoOp等提示學習方法相比,線性探測不會改變預訓練的表征,在性能上的差異更小

然而,如圖1所示,在數據不足的情況下,這種轉變可能會對模型的魯棒性和泛化產生負面影響。另一方面,線性探測沒有內部表示移位,如圖2b所示,但線性層引入了參數低效率。

為了檢驗在數據不足的情況下,表示移位如何影響模型方差,我們對線性探測CLIP進行了初步實驗,該實驗不會改變預訓練CLIP的內部表示。我們在FGVCAircraft數據集上分割了10個隨機的少彈訓練數據,并使用16彈學習設置對模型進行訓練,并將性能方差可視化。有趣的是,如圖1所示,我們觀察到與CoOp和CoCoOp相比,線性探測顯著降低了方差,盡管與CoOp (2K)和CoCoOp (35K)相比,它需要更多的訓練參數(262K)。這一結果表明,由缺乏數據訓練引起的內部表征移位可能導致高方差。同時,正如CoOp經驗表明的那樣,線性探測有時在領域轉移任務中缺乏泛化性,并且其附加參數的數量是不可取的。

基于這一觀察,我們提出了只讀提示優化(Read-only Prompt Optimization, RPO),它學習只讀提示,如圖2c所示。RPO在參數有效的同時防止了自適應過程中的表示移位,從而使自適應更加健壯和可推廣。

我們的貢獻可以總結如下:

?我們提出了只讀提示優化(RPO),它允許提示僅從預訓練的視覺語言模型的基于注意的交互中讀取信息,從而防止內部表征轉移。

?我們為只讀提示開發了一種簡單而有效的初始化方法,利用預訓練的CLIP視覺語言模型的特殊標記嵌入。

?我們廣泛的實驗和分析證明了RPO在少量樣本自適應設置下對域和標簽移位的泛化,在9個基準到新泛化的基準和4個領域泛化的基準中取得了最佳性能,同時減少了依賴于少量樣本的方差。

2. 相關的工作

視覺語言模型

大量的網絡抓取圖像-文本對[6,24,15,5,45,44]便于視覺語言模型進行對比預訓練,從而能夠獲得強大且可泛化的圖像表示。例如,CLIP[6]和ALIGN[24]依靠基于轉換器的編碼器[55]來映射圖像和文本之間的復雜關系。這些視覺語言模型在各種下游任務中取得了優異的表現,特別是在零采樣圖像分類中。在這些工作之后,許多其他工作[12,18,48,47]已經出現,以利用視覺語言模型的力量進行圖像相關任務,如圖像識別[33,31,29,38,9]。

然而,盡管這些模型具有很強的泛化性能,但使其適應特定任務可能具有挑戰性,因為為不同的下游任務組裝大型數據集是一項艱巨的挑戰[39]。為了緩解這一問題,最近的研究重點是基于CLIP的可轉移性,使預訓練的視覺語言模型能夠快速適應特定的任務。

提示學習

提示學習[27,22,32,13]最初是在GPT[7,10]和BERT[21]等自然語言處理模型中提出的。該技術涉及合并其他標記,例如手工制作的指令或可學習的提示,以促進對下游任務的預訓練語言模型進行微調。額外的標記為模型提供下游任務的上下文信息,同時保持原始語言模型不變,從而避免災難性遺忘[40]。基于這種方法的有效性,最近的研究試圖在視覺語言模型中利用提示學習的概念。

最近對視覺語言模型的研究使用提示學習,使用連續的矢量提示,并使用文本標記進行連接和處理[33,49]。另一行作品介紹了依賴于視覺特征的提示[29,31,38,26,52]。連續提示學習方法[23,53,28]減少了訓練參數的數量,并自動識別功能良好的提示。視覺提示調優(Visual Prompt Tuning, VPT)[29]將提示插入到視覺編碼器而不是文本編碼器中。同樣,提示有效地包含并傳達了關于手頭任務的知識。

零樣本學習和領域泛化

零樣本學習涉及從訓練過程中可用的“基本”對象類中學習一般知識,并使用這些知識來識別新的類。為了實現這一點,一些方法包括使用顏色或形狀等視覺屬性來跨類進行泛化[17],或者使用視覺語言模型來映射視覺樣本和相應的文本[33,31,34]。

域泛化要求視覺編碼器生成域不變表示,這意味著它們不受拍攝圖像的特定域或設置的影響。例如,蘋果的照片和蘋果的素描[30]應該產生相似的表示。已經提出了各種方法來實現領域泛化,例如使用預訓練模型進行廣義表示[2,41]和跨模態監督[20]。

雖然視覺語言模型中的提示學習已經顯示出更好的性能,但可學習的提示很有可能通過注意機制改變原始模型中功能良好的部分[55]。注意機制使所有輸入嵌入相互作用,從而影響預訓練模型的隱藏表示。如果訓練數據不足,這可能會導致凍結模型中的意外行為。

3. 方法

在本節中,我們提出了只讀提示優化(Read-only Prompt Optimization, RPO),用于在少量數據缺乏的情況下,對視覺語言模型進行魯棒性和可泛化的自適應。我們引入了一組只讀提示,連接到視覺和文本編碼器的輸入,然后用屏蔽注意進行處理,以避免對CLIP的內部表示產生影響。在提示優化期間凍結所有預訓練的參數,并且僅更新連接的只讀提示。

圖3:RPO的整體架構。我們對所有數據集使用默認提示“A photo of A [CLASS]”。然后,在兩個編碼器中,我們的只讀提示被連接到原始功能并饋送到一個凍結的編碼器中。這些編碼器中的注意力是被屏蔽的,這樣我們的提示可以被學習,但不會改變原始的特征交互。我們計算對應于KK個提示的每個編碼器的輸出之間的相似性分數,并對它們進行平均,以產生最終分類分數sˉ1\bar s^1sˉC\bar s^C,其中CC表示類的數量。

3.1. 只讀的提示

對于文本編碼器和可視編碼器,RPO都使用相同的機制。我們首先連接一組連續的可學習提示,這需要最小的額外參數來訓練,圖像補丁嵌入或詞嵌入。公式如下:

其中x(0)Rdv,y(0)Rdtx^{(0)}\in R^{d_v},y^{(0)}\in R^{d_t}表示特殊的令牌嵌入,[CLS]用于視覺編碼器,[EOS]用于文本編碼器,它們在每個編碼器中充當特征聚合器。Ex(0)RNx×dv,Ey(0)RNy×dtE_x^{(0)}\in R^{N_x\times d_v},E_y^{(0)}\in R^{N_y\times d_t}表示視覺嵌入和文本嵌入,dv,dtd_v,d_t表示圖像patch和單詞嵌入的尺寸,Nx,NyN_x,N_y表示特征標記的長度,不包括特殊標記。piv,pitp^v_i,p^t_i表示可視和文本編碼器的第ii個可學習提示符,KK為提示符的個數。兩個編碼器的提示數是相等的。注意,不像在以前的文本提示學習方法中,可學習提示替換對應于’ A photo of A ‘的標記嵌入,我們對’ A photo of A [CLASS] '提示進行編碼,生成Ey(0)E^{(0)}_y,然后串聯只讀的可學習提示{pit}i=1K\{p_i^t\}^K_{i=1}

3.2. 基于特殊令牌的初始化

在RPO中,每個可學習的提示都是通過稍微擾動的特殊標記進行初始化的,即預訓練CLIP的視覺編碼器上的[CLS]和文本編碼器上的[EOS],命名為ST-initialization。在CLIP中,特殊的令牌扮演特征聚合器的角色,它在transformer 編碼器的最后一層充當輸入的代表。由于只讀提示也執行特征聚合,我們發現基于特殊標記初始化提示是有益的,這是一個很好的起點。ST初始化的消融研究見表3。我們初始化提示如下:

其中{piv}i=1KRK×dv,{pit}i=1KRK×dt\{p_i^v\}^K_{i=1} \in R^{K\times d_v},\{p_i^t\}^K_{i=1} \in R^{K\times d_t}表示只讀視覺提示和文本提示的集合,σ2\sigma^2為初始化方差。本文將σ\sigma設為0.1。這對K提示的初始化略有不同,以便可學習提示避免常量初始化。

3.3. 帶掩碼的注意力

圖4:每個編碼器的注意掩碼的可視化。

在我們的RPO框架中,隱藏注意力對于在預訓練的CLIP中保留內部交互非常重要。如圖4a和圖4b所示,我們提出了一個注意掩碼,以防止原始特征被可學習的提示嵌入所破壞。視覺注意掩碼MvRNv×NvM_v \in R^{N_v\times N_v}和文本注意掩碼MtRNt×NtM_t \in R^{N_t\times N_t}將注意力從可學習的提示流限制到已有的特征,其中Nv=1+K+NxN_v=1+K+N_xNt=1+K+NyN_t=1+K+N_y

掩碼可以定義如下,其中Mi,jM^{i,j}表示第ii行,第jj列的掩碼元素:

Transformer編碼器中的屏蔽注意操作可表述如下。

式中,Vi+1\mathcal{V}_{i+1}Ti+1\mathcal{T}_{i+1}分別為視覺編碼器和文本編碼器的第(l+1)(l+1)掩碼多頭自注意層。x(l)RNv×dvx^{(l)}\in R^{N_v\times d_v}表示第(l+1)(l+1)視覺編碼器層的輸入張量,y(l)RNt×dty^{(l)}\in R^{N_t\times d_t}表示第(l+1)(l+1)文本編碼器層的輸入張量。視覺和文本編碼器的最終輸出x(L)x^{(L)}y(L)y^{(L)}表示如下:

其中LL為層數,ei,sie_i,s_i為第ii個視覺和文本提示特征,由各自的編碼器產生。Pv,PtP_v,P_t是預訓練的投影矩陣,將ei,sie_i,s_i投影到vi,tiv_i,t_i

3.4. 對比評分函數

如圖3所示,對于KK對提示,我們基于給定單個圖像xx和類標簽yy的余弦相似性計算KK個logits。給定xxyy,我們將它們之間的相似性定義為公式(9)。通過平均logits,我們產生與KK個獨立模型的集合相同的效果,這些模型具有關于圖像和文本的單獨視角。

使用集成邏輯,我們定義如下式(10)的概率分布,其中τ\tau表示預訓練CLIP的溫度超參數。

4. 實驗

w.o代表without

圖5:RPO與cooop的方差與概化。從新的泛化基礎和更小的性能差異來看,RPO比coop更具泛化性和魯棒性。

5. 結論

大規模預訓練模型的出現,如CLIP[6]、ALIGN[24]和FILIP[50],使得以參數高效的方式有效地使它們適應下游任務變得越來越重要。對整個模型進行微調可能是資源密集型的,并且可能會破壞在預訓練期間學習到的定義良好的模型表示。從參數效率的角度來看,提示學習是一種很有希望避免這些問題的方法,但現有的方法最終仍然是通過注意機制來改變數據令牌的表示[33,31,16],這是一種不穩定的適應策略,特別是在數據不足的情況下,如少鏡頭學習。

為了解決這些挑戰,我們提出了一種新的方法,利用只讀提示來防止骨干模型中的內部表示轉移,從而獲得更好的泛化和魯棒性。我們的方法還在視覺和文本編碼器上使用了可學習的提示,并將它們初始化為特殊的令牌,如[CLS]和[EOS],以便更好地收斂。我們的大量實驗表明,我們的方法在基到新泛化和域泛化方面優于其他方法,并且方差顯著降低。

然而,盡管這種方法具有巨大的潛力,但它仍然是一個未開發的領域。與其他適應策略相比,該方法的效率和有效性有待進一步研究。盡管如此,我們的方法為在資源有限的情況下對預訓練模型進行可推廣和健壯的適應提供了一個有希望的方向。

參考資料

論文下載(ICCV 2023)

https://arxiv.org/abs/2308.14960

代碼地址

https://github.com/mlvlab/RPO

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62644.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62644.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62644.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

『MySQL 實戰 45 講』24 - MySQL是怎么保證主備一致的?

MySQL是怎么保證主備一致的? MySQL 主備的基本原理 基本的主備切換流程 狀態 1:客戶端的讀寫都直接訪問節點 A,而節點 B 是 A 的備庫狀態 2:切換時,讀寫訪問的都是節點 B,而節點 A 是 B 的備庫注意&…

自薦一部IT方案架構師回憶錄

作者本人畢業于一個不知名大專院校,所讀專業計算機科學技術。2009年開始IT職業生涯,至今工作15年。擅長TSQL/Shell/linux等技術,曾經就職于超萬人大型集團、國內頂級云廠商、央國企公司。參與過運營商大數據平臺、大型智慧城市ICT、云計算、人…

python數據分析之爬蟲基礎:selenium詳細講解

目錄 1、selenium介紹 2、selenium的作用: 3、配置瀏覽器驅動環境及selenium安裝 4、selenium基本語法 4.1、selenium元素的定位 4.2、selenium元素的信息 4.3、selenium元素的交互 5、Phantomjs介紹 6、chrome handless模式 1、selenium介紹 (1…

【數據結構——查找】順序查找(頭歌實踐教學平臺習題)【合集】

目錄😋 任務描述 相關知識 測試說明 我的通關代碼: 測試結果: 任務描述 本關任務:實現順序查找的算法。 相關知識 為了完成本關任務,你需要掌握:1.根據輸入數據建立順序表,2.順序表的輸出,…

光伏電站建設成本利潤估算

?截至2024年9月底,全國光伏發電裝機容量達到7.7億千瓦,同比增長48.4%。其中集中式光伏4.3億千瓦,分布式光伏3.4億千瓦。2024年前三季度,全國光伏發電量6359億千瓦時,同比增長45.5%。全國光伏發電利用率97.2%,同比下降1.1個百分點.早在今年2月份,中國光伏行業協會名譽理…

create-react-app react19 搭建項目報錯

報錯截圖 此時運行會報錯: 解決方法: 1.根據提示安裝依賴法 執行npm i web-vitals然后重新允許 2.刪除文件法 在index.js中刪除對報錯文件的引入,刪除報錯文件

scala的集合性能2

可變集合\n可變集合允許在原地修改數據,適合需要頻繁更新的場景。Scala 的可變集合包括 ArrayBuffer、HashSet和HashMap。 1. ArrayBuffer\nArrayBuffer 是一個可變的動態數組,提供高效的隨機訪問和添加操作。 import scala.collection.mutable.ArrayB…

【Ubuntu】腳本自動化控制終端填充

1.sh腳本文件控制終端寫入命令 在SLAM算法中,每次啟動vins都需要起很多終端,盡管使用了超級終端Terminator可以終端內劃分看起來更加便捷,但是每次起算法的命令還是要自己輸入,已經被麻煩了兩年了,今天突然想寫寫一個…

【自學】Vues基礎

學習目錄 Vues基礎本地應用網絡應用綜合應用 工具的準備 我個人比較喜歡使用HTMLDROWNER,學習資料推薦使用VC,僅供選擇吧 前置知識 HTMLCSSJSAJAX:這個是學習資料博主推薦的 個人感覺認真學好HTMLCSSJS理解vues基礎很容易上手 官方網址…

Scratch 消滅字母小游戲

背景 最近嘗試一邊自學Scratch,一邊嘗試教給小孩,看他打字時在鍵盤上亂打一氣,想起來自己小時候玩過的學習機打字母游戲,就想給他下載一個。結果網上看到的代碼,要么質量太差(有26個字母就要寫 26 個判斷&…

python調用matlab函數(內置 + 自定義) —— 安裝matlab.engine

文章目錄 一、簡介二、安裝matlab.engine2.1、基于 CMD 安裝2.2、基于 MATLAB 安裝(不建議) 三、python調用matlab函數(內置 自定義) 一、簡介 matlab.engine(MATLAB Engine API for Python):…

pytroch環境安裝-pycharm

環境介紹 安裝pycharm 官網下載即可,我這里已經安裝,就不演示了 安裝anaconda 【官網鏈接】點擊下載 注意這一步選擇just me 這一步全部勾上 打開 anaconda Prompt 輸入conda create -n pytorch python3.8 命令解釋:創建一個叫pytorch&…

Photoshop提示錯誤彈窗dll缺失是什么原因?要怎么解決?

Photoshop提示錯誤彈窗“DLL缺失”:原因分析與解決方案 在創意設計與圖像處理領域,Photoshop無疑是眾多專業人士和愛好者的首選工具。然而,在使用Photoshop的過程中,有時會遇到一些令人頭疼的問題,比如突然彈出的錯誤…

自己總結:selenium高階知識

全篇大概10000字(含代碼),建議閱讀時間30min 一、等待機制 如果有一些內容是通過Ajax加載的內容,那就需要等待內容加載完畢才能進行下一步操作。 為了避免人為操作等待,會遇到的問題, selenium將等待轉換…

上海亞商投顧:創業板指震蕩調整 機器人概念股再度爆發

上海亞商投顧前言:無懼大盤漲跌,解密龍虎榜資金,跟蹤一線游資和機構資金動向,識別短期熱點和強勢個股。 一.市場情緒 滬指昨日沖高回落,深成指、創業板指盤中跌超1%,尾盤跌幅有所收窄。機器人概念股逆勢爆…

(Linux)CentOS7離線安裝MinIO(超詳細)

目錄 前言1. 下載2. 安裝VMware3. 安裝CentOS4. 離線安裝MinIO4.1. ssh工具連接CentOS4.2. 上傳MinIO離線包4.2.1 創建data目錄4.2.2 上傳RPM包到data目錄4.2.3 安裝RPM包4.2.4 創建MinIO數據目錄4.2.5 配置 MinIO 服務4.2.6 啟動 MinIO4.2.7 開放端口 4.2.8 訪問MinIO 創作不易…

【JavaWeb后端學習筆記】Maven項目管理

Maven 1、分模塊設計2、Maven繼承2.1 繼承關系2.2 版本鎖定 3、Maven聚合4、聚合與繼承的關系 1、分模塊設計 如果一個項目中含有大量的功能模塊。可以考慮將這些功能分模塊設計,逐一進行開發。例如將公共類可以定義在一個項目中,將通用工具類也放在一個…

HarmonyOS-高級(四)

文章目錄 應用開發安全應用DFX能力介紹HiLog使用指導HiAppEvent 🏡作者主頁:點擊! 🤖HarmonyOS專欄:點擊! ??創作時間:2024年12月11日11點18分 應用開發安全 應用隱私保護 隱私聲明彈窗的作…

網絡安全法-網絡運行安全

第三章 網絡運行安全 第一節 一般規定 第二十一條 國家實行網絡安全等級保護制度。網絡運營者應當按照網絡安全等級保護制度的要求,履行下列安全保護義務,保障網絡免受干擾、破壞或者未經授權的訪問,防止網絡數據泄露或者被竊取、篡改&…

論文閱讀:Statistical Comparisons of Classifiers over Multiple Data Sets

論文地址:Statistical Comparisons of Classifiers over Multiple Data Sets (acm.org) 前面在機器學習之Friedman檢驗-CSDN博客 中提到了Friedman檢驗,這里將對這個方法的論文進行詳細的閱讀,以了解其原理。 摘要 盡管用于在單個數據集上比…