InPK:將先驗知識注入視覺語言模型提示的技術思路
電子科技大學研究人員的論文《InPK: Infusing Prior Knowledge into Prompt for Vision-Language Models》提出了一種新穎的方法,即通過將先驗知識融入到視覺語言模型(VLM)的提示中,以提升模型在零樣本和少樣本視覺識別任務中的性能。本文將結合論文詳細介紹 InPK 的技術原理、實現方法、實驗結果及其在視覺語言模型領域中的意義。
背景
近年來,在大型圖像文本數據集上預訓練的視覺語言模型(VLM),例如 CLIP,已經在各種下游任務中展現出了強大的泛化能力。CLIP 等模型通過學習圖像和文本之間的關聯,能夠理解圖像的內容并將其與相應的文本描述聯系起來。這種能力使得 VLM 在各種視覺識別任務中表現出色,尤其是在那些缺乏大量標注數據的場景中。
為了使這些模型能夠更好地適應特定的任務或數據集,特別是在零樣本或少樣本的場景下,研究人員提出了多種解決方案。零樣本學習指的是模型在沒有見過任何目標類別樣本的情況下識別這些類別的能力;而少樣本學習則是指模型僅見過目標類別的少量樣本,需要從中快速學習并泛化到更多的樣本。這兩種場景都對模型的泛化能力提出了更高的要求。
在眾多的解決方案中,提示調整(prompt tuning)是一種通過優化文本提示來引導視覺語言模型執行特定任務的技術,作為一種有效的策略脫穎而出。提示調整的核心思想是通過調整文本提示來引導 VLM,使其更好地執行特定的任務。VLM 通常使用文本提示來指導其行為,例如,在圖像分類任務中,模型可能會收到“這是一張[類別]的圖片”這樣的提示。通過調整提示中的“[類別]”部分,我們可以引導模型識別不同的對象。
提示調整的優勢在于其簡單性和高效性。與傳統的微調方法相比,提示調整只需要調整少量的文本提示,而不需要修改模型的其他部分。這大大降低了計算成本,并提高了模型的泛化能力。
然而,現有的提示調整方法在處理未見過的類別時,往往存在過擬合于已見類別的問題,從而導致泛化能力下降。這是因為,這些方法通常依賴于手工設計的提示模板,這些模板可能包含了過多關于已見類別的信息,而缺乏對未見類別的泛化能力。此外,一些方法嘗試引入先驗知識來緩解這個問題,希望通過將更多的信息融入到提示中來提高模型的性能。
先驗知識指的是模型在訓練之前已經具備的關于世界的知識。例如,關于“貓”的先驗知識可能包括“貓有四條腿”、“貓有胡須”等等。將這些先驗知識融入到提示中,可以幫助模型更好地理解圖像的內容,并提高其識別能力。
然而,由于可學習的標記 (learnable tokens) 是指在提示調整過程中,模型可以學習和優化的向量表示,用于更好地適應特定任務。是隨機初始化的,并且與先驗知識缺乏聯系,模型仍然難以提取出具有區分性和泛化性的特征。可學習的標記是提示調整方法中用于調整提示的關鍵部分。這些標記通常是隨機初始化的向量,模型通過訓練來學習這些向量的最佳值。但是,由于這些標記是隨機初始化的,它們可能無法有效地捕捉到先驗知識中的關鍵信息,從而導致模型在處理未見過的類別時表現不佳。
為了解決上述問題,本文介紹的 InPK 模型提出了一種新的框架。該框架在初始化階段將類別特定的先驗知識注入到可學習的標記中,從而使模型能夠明確地關注類別相關的信息。通過在初始化階段引入先驗知識,InPK 模型為可學習的標記提供了一個更好的起點,使它們能夠更快地學習到有用的信息。
此外,為了緩解類別信息在多層編碼器中減弱的問題,InPK 模型在多個特征層級上持續強化可學習標記與先驗知識之間的交互。通過在多個層級上進行交互,模型能夠逐步地提煉和整合先驗知識,從而更好地捕捉到細粒度的差異和通用的視覺概念。
這種方法使得模型能夠更有效地關注類別相關的信息,即使對于未見過的類別,模型也能夠捕捉到它們共同的表示,并在已有的語義結構中推斷出它們合適的位置。更重要的是,InPK 模型引入了一個可學習的文本到視覺的投影層,以更好地對齊視覺和文本語義,進一步提升了模型的性能。
大量的實驗結果表明,InPK 模型在多個圖像分類數據集上均取得了顯著優于現有方法的性能,展示了其強大的泛化能力和魯棒性。
InPK 方法詳解
1. 整體框架
InPK 的核心思想是,在提示調整過程中,通過融入先驗知識來改善 VLM 的性能。其整體框架如圖 2 所示。該方法主要包括以下幾個關鍵組成部分:
- 先驗知識生成:使用大型語言模型(LLM)生成包含類別名稱和類別特定屬性詞的先驗知識。
- 先驗知識注入的文本編碼器(PKi):將先驗知識融入到可學習的標記中,并在多個特征層級上強化二者之間的交互。
- 文本到視覺的投影層:引入一個可學習的投影層,以更好地對齊視覺和文本語義。
- 訓練目標:設計一個結合交叉熵損失和正則化約束的訓練目標,以優化模型性能。
2. 先驗知識生成
高質量的先驗知識對于提升 VLM 的識別能力至關重要。InPK 方法利用 LLM 的豐富世界知識,通過預定義的指令模板生成全面的類別描述。具體來說,對于每個類別,生成的先驗知識包括類別名稱和多個描述該類別特征的屬性詞。
LLM 是一種經過大規模文本數據訓練的語言模型,它具備豐富的世界知識和強大的語言生成能力。InPK 方法利用 LLM 來生成先驗知識,可以有效地獲取關于類別的準確和全面的描述。
例如,對于“貓”這個類別,生成的屬性詞可能包括“有胡須”、“長尾巴”、“靈活”等。這些屬性詞提供了關于貓的更細粒度的信息,有助于模型更好地區分貓和其他動物。與僅僅使用類別名稱“貓”相比,這些屬性詞能夠提供更豐富的上下文信息,幫助模型更好地理解“貓”的概念。
先驗知識的生成過程可以形式化地描述為:給定一個類別名稱 c,LLM 被用來生成一個包含 n 個屬性詞的集合 A = {a_1, a_2, ..., a_n},其中每個屬性詞 a_i 描述了類別 c 的一個特征。最終,類別 c 的先驗知識表示為包含類別名稱和屬性詞的組合,例如,“貓,有胡須,長尾巴,靈活”。
通過使用 LLM 生成先驗知識,InPK 方法可以獲得以下優勢:
- 準確性:LLM 具備強大的語言理解能力,可以生成準確描述類別特征的屬性詞。
- 全面性:LLM 包含豐富的世界知識,可以生成涵蓋類別多個方面的屬性詞,提供全面的類別描述。
- 多樣性:LLM 可以生成多種不同的屬性詞,避免模型過分依賴于特定的屬性,提高模型的泛化能力。
3. 先驗知識注入的文本編碼器 (PKi)
InPK 方法沒有簡單地將可學習的標記與先驗知識拼接起來,而是設計了一個先驗知識注入的文本編碼器(PKi)。在 PKi 中,先驗知識以更緊密的方式融入到可學習的標記中。
PKi 的核心是“屬性感知注意力機制”(attribute-aware attention mechanism)。在該機制中,可學習的標記作為查詢(Query),類別特定的先驗知識嵌入作為鍵(Key)和值(Value),從而生成融合了先驗知識的標記嵌入。
傳統的自注意力機制允許模型在處理序列數據時,動態地關注序列中不同位置的信息。例如,在句子“貓坐在墊子上”中,自注意力機制可以幫助模型識別出“貓”和“坐”之間的關系,以及“坐”和“墊子”之間的關系。
然而,在 InPK 方法中,屬性感知注意力機制的目標是將先驗知識融入到可學習的標記中,使其能夠更好地表示類別相關的信息。具體來說,對于每個可學習的標記,屬性感知注意力機制會計算它與每個屬性詞之間的相關性,并根據這些相關性來加權屬性詞的信息,最終得到融合了先驗知識的標記嵌入。
屬性感知注意力機制的計算過程可以描述如下:
通過這種方式,每個可學習的標記都能夠根據其與不同屬性詞之間的相關性,自適應地獲取先驗知識中的相關信息,從而生成更具區分性的表示。
為了防止類別信息在多層編碼器中稀釋,PKi 在多個 Transformer 層中都引入了屬性感知注意力機制。Transformer 模型通常由多個層組成,每一層都會對輸入序列進行一次變換。如果沒有特殊的機制,輸入序列中的信息可能會在多層的處理過程中逐漸丟失,這就是信息稀釋問題。
在 InPK 方法中,通過在多個 Transformer 層中引入屬性感知注意力機制,可學習的標記可以在每一層都與先驗知識進行交互,從而不斷地強化它們之間的聯系。這種多層次的交互方式使得模型能夠在不同的抽象層級上逐步地建模類別信息,更好地捕捉到細粒度的差異和通用的視覺概念。
4. 文本到視覺的投影層
由于文本分支引入了額外的先驗知識,這可能會導致視覺和文本語義之間的不對齊。為了解決這個問題,InPK 方法引入了一個可學習的文本到視覺的投影層。
在傳統的 VLM 中,圖像和文本通常被編碼成不同維度的特征向量。例如,CLIP 模型使用兩個獨立的編碼器,一個處理圖像,一個處理文本,最終得到兩個不同維度的特征向量。為了比較圖像和文本之間的相似度,需要將它們映射到同一個共享的嵌入空間中。
然而,在 InPK 方法中,由于文本分支引入了額外的先驗知識,這使得文本特征的維度和語義空間發生了變化,從而導致與視覺特征之間的不對齊。為了解決這個問題,InPK 方法引入了一個可學習的投影層。
投影層的作用是將文本分支中的可學習標記轉換為視覺分支中的可學習標記,從而動態地調整文本和視覺分支,確保二者之間的一致性。這個投影層可以是一個簡單的線性變換,也可以是一個更復雜的非線性變換,例如多層感知機(MLP)。
通過訓練,投影層可以學習到如何最好地將文本特征轉換為視覺特征,從而實現跨模態的對齊。這種動態調整機制使得 InPK 模型能夠更好地處理文本和視覺模態之間的差異,提高模型的性能。
5. 訓練目標
InPK 方法的訓練目標包括兩部分:
- 交叉熵損失:用于衡量模型的預測結果與真實標簽之間的差異。
- 正則化約束:為了防止模型過擬合于屬性詞,并保留通用的知識,InPK 方法引入了一個正則化約束,它通過最小化文本特征與其在預訓練 CLIP 模型中的對應特征之間的 L1 損失來實現。
交叉熵損失是一種常用的分類損失函數,它衡量的是模型預測的概率分布與真實標簽之間的差異。在 InPK 方法中,交叉熵損失被用來訓練模型,使其能夠準確地預測圖像的類別。
然而,僅僅使用交叉熵損失可能會導致模型過擬合于屬性詞,而忽略了更通用的知識。例如,如果模型在訓練數據中看到的大多數貓都有“有胡須”這個屬性,模型可能會錯誤地認為“有胡須”是貓的必要屬性,而忽略了其他可能沒有胡須的貓。
為了防止模型過擬合于屬性詞,并保留通用的知識,InPK 方法引入了一個正則化約束。正則化約束通過對模型的參數或輸出進行約束,來防止模型學習到過于 специфичные 的特征,從而提高模型的泛化能力。
在 InPK 方法中,正則化約束的具體形式為 L1 損失,它被應用于文本特征和預訓練 CLIP 模型中的對應特征之間。CLIP 模型通過在大規模圖像文本數據上進行預訓練,已經學習到了豐富的通用知識。通過將文本特征約束在 CLIP 模型的特征附近,InPK 模型可以保留這些通用的知識,同時學習到類別特定的信息。
L1 損失的計算公式如下:
通過結合交叉熵損失和正則化約束,InPK 方法能夠有效地訓練模型,使其既能夠準確地識別已見類別,又能夠很好地泛化到未見類別。
實驗結果
為了驗證 InPK 方法的有效性,作者在 11 個圖像分類數據集上進行了大量的實驗,涵蓋了多種不同的任務。實驗結果表明,InPK 在零樣本和少樣本的圖像分類任務中均取得了顯著優于現有方法的性能。
1. 基類到新類的泛化
在該實驗設置中,模型在基類(seen classes)的少量樣本上進行訓練,然后在基類和新類(unseen classes)上評估其性能。基類指的是模型在訓練過程中已經見過的類別,而新類指的是模型在訓練過程中沒有見過的類別。這種實驗設置旨在評估模型將從已見類別中學到的知識泛化到未見類別的能力。
InPK 方法在 11 個數據集上的平均結果顯示,其在新類上的準確率比現有最優方法提高了 3.43%,在基類上的準確率提高了 1.04%。這個結果表明,InPK 方法不僅能夠很好地識別已見類別,還能夠有效地泛化到未見類別。
為了綜合衡量模型在已見類別和未見類別上的性能,作者使用了調和平均數(HM)指標。調和平均數是一種綜合考慮模型在不同類別上性能的指標,它能夠更好地反映模型在已見類別和未見類別之間的平衡。
InPK 在調和平均數(HM)指標上比現有最優方法高出 2.34%,這表明 InPK 能夠有效地平衡模型在已見類別和未見類別上的性能,在提高泛化能力的同時,沒有犧牲在已見類別上的準確率。
2. 少樣本學習
在該實驗設置中,模型在每個類別的極少量標記圖像(4-shot)上進行訓練。4-shot 學習指的是模型在每個類別僅見過 4 個標記樣本的情況下進行學習。這種實驗設置旨在評估模型在數據極度匱乏的情況下進行學習的能力。
實驗結果表明,InPK 方法在少樣本學習中仍然表現出色,在 11 個數據集中的 7 個上取得了最高的準確率,平均性能比現有最優方法提高了 0.92%。這個結果表明,InPK 方法能夠有效地利用先驗知識來彌補少量樣本帶來的信息不足,從而提升模型在數據有限場景下的性能。
少樣本學習是機器學習中一個重要的研究領域,它旨在解決如何利用極少量的標注數據來訓練模型的問題。InPK 方法在少樣本學習任務中的出色表現,進一步證明了其有效性和優越性。
3. 跨數據集評估
為了進一步驗證模型的泛化能力,作者還在跨數據集的設置中評估了 InPK 方法。在該設置中,模型在 ImageNet-1K 數據集上進行少樣本訓練,然后在其他 10 個數據集上進行零樣本評估。這種實驗設置旨在評估模型在面對不同數據分布時的泛化能力。
ImageNet-1K 是一個大規模的圖像數據集,包含了 1000 個類別的大量圖像。通過在 ImageNet-1K 上進行訓練,模型可以學習到豐富的視覺知識。然后在其他 10 個數據集上進行零樣本評估,可以檢驗模型是否能夠將這些知識遷移到新的數據集上。
實驗結果表明,InPK 方法在 10 個數據集中的 8 個上取得了優異的泛化性能,平均準確率達到了 69.90%。這個結果表明,InPK 方法對于不同的數據分布具有很強的魯棒性,能夠有效地泛化到新的數據集上。
跨數據集評估是檢驗模型泛化能力的重要手段。InPK 方法在跨數據集評估中的出色表現,進一步證明了其強大的泛化能力和魯棒性。
4. 消融實驗
為了更深入地理解 InPK 方法中各個組成部分的作用,作者進行了一系列消融實驗。消融實驗是一種常用的實驗方法,它通過逐步移除模型中的某些組成部分,來分析這些組成部分對模型性能的影響。
在本研究中,作者設計了一系列消融實驗,以評估以下幾個因素對模型性能的影響:
- 提示長度:提示長度指的是輸入到模型中的文本提示的長度。作者通過改變提示的長度,來評估提示長度對模型性能的影響。
- 屬性詞的數量:屬性詞的數量指的是在先驗知識中使用的屬性詞的數量。作者通過改變屬性詞的數量,來評估屬性詞的數量對模型性能的影響。
- 屬性感知注意力機制的插入位置:屬性感知注意力機制是 InPK 方法中的一個關鍵組成部分。作者通過改變該機制在 Transformer 模型中的插入位置,來評估其對模型性能的影響。
- 模型組成部分分析:作者通過逐步移除 InPK 模型中的不同組成部分,例如先驗知識注入、屬性感知注意力機制和文本到視覺的投影層,來評估每個組成部分對模型性能的影響。
- 先驗知識注入的有效性:作者通過比較將先驗知識注入到可學習的標記中和不注入的情況,來驗證先驗知識注入的有效性。
消融實驗的結果提供了關于 InPK 方法的大量有價值的信息。例如,實驗結果表明,適當增加提示長度可以提高模型在新類上的性能,但對基類性能影響不大。這可能是因為更長的提示包含了更多的上下文信息,從而幫助模型更好地區分不同的類別。
又例如,實驗結果表明,增加屬性詞的數量可以提供更全面的類別描述,從而提高模型的整體性能。然而,屬性詞的數量并不是越多越好,過多的屬性詞可能會引入噪聲,反而降低模型的性能。
消融實驗還表明,屬性感知注意力機制的插入位置對模型性能有很大的影響。將該機制插入到 Transformer 的前幾層可以有效地提高模型性能,但插入過深可能會干擾模型對高級特征的捕獲。
模型組成部分分析的結果表明,先驗知識的引入和屬性感知注意力機制的使用均能提高模型性能,而文本到視覺的投影層能夠進一步提升跨模態對齊,從而提高整體性能。
最后,消融實驗驗證了先驗知識注入的有效性。將先驗知識注入到可學習的標記中可以顯著提高現有提示調整方法的性能,這表明 InPK 方法的核心思想是有效的。
結論
InPK 方法通過在提示調整過程中融入先驗知識,有效地提升了視覺語言模型在零樣本和少樣本視覺識別任務中的性能。該方法的主要創新之處在于:
- 在初始化階段將類別特定的先驗知識注入到可學習的標記中,使得模型能夠更有效地關注類別相關的信息。
- 在多個特征層級上持續強化可學習標記與先驗知識之間的交互,使得模型能夠更好地捕獲細粒度的差異和通用的視覺概念。
- 引入可學習的文本到視覺的投影層,以更好地對齊視覺和文本語義。
大量的實驗結果表明,InPK 方法在多個圖像分類數據集上均取得了顯著優于現有方法的性能,展示了其強大的泛化能力和魯棒性。
總結
InPK 方法為視覺語言模型的提示調整提供了一個新的思路。它通過有效地融入先驗知識,提高了模型在零樣本和少樣本視覺識別任務中的性能。該方法在多個數據集上取得了顯著的成果,展示了其在實際應用中的巨大潛力。未來的研究可以探索如何自動地生成更豐富和更準確的先驗知識,以及如何將 InPK 方法應用到其他視覺語言任務中,例如圖像描述和視覺問答等等。
參考論文:
arXiv:2502.19777v1 [cs.CV] 27 Feb 2025
本文轉載自????上堵吟????,作者:一路到底的孟子敬
