霸榜各大CV任务榜单,Swin Transformer横空出世!
1. ImageNet-1K的圖像分類
Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
一元@煉丹筆記最近朋友和我聊Swin Transformer,說霸榜了各大CV任務的榜單,一搜,發現該文章才出來不到兩周,趕緊趁熱趕學習一波!
之前計算機視覺相關的任務主要被CNN所統治。
- 從AlexNet及其在ImageNet圖像分類挑戰方面的革命性表現,CNN架構已經通過更大的規模,更廣泛的連接,以及更復雜的卷積形式而逐漸壯大。
自然語言處理(NLP)中網絡體系結構的演變走了一條不同的道路,今天流行的體系結構取而代之的是Transformer。
- Transformer是為序列建模和轉換任務而設計的,因為它關注數據中的長期依賴性建模。它在語言領域的巨大成功促使研究人員研究它對計算機視覺的適應性,最近它在某些任務上顯示了不錯的結果,特別是圖像分類和聯合視覺語言建模。
本文重點探討將Transformer從NLP轉移到CV的策略。我們先看二者的不同:
- scale。與作為語言Transformer中處理的基本元素的單詞標記不同,視覺元素在scale上可能有很大的差異,這是一個在目標檢測等任務中受到關注的問題。在現有基于Transformer的模型中,tokens都是固定比例的,這種屬性不適合這些應用。
- 圖像中像素的分辨率比文本段落中的單詞高得多。
在本篇文章中,作者提出了一種新的視覺Transformer,稱為Swin Transformer,它可以作為計算機視覺的通用backbone。將Transformer從語言轉到視覺的過程中所面臨的挑戰來自于兩個領域之間的差異,例如視覺實體的規模變化很大,圖像中的像素與文本中的單詞相比分辨率很高。為了解決這些差異,本文提出了一個層次化的Transformer,其表示是用移位窗口計算的。
移位窗口方案通過將self-attention計算限制在非重疊的局部窗口上,同時允許跨窗口連接,從而提高了效率。這種分層結構具有在不同尺度下建模的靈活性,并且相對于圖像大小具有線性計算復雜性。Swin-Transformer的這些特性使其能夠兼容廣泛的視覺任務,包括:
- 圖像分類ImageNet-1K上的準確率為86.4 top-1;
- 密集預測任務,如目標檢測(COCO test dev上的58.7 box AP和51.1 mask AP);
- 語義分割(ADE20K val上的535 mIoU)。
它的效果超過了之前的最佳水平,COCO上的box-AP和mask-AP分別為+2.7和+2.6,ADE20K上的mask-AP和+3.2 mIOU,顯示了基于Transformer的模型作為視覺支柱的潛力。
存在許多視覺任務,如語義分割,需要在像素級進行dense的預測,這對于高分辨率圖像上的Transformer來說是很困難的,因為它self-attention的計算復雜度是圖像大小的二次方。
為了克服這些問題,我們提出了一種通用的Transformer backbone,稱為Swin-Transformer,它構造了層次化的特征映射,并且計算復雜度與圖像大小成線性關系。
如上圖所示,Swin-Transformer通過從小尺寸的面片(用灰色表示)開始,逐漸合并更深層次的Transformer層中的相鄰面片來構造層次表示。有了這些分層特征映射,Swin-Transformer模型可以方便地利用高級技術進行dense預測,如特征金字塔網絡(FPN)或U-Net。線性計算復雜度是通過在分割圖像的非重疊窗口(紅色輪廓)內局部計算自我注意來實現的。每個窗口中的面片數是固定的,因此復雜度與圖像大小成線性關系。這些優點使得Swin-Transformer適合作為各種視覺任務的通用主干,與以前基于Transformer的體系結構形成對比,后者產生單一分辨率的特征圖,并且具有二次復雜性。
Swin Transformer的一個關鍵設計元素是它在連續的self-attention之間的窗口分區的移動,如下圖所示。
移動的窗口橋接了前一層的窗口,提供了它們之間的連接,顯著增強了建模能力。這種策略對于真實世界的延遲也是有效的:一個窗口中的所有query patches都共享相同的key set,這有助于硬件中的內存訪問。
相比之下,早期的基于滑動窗口的self-attention方法由于不同query像素的key集合不同,在一般硬件上的延遲較低。實驗結果表明,所提出的shifted window方法比傳統方法具有更低的延遲。
所提出的Swin Transformer在圖像分類、目標檢測和語義分割等識別任務上取得了很好的效果。在這三個任務上,它的延遲時間與ViT/DeiT和ResNe(X)t模型相似,顯著優于ViT/DeiT和ResNe(X)t模型。
Stage1
- 首先通過像ViT一樣的分片模塊將輸入的RGB圖像分片成不重疊的patch。每個patch被視為一個“token”,其特征被設置為原始像素RGB值的串聯。
變化過的self-attention(Swin Transformer blocks)被應用到這些patch token上。Transformer block保留了token的個數()并且使用了線性的Embedding。
Stage2
為了生成一個層次化的表示,當網絡變得更深,token的數量會通過patches合并層而減少。第一塊拼接層連接了每組2×2相鄰的patch的特征,并在維級聯特征上應用線性層。
這將token的數量減少了2×2=4的倍數(分辨率的2×降采樣),并且輸出維度設置為2C。之后應用Swin Transformer block進行特征變換,分辨率保持在。
Stage3&4
將該過程重復兩次,輸出分辨率分別為和。這些階段共同產生一個層次表示,具有與典型卷積網絡相同的特征圖分辨率,例如VGG和ResNet。因此,所提出的架構可以方便地取代現有方法中的主干網來執行各種視覺任務。
Swin Transformer是將Transformer模塊中的標準multi-head self-attention(MSA)模塊替換為基于移動窗口,其它層保持不變。Swin Transformer由一個基于移位窗口的MSA模塊組成,然后是一個介于GELU非線性之間的2層MLP。在每個MSA模塊和每個MLP之前應用LayerNorm(LN)層,在每個模塊之后應用剩余連接。
標準Transformer體系結構及其對圖像分類的自適應都進行global self-attention,其中計算了一個token和所有其他token之間的關系。全局計算導致token數量的二次復雜度,這使得它不適用于許多需要大量令牌進行密集預測或表示高分辨率圖像的視覺問題。
1. Self-attention in non-overlapped windows
2. Shifted window partitioning in successive blocks
基于窗口的自self-attention模塊缺乏跨窗口的連接,這限制了它的建模能力。為了在保持非重疊窗口計算效率的同時引入跨窗口連接,我們提出了一種移位窗口劃分方法,該方法在連續的Swin Transformer塊中交替使用兩種劃分配置。
如上圖所示,第一個模塊使用了一個從左上角像素開始的規則窗口劃分策略,第一個模塊采用將8×8 特征map平均劃分為2×2個4×4(M=4)的窗口。然后,下一模塊采用從上一層的窗口配置偏移的窗口配置,通過將窗口從規則分區的窗口置換像素。利用移位窗口劃分方法,連續的swin transformer塊被計算為:
- W-MSA:使用regular窗口分區配置的基于window的multi-head self-attention
- SW-MSA:使用移動的窗口分區配置的基于window的multi-head self-attention
移位窗口分割方法引入了前一層相鄰非重疊窗口之間的連接,被發現在圖像分類、目標檢測和語義分割上是非常有效的。
在計算self-attention,此處我們引入一個相對位置bias:
我們觀察到與沒有這個偏差項或使用絕對位置嵌入的對應項相比有顯著的改進。如[19]中所述,進一步向輸入中添加絕對位置嵌入會略微降低性能,因此在我們的實現中不采用這種方法。
在預訓練中學習到的相對位置偏差也可以用來初始化模型,通過bi-cubic插值對不同窗口大小的模型進行微調。
我們建立了與ViTB/DeiT-B相似計算復雜度的模型Swin-B,并介紹了Swin-T、Swin-S和Swin-L,它們分別是模型大小和計算復雜度的0.25倍、0.5倍和2倍。
1. ImageNet-1K的圖像分類
- 與最先進的ConvNets(RegNet和EfficientNet)相比,Swin Transformer有更好一點的速度精度trade-off。
- 雖然RegNet和EfficientNet是通過徹底的架構搜索獲得的,但所提出的Swin Transformer是從標準Transformer改編而來的,具有很強的潛力。
- 對于Swin-B,ImageNet22K預訓練比ImageNet-1K從頭開始的培訓帶來了**1.8%~1.9%**的收益;
- 與之前ImageNet-22K預訓練的最佳結果相比,我們的模型實現了顯著更好的速度-精度折衷:Swin-B獲得86.0%的top-1精度,比ViT高2.0%,具有相似的推理吞吐量(84.7 vs.85.9 images/秒)和略低的FLOPs(47.0G vs.55.4G)。更大的Swin-L模型達到86.4%的top-1精度,略好于Swin-B模型。
2. COCO的目標檢測
- 與ResNet-50相比,Swin-T框架帶來了+3.4~4.2 box的AP增益,具有略大的模型大小、FLOPS和延遲;
- Swin-Transformer可以拿到51.9 box-AP和45.0 mask-AP的高檢測精度,與ResNeXt101-64x4d相比,可以獲得+3.6 box-AP和+3.3mask-AP的顯著增益,ResNeXt101-64x4d具有相似的模型大小、觸發器和延遲
- 在使用改進的HTC框架的52.3 box AP和46.0 mask AP的較高基線上,Swin-Transformer的增益也較高,分別為+4.1 box AP和+3.1 mask AP;
- 使用級聯Mask R-CNN框架的DeiT-S的性能。Swin-T的結果是+2.5 box-AP和+2.3mask-AP高于DeiT-S,模型尺寸相似(86M對80M),推理速度顯著提高(15.3fps對10.4fps);
- 我們的最佳模型在COCO test dev上實現了58.7 box AP和51.1 mask AP,超過了之前的最佳結果+2.7 box AP和+2.6 mask AP(DetectoRS)。
3. ADE20K的語義分割
- 在計算成本相似的情況下,Swin-S比DeiT-S高出5.3 mIoU(49.3比44.0)。
- 比ResNet-101高出4.4mIoU,比ResNeSt-101高出2.4 mIoU。我們的帶有ImageNet-22K預訓練的Swin-L模型在val集上實現了53.5 mIoU,超過了以前最好的模型+3.2mIoU.
4. 解耦實驗
- 在ImageNet-1K、COCO和ADE20K上,采用移位窗口劃分的Swin-T比采用單一窗口劃分的Swin-T在每個階段的精度都高出+1.1%top-1、+2.8 box AP/+2.2 mask AP和+2.8 mIoU。
- 具有相對位置偏差的Swin-T在ImageNet-1K上產生+1.2%/+0.8%的top-1精度;在COCO上+1.3/+1.5 box AP和+1.1/+1.3 mask AP;以及+2.3/+2.9 mIoU在ADE20K上分別與那些沒有位置編碼和絕對位置嵌入的相關,
- 相對位置偏差的有效性。同時也注意到,雖然絕對位置嵌入的加入提高了圖像分類的準確率(+0.4%),但它不利于目標檢測和語義分割;
- 我們的cyclic實現比單純的填充更具硬件效率,特別是對于更深層的階段??偟膩碚f,它可以為Swin-T、Swin-S和Swin-B帶來13%、18%和18%的加速;
- 構建在移動窗口上的Swin-Transformer架構分別比構建在滑動窗口上的Swin-T、Swin-S和Swin-B快4.1/1.5、4.0/1.5和3.6/1.5倍;
- 與Performer相比,Performer是速度最快的Transformer體系結構之一,我們的基于shifted window的self-attention計算和整體Swin-Transformer體系結構稍快,同時與使用Swin-T的ImageNet-1K上的Performer相比,提升了+2.3%的top-1精度。
本文提出了一種新的視覺Transformer Swin-Transformer,它產生了一種層次化的特征表示,其計算復雜度與輸入圖像的大小成線性關系。Swin-Transformer在COCO目標檢測和ADE20K語義分割方面達到了最先進的性能,顯著超過了
以前的最佳方法。我們希望Swin-Transformer在各種視覺問題上的強大性能將促進視覺和語言信號的統一建模。
作為Swin-Transformer的一個關鍵元素,基于移位窗口的自我注意被證明是解決視覺問題的有效方法,我們也期待著研究它在自然語言處理中的應用。
霸榜各大CV任務榜單,Swin Transformer橫空出世!總結
以上是生活随笔為你收集整理的霸榜各大CV任务榜单,Swin Transformer横空出世!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 神经网络基础之可视化和交互式指南
- 下一篇: 一文总结排序模型CTR点击率预估