選自arXiv
作者:Valerii Likhosherstov等
機器之心編譯
編輯:杜偉
Transformer 真的很全能。
Transformers 是一個靈活的神經端到端模型族(family),最開始是為自然語言處理任務設計的。近來,Transformers 已經在影象分類、影片和音訊等一系列感知任務上得到應用。雖然近來在不同領域和任務上取得了進展,但當前 SOTA 方法只能為手頭的每個任務訓練具有不同引數的單一模型。
近日,谷歌研究院、劍橋大學和阿蘭 · 圖靈研究所的幾位研究者在其論文《 PolyViT: Co-training Vision Transformers on Images, Videos and Audio 》提出了一種簡單高效的訓練單個統一模型的方法,他們將該模型命名為 PolyViT,它實現了有競爭力或 SOTA 的影象、影片和音訊分類結果。
在設計上,研究者不僅為不同的模態使用一個通用架構,還在不同的任務和模態中共享模型引數,從而實現了潛在協同作用。從技術上來講,他們的方法受到了「transformer 是能夠在任何可以 tokenized 的模態上執行的通用架構」這一事實的啟發;從直覺上來講,是由於人類感知在本質上是多模態的,並由單個大腦執行。
論文地址:https://arxiv.org/abs/2111.12993
下圖 1 為 PolyViT 的結構概覽。
研究者主要使用的方法是協同訓練(co-training),即同時在多個分類任務(可能跨多個模態)上訓練單個模型。他們考慮了不同的設定,同時解決多達 9 個不同的影象、影片和音訊分類任務。如上圖 1 所示,PolyViT 模型能夠執行多個任務,但對於給定的輸入一次只能執行一個任務。雖然計算機視覺和自然語言領域探索過類似的方法,但研究者不清楚以往的工作是否考慮了多種模態以及是否使用這種方法實現了 SOTA 結果。
我們的協同訓練設定簡單實用。它不需要對協同訓練資料集的每個組合進行超引數調整,因為我們可以很容易地調整標準單任務訓練的設定。此外,協同訓練也不會增加整體訓練成本,因為訓練步驟的總數不超過每個單任務基線的總和。
影象、音訊和影片上的 Co-training ViT
PolyViT 架構
PolyViT 是一個能夠處理來自多種模態的輸入的單一架構。如上圖 1 所示,研究者在不同的任務和模態中共享一個 transformer 編碼器,使得引數隨任務數量呈線性減少。注意,在處理影象時,具有 L 個層的 PolyViT 表現得像 L 層的 ViT,處理音訊時表現得像 L 層的 AST,處理影片時表現得像 L 層的未因式分解(unfactorized)的 ViViT。雖然 PolyViT 能夠處理多種模態,但在給定前向傳遞時只能基於一種模態執行一個任務。
PolyViT 部署模態特定的類 token,即
、輸入嵌入運算元
和位置嵌入
。這使得網路可以編碼模態特定的資訊,這些資訊又可以被隨後的、共享 transformer 主幹所利用。
為了實現大量任務和模態協同訓練的同時增加模型容量,研究者可以選擇性地納入 L_adapt ≥ 0 模態特定 transformer 層(他們表示為模態 - 介面卡層),這些 transformer 層在 tokenization 之後直接應用。在這種情況下,所有模態和任務中會共享 L_=shared = L − L_adapt 層。
協同訓練流程
在使用隨機梯度下降(SGD)協同訓練的所有任務中,研究者同時最佳化所有的 PolyViT 模型引數 θ。因此,在決定如何構建訓練 batch、計算梯度以更新模型引數以及使用哪些訓練超引數時有很多設計上的選擇。
在所有情況下,研究者使用來自單個任務中的示例來構建自己的訓練 minibatch。這一設計選擇使得他們在使用相同的訓練超引數(如學習率、batch 大小和動量)作為傳統單一任務基線時,可以評估梯度和更新引數。這樣一來,與單一任務基線相比,研究者無需任何額外的超引數就可以執行多個任務上的協同訓練,從而使得協同訓練在實踐中易於執行,並減少執行大規模超引數掃描(sweep)的需求以實現具有競爭力的準確性。
在協同訓練過程中,對於每個 SGD 步,研究者取樣一個任務(或資料集),然後取樣來自這個任務中的 minibatch,評估梯度並隨後執行引數更新。需要著重考慮的是取樣任務的順序以及是否在不同的 minibatch 和任務上累積梯度。研究者在下圖 2 中描述了幾個任務取樣計劃,包括如下:
- 任務 1:逐任務(Task-by-task)
- 任務 2:交替(Alternating)
- 任務 3:統一任務取樣(Uniform task sampling)
- 任務 4:加權任務取樣(Weighted task sampling)
- 任務 5:累積梯度(Accumulating gradients)
實驗
研究者在影象、音訊和影片三種模態的 9 個不同分類任務上同時訓練了 PolyViT。在影象分類協同訓練時,他們使用了 ImageNet-1K、 CIFAR-10/100、Oxford-IIIT Pets 和 RESISC45 資料集;對於影片任務,他們使用了 Kinetics 400 和 Moments in Time 資料集;對於音訊任務,他們使用了 AudioSet 和 VGGSound 資料集。
下表 6 為具體實驗設定:
下表 1 展示了不同任務取樣計劃在不同模態和任務上對協同訓練效能的影響,粗體表示最高準確率,下劃線表示次最高準確率。其中,「Task-by-task」取樣計劃表現糟糕,僅在一項任務上實現了不錯的效能,這是災難性遺忘(catastrophic forgetting)造成的。
「Accumulated」取樣計劃需要在所有任務上使用單一的學習率,這是由於所有任務上的累積梯度被用於執行引數更新。因此,該計劃僅在影象資料集上表現良好。
「Alternating」、「Uniform」和「Weighted」取樣計劃表現最好,表明任務特定的學習率以及不同任務的梯度更新之間的轉換對於準確率至關重要。
使用 PolyViT 的協同訓練
下表 2 展示了用於解決跨影象、音訊和影片三種模態的 9 個不同任務的模型訓練方法,包括 ViT-Im21K Linear probe、Single-task baseline 和本文的 PolyViT 及變體(分別是 PolyViT L_adapt = 0 和 PolyViT Ladapt = L/2)。
結果顯示,在單模態上訓練的 PolyViT 在 9 個數據集的 7 個上實現了 SOTA 效能,其餘 2 個數據集上的準確率差異可以忽略不計,不超過 0.3%。此外,引數的總數量比單個任務基線少了 2/3。同時,在使用引數大大減少的情況下,多模態 PolyViT 也實現了有競爭力的效能。
使用 linear probe 評估學習到的表示
透過為一個新任務僅僅新增和訓練一個新的線性頭(linear head),研究者對 PolyViT 學習到的特徵表示進行評估。下表 3 展示了多種模態上訓練的 PolyViT 如何學習「在跨影象、音訊和影片三種模態的 11 個線性評估任務上均表現良好的」跨模態特徵表示。同時,表 3 還展示了多種模態上的協同訓練如何有益於學習強大、可遷移且可用於多個下游任務的特徵表示。
使用單模態協同訓練實現 SOTA 效能
受到上表 2 中單模態協同訓練效能的啟發,研究者使用這種方法在音訊和影片分類任務上執行了大規模協同訓練實驗。下表 4 和表 5 顯示,在使用的引數明顯更少的同時,他們實現了 SOTA 結果。
如下表 4 所示,對於音訊分類,研究者將 PolyViT 與當前 SOTA 方法 MBT(audio-only) 及相關變體 MBT: AS-500k→VGGSound 和 MBT: VGGSound→AS-500k。結果表明,PolyViT 在兩個資料集上超越了 SOTA 方法,同時使用的引數大約是 MBT(audio-only) 的一半。此外,PolyViT 在更小的資料集 VGGSound 上實現了 2.8% 的 Top 1 準確率提升。
對於影片分類,研究者在 Kinetics-400、Kinetics-600 和 Moments in Time 資料集上協同訓練了具有較小 tubelet size 的 PolyViT-Large 模型,並與當前 SOTA 模型 ViViT(使用相同的初始化、主幹和 token 數量)進行了比較。結果如下表 5 所示,表明 PolyViT 在三個資料集上均超越了 ViViT。