【AAAI2022】ShiftVIT: When Shift Operation Meets Vision Transformer
論文:【AAAI2022】When Shift Operation Meets Vision Transformer: An Extremely Simple Alternative to Attention Mechanism
1、研究動機
這個工作是使用一個非常簡單的操作取代 attention,取得了非常好的效果。首先介紹一下論文的motivation。作者認為 Tranformer 取得成功的關鍵在於兩個特性:
- Global:快速的全域性建模能力,每個 token都能和其它的 token 發生關聯
- Dynamic:為每個樣本動態的學習一組權重
作者的 motivation 就是:能不能用更簡單的方式來取代 attention ,更極端的就是 NO global, NO dynamics, and even NO parameter and NO arithmetic calculation .
為此,作者提出了 shift block,非常簡單,本質就是對部分特徵進行簡單的移位操作來代替 self-attention 。
2、方法介紹
如下圖所示,標準的 Transformer block 就是先用attention處理,再用FFN處理。作者提出用 shift block 來代替 attention。這個模組非常簡單,就是將輸入維度為CHW的特徵,沿C這個方向取出來一部分,然後平均分為4份,這4份特徵分別沿 左、右、上、下 進行移動,剩下部分的特徵保持不變。
在作者的實現中,shift的步長設定為1個畫素,同時,選擇 1/3 的通道進行 shift (1/12的通道左移1個畫素,1/12的通道右移1個畫素,1/12的通道上移1個畫素,1/12的通道下移1個畫素)。該模組的 pytroch程式碼如下,可以看出來,這個模組計算非常簡單,基本沒有引數。
在網路架構上, 該方法對標的是 swin transformer,除了 attention 模組用 shift block 替代,其它部分是完全一樣的。
作者首先得到了 ShiftVIT/light,引數量顯著減少。為了保持和 swin transformer 基本一致,作者在 stage3和 stage4 分別添加了6個和1個模組,達到和 swin transformer 引數量基本一致的模型 Shift-T,如下表所示。
Name | Swin-Tiny | Shift-T/light | Shift-T |
---|---|---|---|
block數量 | [2,2,6,2] | [2,2,6,2] | [2,2,12,3] |
引數量 | 29 | 20 | 29 |
FLOPs | 4.5 | 3.0 | 4.5 |
3、實驗結果
下表只列出ImageNet影象分類上的實驗結果,可以看出,直接替換效能會下降,但是增加模組的 Shift-T模型效能上升了,但是 S 模型和 B 模型效能會略微下降。作者還做了目標檢測、語義分割的實驗,得出結論是,效能和 swin 是差不多的,但是當模型比較小的時候,ShiftVIT會更有優勢。
消融實驗作者也分析了很多,這裡只介紹 shift block 唯一個引數的實驗,那就是 shifted channel 的比例,可以看看出,比例太少時,效能會不如 swin-T。當設定為 1/3 時,效能是最好的。
作者還進行了一個有意思的實驗叫做 training scheme,分析了 Transformer 效能取得突破的原因可能也是一些 trick 。使用 Adam 替換 SGD,用 GELU 替換 ReLU,用 LN 替換 BN,以及增加 epoch 的數量,都會提升效能。這也說明,這些因素也可能是 VIT 取得成功的關鍵。
4、總結
作者總結兩點啟示:1)self-attention 也許並不是 VIT 取得成功的關鍵,使用簡單的通道 shift 操作也能在小模型上超越 swin transformer。2)VIT 的訓練策略(Adam、GELU、LN等)是效能提升的關鍵。