close

選自arXiv

作者:Menglin Jia等

機器之心編譯

編輯:趙陽、小舟

來自康奈爾大學、Meta AI 和哥本哈根大學的研究者提出一種優化 Transformer 的有效方案,在只添加少量參數的情況下,對下游任務有極大的提升效果。

識別問題往往是通過預訓練大型基礎模型處理大量精選或原始數據的方式解決的。這似乎是一種可行的模式:只需利用最新最好的基礎模型,就可以在多個識別問題上取得極大的進展。

然而,在實踐中,將這些大型模型用於下游任務就存在一些挑戰。最直接(通常也是最有效)的適應策略是針對任務對預訓練模型進行端到端的全面微調(full fine-tuning)。但這種策略需要為每個任務存儲和部署一個單獨的主幹網絡參數副本。因此這種方法通常成本很高且不可行,特別是基於 Transformer 架構的模型會比卷積神經網絡大得多。

近日,來自康奈爾大學、Meta AI 和哥本哈根大學的研究者試圖找到讓大型預訓練 Transformer 模型適應下游任務的最佳方法。


論文地址:https://arxiv.org/abs/2203.12119

首先,解決這個問題的一種簡單策略是參考卷積網絡適應新任務的方法,如下圖 1 (a) 所示。一種較為普遍的方法是只微調參數的一個子集,如分類器頭或偏置項(bias term),還有研究考慮在主幹網絡中添加額外的殘差塊(或適配器)。這些策略也可以用於 Transformer 模型。然而,這些策略在準確性上往往不如微調參數。


本研究的研究者探索了一條完全不同的路線。他們不修改或微調預訓練 Transformer 本身,而是修改 Transformer 的輸入。受 prompt 方法最新進展的啟發,研究者提出了一種簡單有效的新方法,將 transformer 模型用於下游視覺任務 (圖 1 (b)),即視覺 prompt 調優 (visual prompt tuning,VPT)。

VPT 方法只在輸入空間中引入少量特定於任務的可學習參數,同時在下游訓練過程中固定整個預訓練 transformer 主幹網絡。在實踐中,這些附加參數簡單地被添加到 transformer 中每個層的輸入序列中,並在微調過程中與 linear head 一起更新。

該研究使用預訓練 ViT 主幹網絡完成 24 個不同領域的下游識別任務,VPT 擊敗了所有其他遷移學習 baseline,甚至在 20 種情況下超過了全面微調方法,而只用到極少量的參數(少於主幹網絡參數的 1%)。

實驗結果表明 VPT 具有獨特的優勢。在 NLP 中, prompt 方法只能在一些特定情況下與全面微調方法性能相當。而 VPT 在小數據環境中也特別有效,在各種數據規模上均保持着優勢。此外,VPT 在 Transformer 的擴展和設計方面也具有競爭力。綜上所述,VPT 是適應不斷增長的視覺主幹網絡的最有效方法之一。

方法

VPT 將少量可學習參數引入 Transformer 的輸入空間,並在下游訓練階段固定主幹網絡。總體框架如圖 2 所示。


符號表示

對於 N 層的 Vision Transformer (ViT),輸入圖像分為 m 個固定大小的 patch {I_j ∈ R^{ 3×h×w} | j ∈ N, 1 ≤ j ≤ m}. 。h, w 是圖像 patch 的高度和寬度。接下來每個 patch 先是嵌入到具有位置編碼的 d 維潛在空間中:


其中,E_i = {e^j_i ∈ R^d | j ∈ N, 1 ≤ j ≤ m} 表示圖像 patch 嵌入的集合,並且也作為第 (i+1) 個 Transformer 層 L_(i+1) 的輸入。連同一個額外的可學習分類 token([CLS]),整個 ViT 被表述為:


x_i ∈ R^d 表示 [CLS] 在 L_(i+1) 的輸入空間的嵌入。[・,・] 表示在序列長度維度上的融合(stacking)和級聯(concatenation),即 [x_i , E_i ] ∈ R^{(1+m)×d} 。每層 L_i 由多頭自注意力 (MSA) 和前饋網絡 (FFN) 以及 LayerNorm 和殘差連接組成。神經分類頭用來將最後一層的 [CLS] 嵌入 x_N ,映射到預測的類概率分布 y 中。

