[21.07] ALBEF
追尋純粹的路
Align before Fuse: Vision and Language Representation Learning with Momentum Distillation
想要做好 VQA,無可避免的,就得使用物件偵測器。
那些不想要用物件偵測器的前輩,走在前面的先賢烈士們,已經倒在了路上。
一位是 ViLT 前輩,它把物件偵測器拆掉,改成 ViT,但最後在 VQA v2 資料集的驗證上卻沒有什麼斬獲;另一個 MDETR 前輩,它則是把物件偵測器從 Faster RCNN 換成 DETR,但最後也沒放上 VQA v2 資料集的表現結果。
另一方面,在這個時刻很流行的 CLIP 模型:
這些方法透過對比損失進行預訓練,專注於獨立地學習圖像和文字的表示。但是,這類方法在更複雜的 V+L 任務上可能缺乏建模能力。
欸,我們也就是看看論文,怎麼又能看出這麼多的遺憾?
定義問題
其實不遺憾,就是要有前人留下來的懸念,後人才能有繼續發表論文的空間。
ALBEF 的作者根據前人的研究,總結出了幾個現階段的問題:
-
模態空間的編碼問題
影像特徵和文字編碼即使都被轉換成了向量形式,通常還是存在於各自獨特的向量空間中。這意味著,這兩種空間有各自獨特的維度、範圍和特性,因此在這些獨立的空間中,它們的交互作用和關聯性是難以直接捕捉的。
-
物件偵測器的限制
物件偵測器在進行預訓練時需要邊界框註釋,這不僅增加了註釋的成本,而且在推 理時需要高解析度的影像(例如 600×1000),增加了計算成本和複雜性。
-
資料雜訊問題
目前廣泛使用的圖像文字資料集主要來自網路,這些資料由於來源多樣,天生容易帶有雜訊。當預訓練模型使用這些資料集時,存在一個風險,即模型可能會對雜訊中的特定文本過度擬合,這會降低其在真實世界應用中的泛化性能。
綜合上面的問題,作者提出了 ALBEF,其在檢索和推理任務上都取得 SoTA 的結果,而且他也不依賴物件偵測器,而是採用 ViT。
有別於前輩的嘗試,這次沒有壞掉的其中一個原因是作者加入了「知識蒸餾」的這個技術。
知識蒸餾
在開始描述怎麼作者怎麼解決問題之前,我們先對「知識蒸餾」進行一個基本的介紹。
隨著深度學習模型在各種任務上取得了卓越的成果,模型的大小和複雜性也隨之增加。然而,巨大的模型需要大量的計算資源,這在實際應用中可能不太可行,特別是在邊緣設備或移動設備上。
知識蒸餾是深度學習中的一種技術,旨在從一個複雜(且通常很大)的模型(稱為「教師模型」)轉移知識到一個較簡單(且通常較小)的模型(稱為「學生模型」)。
基本原理
-
軟目標(Soft label):在蒸餾過程中,教師模型的輸出(通常是某一層的啟動函數的輸出或分類概率)被用作軟目標,以訓練學生模型。這些軟目標 包含了教師模型的知識,並且比原始的「硬」標籤提供了更多的資訊。
-
溫度(Temperature):為了使軟目標更為「柔和」,通常使用一個參數稱為「溫度」來調整概率輸出。較高的溫度會導致更柔和的概率分佈,這有助於學生模型學習。
實施步驟
-
訓練教師模型
教師模型通常是一個大型的、有很多參數的深度學習模型,它在某項任務上經過充分訓練並達到了較好的性能。例如:在圖像分類的任務中,教師模型可能是一個深層的卷積神經網路,如 ResNet-152 或 VGG-19。
提示為什麼需要大模型?
大模型因其深度和廣度能捕捉到更多的特徵和模式,從而在訓練數據上達到較高的準確性。但這也意味著它們在推理時的計算成本高,並需要更多的存儲空間。
-
生成 Soft label
一旦教師模型被訓練好,它就可以被用來獲得 soft label。這基本上意味著使用教師模型的預測作為目標,而不是使用原始的硬標籤。
提示Soft label 與 Hard label 的差異
硬標籤是絕對的、明確的分類標籤(如「狗」或「貓」)。而軟目標提供了每個可能的類別的概率。例如:對於一張圖片,硬標籤可能只告訴我們它是一只狗,但軟目標可能告訴我們這張圖片是狗的概率為 0.95,是貓的概率為 0.03,以及其他動物的概率。
提示為什麼使用軟目標?
軟目標 可以提供更多的資訊和細節,使模型能更好地了解各類別之間的關係和不確定性。
-
訓練學生模型
學生模型是一個較小的模型,其目的是模仿教師模型的行為。通過使用上一步產生的軟目標來訓練學生模型,它學習模仿教師模型的決策過程。
在實際的蒸餾過程中,通常會結合軟目標和原始的硬標籤來訓練學生模型。這樣可以確保學生模型不僅僅模仿教師,還能考慮到原始數據的真實標籤。學生模型通常比教師模型要小和簡單得多,這使得它在推理時更快且更適合於資源受限的環境。
-
擴展和變體
-
自蒸餾
在這種策略中,模型使用自己的預測作為軟目標重新進行訓練。這基本上是讓模型嘗試強化自己已經學到的知識。
- 優點:簡單且低成本:不需要另一個獨立的教師模型。有助於模型的收斂:通常可以加速模型的收斂和提高其準確性。
- 缺點:模型可能更容易過擬合,因為它持續地依賴自己的預測。
-
多教師蒸餾
在這種策略中,多個教師模型的知識被蒸餾到一個學生模型中,學生模型嘗試組合並模仿所有教師模型的行為。
- 優點:
- 豐富的知識來源:來自多個教師模型的知識可能使學生模型更健壯和準確。
- 降低特定模型偏見:多個教師的組合可能會減少因單一模型的偏見或誤差引起的問題。
- 缺點:
- 計算成本高:需要多個已經訓練好的教師模型。
- 複雜度增加:決定如何組合和權衡不同教師模型的輸出可能會增加訓練過程的複雜性。
- 優點:
-
在線蒸餾
教師模型和學生模型是同時訓練的。學生模型不斷地從教師模型中學習,同時兩者都在進行迭代和更新。
- 優點:
- 實時更新:學生模型可以即時獲得教師模型的最新知識。
- 較低的延遲:不需要等待一個模型訓練完成才能開始另一個模型的訓練。
- 缺點:
- 需要仔細的同步:確保學生和教師模型的同步更新可能會有所挑戰。
- 計算成本:同時訓練兩個模型可能會增加計算需求和成本。
- 優點:
-
解決問題
ALBEF 模型設計
先撇開知識蒸餾的部分,其他的組件應該很好理解:
- 影像編碼器:使用 12 層的 Vision Transformer (ViT-B/16) 進行編碼,初始化使用 ImageNet-1k 預先訓練的權重。
- 文字編碼器:使用 6 層的 Transformer Encoder,並使用 BERTbase 模型的前 6 層進行初始化。
- 多模態編碼器:使用 6 層 Transformer Encoder,採用 BERTbase 模型的後 6 層初始化。