2109.01134
CoOp通過可學習的向量來建模提示的上下文詞匯,這些向量可以用隨機值或預訓練的詞嵌入進行初始化(見圖2)。我們提供了兩種實現方式,以處理不同性質的任務:一種是基于統一上下文(unified context),它與所有類別共享相同的上下文,并且在大多數類別上表現良好;另一種是基于類別特定上下文(class-specific context),它為每個類別學習一組特定的上下文標記,并且發現在某些細粒度類別上更為合適。在訓練過程中,我們只需通過最小化與可學習上下文向量相關的交叉熵損失來優化預測誤差,同時保持整個預訓練參數固定不變。梯度可以通過文本編碼器反向傳播,利用參數中編碼的豐富知識來學習與任務相關的上下文。
【主線無關的記錄】1.微小的措辭變化可能會對性能產生巨大影響。例如,對于Caltech101(見圖1(a),第二個提示與第三個提示),在類別標記前加上“a”可以帶來超過5%的準確率提升。其中添加與任務相關的上下文可以帶來顯著改進。調整句子結構可以帶來進一步的改進。2.Jiang et al.(2020)提出通過文本挖掘和釋義生成候選提示,并識別出能夠獲得最高訓練準確率的最優提示。Shin et al.(2020)引入了一種基于梯度的方法,通過搜索在標簽似然中梯度變化最大的標記來優化提示。與這些方法最相關的是連續提示學習方法(Zhong et al., 2021; Li and Liang, 2021; Lester et al., 2021),這些方法在詞嵌入空間中優化連續向量。與搜索離散標記的方法相比,這種方法的缺點是缺乏一種清晰的方式來可視化所學習向量對應的“詞匯”。3.CLIP首先將每個標記(包括標點符號)轉換為小寫的字節對編碼(BPE)表示(Sennrich et al., 2016),這本質上是一個唯一的數字ID。CLIP的詞匯量為49,152。為了便于小批量處理,每個文本序列都被[SOS]和[EOS]標記包圍,并限制在固定長度77以內。之后,這些ID被映射到512維的詞嵌入向量,然后傳遞給Transformer。最后,[EOS]標記位置的特征經過層歸一化,并通過一個線性投影層進一步處理。CLIP的訓練目標是將圖像和文本的兩個嵌入空間對齊。具體而言,學習目標被公式化為對比損失。給定一批圖像-文本對,CLIP最大化匹配對之間的余弦相似度,同時最小化所有其他不匹配對之間的余弦相似度。
2211.10277
TaskRes保持VLMs的原始分類器權重不變,并通過調整一組與先驗無關的參數作為原始權重的殘差來獲得目標任務的新分類器,這使得先驗知識得以可靠地保留,同時能夠靈活地探索特定于任務的知識。它直接在基于文本的分類器上進行操作,并明確地將預訓練模型的舊知識和目標任務的新知識解耦。其原理是,解耦使得從VLMs更好地繼承舊知識,并且更靈活地探索特定于任務的知識,即所學習到的關于任務的知識與舊知識無關。具體而言,TaskRes保持原始分類器權重不變,并引入一組與先驗無關的參數,這些參數被添加到權重中。這些可調整的參數,針對目標任務進行調整,因此被稱為“任務殘差”。
其實感覺和殘差沒什么關系 殘差是x+f(x) 然而這個方法里面新加的x與經過文本編碼器的向量無關,而是一個新加的和encoder毫無關系的參數,和CoOp的主要差別可能主要在一個訓練要經過文本encoder的所有的層,而一個不用。
【主線無關的記錄】1.原則上,VLMs所學習到的良好知識結構在轉移到數據有限的下游任務時應該被適當地繼承。然而,現有的大多數高效遷移學習(ETL)方法,如提示調整(PT)和適配器風格調整(AT),要么破壞了先驗知識,要么對先驗知識存在過度偏差。2.ETL的核心是:(i)適當繼承VLMs所學習到的良好知識結構,這些結構已經具有可遷移性;(ii)在數據有限的情況下,有效地探索特定于任務的知識。然而,現有的大多數ETL方法,如提示調整(PT)和適配器風格調整(AT),要么破壞了VLMs的先驗知識,要么以不恰當/不充分的方式學習任務的新知識。例如,CoOp(圖2(b))提出了學習連續提示以合成一個全新的分類器,而不是使用預訓練的基于文本的分類器,這不可避免地導致了先前知識的丟失。相比之下,CLIP-Adapter保留了預訓練的分類器,但在學習新任務時對先驗知識存在過度偏差,即它將預訓練的分類器權重轉換為特定于任務的權重(如圖2(c)所示)。這導致了對新知識探索的不足,從而導致了較低的準確率(如圖1所示)。【clipadpter沒看過還】
[2203.05557] Conditional Prompt Learning for Vision-Language Models
這篇的baseline也是CoOp,在我們的研究中,我們發現CoOp的一個關鍵問題是:所學習的上下文無法推廣到同一數據集內更廣泛的未見類別,表明CoOp對訓練中觀察到的基礎類別存在過擬合。為了解決這一問題,我們提出了條件上下文優化(CoCoOp),它通過進一步學習一個輕量級神經網絡來為每張圖像生成一個輸入條件化的標記(向量),從而擴展了CoOp。與CoOp的靜態提示相比,我們的動態提示能夠適應每個實例,因此對類別變化不那么敏感。
我感覺這篇文章提到的CoOp無法推廣到同一數據集的未見類別(甚至比zeroshot還差原因就是 “加入這個模塊破壞了已有的良好表示空間”)
【主線無關的記錄】1.在傳統的監督學習中,標簽是離散化的,每個類別都與一個隨機初始化的權重向量相關聯,該向量被學習以最小化與包含相同類別的圖像之間的距離。【一開始沒太看懂 傳統的監督學習學的是交叉熵損失 但是標簽是隨機初始化的 并無實際意義 所以可以理解為學習同類差異最小 異類差異最大?】2.為了適應像CLIP這樣的網絡規模數據,視覺-語言模型被設計為具有高容量,這意味著模型的大小通常會非常龐大,通常有數億甚至數十億的參數。因此,像深度學習研究中經常采用的那樣對整個模型進行微調是不切實際的,甚至可能破壞已經學習到的良好表示空間。3.一個更安全的方法是通過添加一些對任務有意義的上下文來調整提示,例如對于上述提到的寵物數據集,“一種寵物”,這已被發現可以有效提高性能。然而,提示工程極其耗時且效率低下,因為它必須基于試錯法進行,并且也不能保證找到最優的提示。為了自動化提示工程,...
[2212.10846] From Images to Textual Prompts: Zero-shot VQA with Frozen Large Language Models
大型語言模型(LLMs)在新語言任務上展現了出色的零樣本泛化能力。然而,將LLMs有效應用于零樣本視覺問答(VQA)任務仍然面臨挑戰,主要是由于LLMs與VQA任務之間存在模態斷層和任務斷層。端到端的多模態數據訓練可能彌合這些斷層,但這種方法不夠靈活且計算成本高昂。為解決這一問題,我們提出了Img2LLM,這是一個即插即用模塊,能夠為LLMs提供提示,使其無需端到端訓練即可執行零樣本VQA任務。我們開發了與LLM無關的模型,將圖像內容描述為示例問題-答案對,這些對被證明是有效的LLM提示。Img2LLM具有以下優勢:1)其性能與依賴端到端訓練的方法相當甚至更好。例如,我們在VQAv2上超越了Flamingo [3] 5.6%。在具有挑戰性的A-OKVQA數據集上,我們的方法比少樣本方法高出20%。2)它能夠靈活地與各種LLMs對接以執行VQA任務。3)它消除了使用端到端微調專門化LLMs的需要,從而降低了成本。
以前模態斷層的解決方案主要是 把圖片轉換成語言 任務斷層的解決方案是 給一定的實例。
本文主要是針對端到端的訓練大模型耗時耗力而設計了一個即插即用的模塊,pipeline如下:1.給定圖片與問題2.根據問題,使用BLIP模型的圖像引導文本編碼器(ITE)和GradCAM技術,找到與問題最相關的圖像區域,把這些有關的區域打成patch 并依據圖像塊生成標題并過濾掉質量不高的標題,保留與問題相關的、有意義的標題。 3.從生成的標題中提取可能作為答案的詞匯,比如名詞(“風力渦輪機”)、動詞(“旋轉”)等。為每個答案候選生成一個問題,可以使用模板(比如“這張圖片中有什么在旋轉?”)或者通過神經網絡生成更自然的問題。將生成的問題和對應的答案組合成問題-答案對,這些對將作為LLM(大型語言模型)的提示,幫助它理解圖像內容和任務要求。4.用這些生成好的問題答案對去做實例提示,然后回答最初的問題。
感受是:多模態似乎經常根據圖片生成描述性語句 然后根據描述性語句去生成問題。&&這個pipeline有點反直覺,效果蠻好的。
【主線無關的記錄】1.VQA的核心目標是讓機器能夠根據給定的圖像內容回答與該圖像相關的問題,這些問題通常以自然語言的形式提出。VQA任務旨在模擬人類在觀察圖像時能夠自然地理解和回答問題的能力。
2210.01115
本文目的還是去解決clip在訓練數據上過擬合嚴重,在同一領域未見類別上測試時準確率大幅下降的問題。
為了緩解基礎類別過擬合,本文基于以下觀察提出解決方案:由于提示學習提高了基礎類別的準確率,但提示工程在新類別上表現更好,因此我們提出通過添加文本到文本的交叉熵損失函數來學習軟提示,使其在嵌入空間中接近文本提示,從而利用文本編碼器捕獲的內在信息。這種新提出的文本到文本損失函數首次實現了僅通過語言優化來適應V&L模型,這與以往僅捕捉視覺與語言交互的軟提示學習方法形成對比。
【主線無關的記錄】1.CoOp的一個主要限制是泛化能力弱:學習到的提示過擬合基礎類別,在新類別上表現不佳。為了緩解這一問題,CoCoOp提出了一種動態版本的CoOp,其中一個小網絡被訓練用來從輸入圖像中產生一個視覺特征,該特征被添加到學習到的提示中,從而使它們具有輸入特定性(即動態)。ProDA采用概率方法,通過在文本編碼器的輸出處對提示的分布建模為多元高斯分布。在推理過程中使用估計的均值。最后,UPL使用CLIP為目標數據集生成偽標簽,然后通過自訓練學習軟提示。最后,ProGrad旨在通過鼓勵模型“記住”CLIP的零樣本預測來適應每個目標域,使用CLIP的logits和模型的logits之間的KL視覺-文本損失(即他們使用視覺特征更新權重,方向與CLIP梯度垂直)。與之相比,我們的損失是一個純粹的文本到文本損失,進一步允許引入虛擬類別。與ProGrad不同,我們在新類別上超過了CLIP。
先看ProDA和ProGrad。未完待續
2303.13283
2205.03340?ProDA
【主線無關的記錄】1.VLMs [17, 31] 使用手工設計的提示模板來構建類別描述。一個默認的提示是“一張{類別}的照片”,在通用目標識別(例如ImageNet [7] 和 STL-10 [6])上效果良好。然而,在處理細粒度目標識別時,它很難處理。在花卉數據集(Oxford Flowers 102 [28])上,更好的提示選擇是“一張{類別}的照片,一種花卉。” [31]。2.另一個挑戰來自于視覺內容的多樣性。由于姿勢、變形和光照條件等固有因素,類別內各種示例之間存在顯著的多樣性 [44]。這種類內方差阻止了一個提示足以描述視覺變化。提示需要多樣化且富有信息量,以便能夠處理視覺表示的變化。