VPT

給定一個預訓練的 Transformer 模型,該研究在嵌入層之後的輸入空間中引入 p 個維度為 d 的連續嵌入,即 prompt。在微調期間僅更新特定於任務的 prompt,而 Transformer 主幹保持不變。根據所涉及 Transformer 層的數量,研究者提出兩種變體,VPT-shallow 和 VPT-deep,如圖 2 所示。

VPT-Shallow:*prompt 僅插入到第一個 Transformer 層 L_1 中。每個 prompt 都是一個可學習的 d 維向量。p 個 prompt 的集合表示為 P = {p_k ∈ R^d | k ∈ N, 1 ≤ k ≤ p}, shallow-prompted ViT 為:


其中,Z_i ∈ R^{p×d} 表示第 i 個 Transformer 層計算得到的特徵,[x_i , Z_i , E_i ] ∈ R^{(1+p+m)×d} 。

如圖 2 所示,橙色和藍色標記的變量分別表示可學習和固定的參數。值得注意的是,對於 ViT,x_N 相對於 prompt 的位置是不變的,因為它們是在位置編碼之後插入的,例如,[x_0, P, E_0] 和 [x_0, E_0, P] 在數學上是等價的。這也適用於 VPT-Deep。

VPT-Deep:在每個 Transformer 層的輸入空間都引入了 prompt。對於第 (i+1) 層 L_(i+1),輸入的可學習 prompt 集合表示為 P_i = {p ^k_i ∈ R^d | k ∈ N, 1 ≤ k ≤ m}。VPT-Deep 的 ViT 為:


視覺 prompt 的存儲:VPT 在存在多個下游任務時具有顯著優勢,只需要為每個任務存儲學習到的 prompt 和分類頭,並重新使用預訓練 Transformer 模型的原始副本,這顯著降低了存儲成本。例如,給定一個具有 8600 萬參數的 ViT-Base(d = 768),50 個 VPT-Shallow 和 VPT-Deep 產生額外的 p × d = 50 × 768 = 0.038M 和 N × p × d = 0.46M 參數,分別僅占所有 ViT-Base 參數的 0.04% 和 0.53%。

實驗

下表 1 展示了在 4 個不同的下游任務組上微調預訓練 ViT-B/16 的結果,並將 VPT 與其他 7 種調優方法進行了比較。我們可以看到:

VPT-Deep 在 4 個問題類別中的 3 個(24 個任務中的 20 個)上優於其他全部方法(表 1 (a)),同時使用的模型參數總量顯著減少(1.18× VS 24.02×)。可見,VPT 是一種很有前途的方法,可以在視覺任務中適應更大的 Transformer。

VPT-Deep 在所有任務組中都優於所有其他的參數調優方法(表 1 (b,c)),表明 VPT-deep 是存儲受限環境中最好的微調策略。

雖然比 VPT-deep 略差一點,但 VPT-shallow 仍然比(表 1 (b))中的 head-oriented 方法性能更好。如果存儲限制很嚴重,VPT-shallow 是部署多任務微調模型的合適選擇。



圖 3 顯示了每種方法在不同訓練數據規模上的平均任務結果。VPT-deep 在各種數據規模上都優於其他 baseline。


圖 4 顯示了 3 種不同主幹規模下 VTAB-1k 的性能:ViT-Base/Large/Huge,VPT-deep 顯著優於 Linear 和 VPT-shallow。


此外,研究者還將 VPT 擴展到 Swin 上,在局部移位窗口中使用 MSA,並在更深層合併 patch 嵌入。為簡單且不失一般性起見,研究者以最直接的方式實現 VPT:prompt 被用於局部窗口,而在 patch 合併階段被忽略。

如下表 2 所示,該研究在 ImageNet-21k 監督的預訓練 Swin-Base 上進行實驗。儘管在這種情況下,Full 總體上能產生最高的準確率(總參數成本也很高),但對於 VTAB 的三個子組,VPT 仍然優於其他微調方法。

©THE END

轉載請聯繫本公眾號獲得授權

投稿或尋求報道:content@jiqizhixin.com

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()