論文筆記 — Swin Transformer V2: Scaling Up Capacity and Resolution

Watson Wang
7 min readFeb 14, 2023

Paper Link: https://arxiv.org/abs/2111.09883

Introduction

為了成功訓練大型通用視覺模型,我們需要解決幾個關鍵問題:

Problem1 :大型視覺模型的實驗發現了訓練中的不穩定問題:在大型模型中,跨層激活幅度的差異變得明顯更大,發現這是殘差單元的輸出直接加回主分支造成的,導致較深層的振幅明顯大於早期層的振幅。

Solution1: 提出了一種新的規範化配置,稱為 res-post-norm,它將 LN 層從每個殘差單元的開頭移動到後端,如圖所示。

為了更好地擴展模型容量和窗口分辨率,對原始 Swin Transformer 架構(V1)進行了一些調整:1)res-post-norm 取代之前的 pre-norm 配置; 2) 一個縮放的餘弦注意力來代替原來的點積注意力; 3)用對數間隔連續相對位置偏差方法來代替以前的參數化方法。

這種配置產生更溫和的激活值。 我們還提出了一個縮放餘弦注意力來取代之前的dot-production,使注意力值不太可能落入極端。

Problem2: 許多下游視覺任務,需要高分辨率輸入圖像或大注意力窗口。 低分辨率預訓練和高分辨率微調之間的窗口大小變化可能非常大。 當前的常見做法是對 position bias maps 執行 bi-cubic interpolation。 這個簡單的修復有點特別,結果通常不是最佳的。

Solution2: 引入了 log-spaced continuous position bias (Log-CPB),它通過在對數(log)空間坐標輸入上應用小型元網絡為任意坐標範圍生成偏差值。 一個關鍵設計是將坐標轉換為對數空間,這樣即使目標窗口大小明顯大於預訓練窗口大小,extrapolation ratio 也可以很低。

Problem3: 模型容量和分辨率的擴大也導致現有視覺模型的 GPU 內存消耗過高。

Solution3: 採用了幾種重要的技術,包括 zero-optimizer、activation check pointing 和一種新穎的sequential self-attention 計算。 使用這些技術,大型模型和分辨率的 GPU 內存消耗顯著減少,對訓練速度的影響很小。

Swin Transformer V2

1. A Brief Review of Swin Transformer

Relative position bias

相對位置偏差是原始 Swin Transformer 中的一個關鍵組成部分,它引入了一個additional parametric bias來編碼self-attention 計算中的幾何關係:

在 Swin Transformer 中,沿每個軸的相對位置在 [−M + 1, M − 1] 範圍內,相對位置偏差被參數化為偏差矩陣 B^∈R(2^M−1)×(2^M− 1), B中的元素取自B^。 當在不同的窗口大小之間傳輸時,在預訓練中學習的相對位置偏差矩陣用於通過 bi-cubic interplotation的微調來初始化不同大小的偏差矩陣。

Issues in scaling up model capacity and window resolution

當我們擴大 Swin Transformer 的容量和窗口分辨率時,我們觀察到兩個問題。

  1. 擴展模型容量時的不穩定問題。 如圖 2 所示,當我們將原始 Swin Transformer 模型從小尺寸放大到大尺寸時,更深層的激活值急劇增加。 振幅最高和最低的層之間的差異達到了 10^4 的極值。
  2. 跨窗口分辨率傳輸模型時性能下降。

在接下來的小節中,將介紹解決這些問題的技術,包括用於解決不穩定問題的殘差後歸一化和縮放餘弦注意力,以及用於解決跨窗口分辨率傳輸問題的對數空間連續位置偏差方法。

2. Scaling Up Model Capacity

在原始 Swin-Transformer Normalization Configuration 中,每個殘差塊的輸出激活值直接合併回主分支,並且主分支的幅度在更深的層變得越來越大,不同層的大幅度差異會導致訓練不穩定。

Post normalization

改用殘差後歸一化方法,如圖所示。在這種方法中,每個殘差塊的輸出在合併回主分支之前被歸一化,並且主分支的振幅不隨層數變深時積累。 在我們最大的模型訓練中,我們每 6 個 Transformer 塊在主分支上引入一個額外的層歸一化層,以進一步穩定訓練。

Scaled cosine attention

在最初的self-attention 計算中,像素對的相似性項被計算為查詢和關鍵向量的dot-product。 我們發現,當這種方法用於大型視覺模型時,學習到的一些和頭部的注意力圖經常由少數像素對支配, 為了緩解這個問題,我們提出了一種縮放餘弦注意力方法,該方法通過 縮放餘弦函數 計算像素對 i和 j 的 attention logit:

其中 Bij 是像素 i 和 j 之間的相對位置偏差; τ 是一個可學習的標量,不共享。 τ 設置為大於 0.01。 餘弦函數自然歸一化,因此可以具有更溫和的注意力值。

3. Scaling Up Window Resolution

Continuous relative position bias

連續位置偏差方法不是直接優化參數偏差,而是在相對坐標上採用小型元網絡:

其中 G 是一個小型網絡,例如,一個 2 層 MLP,默認情況下其間有 ReLU 激活。
網絡 G 為任意相對坐標生成 Bias,因此可以自然地轉移到具有任意變化的窗口大小的微調任務。 在推理中,可以預先計算每個相對位置的偏差值並將其存儲為模型參數,這樣的推理與原始參數化偏差方法相同。

Log-spaced coordinates

當在變化很大的窗口大小之間傳輸時,需要推斷大部分相對坐標範圍。 為了緩解這個問題,我們建議使用對數空間坐標而不是原始的線性空間坐標:

其中 Δx、Δy 和 Δx^、Δy ^分別是線性標度和對數空間坐標。

4. Self-Supervised Pre-training

在這項工作中,我們利用一種自我監督的預訓練方法 SimMIM 來減輕對標記數據的需求。 通過這種方法,我們僅使用 7000 萬張標記圖像(1/40 of JFT-3B)。

Result

Conclusion

我們已經提出了將 Swin Transformer 縮放到多達 30 億個參數並使其能夠使用分辨率高達 1,536×1,536 的圖像進行訓練的技術,包括 res-post-norm 和縮放餘弦注意力以使模型更易於縮放 容量,以及對數間隔連續相對位置偏差方法,使模型更有效地跨窗口分辨率傳輸。 調整後的架構被命名為 Swin Transformer V2,通過擴展容量和分辨率,它在 4 個具有代表性的視覺基准上創造了新的記錄。 通過這些強有力的結果,我們希望能夠激發更多的研究朝這個方向發展,以便我們最終能夠縮小視覺和語言模型之間的能力差距,並促進這兩個領域的聯合建模。

--

--