日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

【Transformer】CSWin Transformer: A General Vision Transformer Backbone with Cross-Shaped Windows

發布時間:2023/12/15 windows 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Transformer】CSWin Transformer: A General Vision Transformer Backbone with Cross-Shaped Windows 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


論文:

文章目錄

    • 一、背景
    • 二、動機
    • 三、方法
      • 3.1 總體結構
      • 3.2 Cross-Shaped Window Self-Attention
      • 3.3 CSWin Transformer Block
      • 3.4 變體
    • 四、效果

一、背景

目前,基于transformer的方法在 CV 領域基本實現了和CNN相當的效果,其好的效果來源于內部多頭自注意力機制對遠距離依賴的建模能力,這對以高分辨率數據作為輸入的下游方法(檢測、分割等)都很有幫助。但另外,由于 Transormer 結構是全注意力結構,計算量很大。

二、動機

為了提高速度,一個典型的方法是限制 attention 計算的區域,也就是進行 local/windowed attention,為了建立不同 window 之間的聯系,一些作者使用轉移window的方法來實現。但是這些方法隨著深度的增加,感受野的大小提升的很慢,并且需要堆疊更多的 blocks 來實現全局的attention。但是,下游的任務往往都需要足夠大的感受野,所以,如果在獲得大的感受野的同時來保證計算量較低是很重要的。

三、方法

本文作者提出了一種名叫 Cross-Shaped Window (CSwin) self-attention,作者并行的進行垂直和水平兩個方向的 self-attention 計算。 如圖1所示。

3.1 總體結構


CSwin 的結構如圖2所示:

  • 輸入:H×W×3H \times W \times 3H×W×3
  • patch tocken 的獲得:使用大小為 7×77\times77×7 步長為 4 的卷積來獲得大小為 H4×W4\frac{H}{4} \times \frac{W}{4}4H?×4W? 的 patch tokens,每個 token 的維度是 CCC
  • 產生層級表達:作者使用了4個stage來產生不同的層級表達,兩個相鄰層級之間使用卷積層(3×3,strides=23\times 3, strides=23×3,strides=2) 來降低token的數量,并將channel擴充為2倍。
  • 每個stage的token數量:H2i+1×W2i+1\frac{H}{2^{i+1}} \times \frac{W}{2^{i+1}}2i+1H?×2i+1W?
  • 每個stage $i $ 包含 NiN_iNi? 個順序的 CSWin Transformer Blocks

CSWin Transformer Block 和其他基于多頭self-attention的transformer結構的不同:

  • CSWin 使用 cross-shaped window attention
  • LePE 被作為一個并行模塊加入 self-attention 分支,來引入局部歸納偏置

3.2 Cross-Shaped Window Self-Attention

本文作者提出了一種名叫 Cross-Shaped Window (CSwin) self-attention,作者并行的進行垂直和水平兩個方向的 self-attention 計算。 如圖1所示。

如何得到stripe:通過把輸入特征切成等寬的stripes來得到

stripe 的寬度非常重要:因為該寬度決定了本文算法的模型建模能力和計算速度的平衡

作者如果確定切分的寬度:通過網絡的寬度來確定,即淺層的寬度小,深層的寬度大。

  • 大寬度能夠保證元素之間的 long-range 關聯的保留
  • 更好的保證網絡的容量
  • 較少的提高計算復雜度

如何并行進行水平和垂直的 attention 計算:

作者將多頭注意力分成并行的 groups,并且對不同的 group 使用不同的 self-attention 操作方式。

這種并行的機制沒有引入額外的計算量,并且能夠提高參與self-attention計算的面積。

Horizontal and Vertical Stripes:

對于水平 stripe self-attention,輸入 X 被均分成無重疊的水平 stripe,寬度都為swswsw,每個 stripes 包含 sw×Wsw \times Wsw×W 個 token,此處 swswsw 為 stripe 的寬度,且可以用來平衡模型學習效果和計算復雜度。

假設第 k 個 head 的 q/k/v 維度都為 dkd_kdk?,則第 k 個 head 的水平 stripes self-attention 的輸出為:

  • WQ,WK,WV∈RC×dkW^Q, W^K, W^V \in R^{C\times d_k}WQ,WK,WVRC×dk? 分別為 q/k/v 的投影矩陣,dkd_kdk?C/KC/KC/K
  • 豎直 stripe self-attention 計算方式類似,第 k 個head的輸出定義為 V?Attentionk(X)V-Attention_k(X)V?Attentionk?(X)

假設圖像沒有帶方向的偏置,作者將 K 個 heads 分成兩個 group,每個 group 有 K/2K/2K/2 個heads,第一個group進行水平 stripe self-attention,第二個 group 進行垂直 stripe self-attention,最后將兩者的輸出進行concat。

  • WO∈RC×CW^O \in R^{C \times C}WORC×C 是影射矩陣,負責將 self-attention 的輸出影射為目標輸出維度

計算復雜度分析:

CSWin 的計算復雜度如下:

  • 對于大分辨率輸入, H 、W 一般在淺層會大于 C,在深層會小于 C
  • 作者在淺層選擇較小的 swswsw,在深層選擇較大的 swswsw,也就是說調整 swswsw 能夠靈活高效的在深層擴大每個token的 attention 面積。為了中間的特征圖能夠被 swswsw整除(輸入為 224),對于 4 個stage,swswsw 分別為 1, 2, 7, 7。

Locally-Enhanced Positional Encoding

由于 self-attention 是對排列方式不敏感的,會忽略 2D 圖像的位置信息。

現有的很多方法都為了把位置信息加回來而做了很多工作:

  • APE[57] 和 CPE[13] 在輸入每個 Transformer block之前,把位置信息加到了每個 token 上
  • RPE[47] 和本文的 LePE 在每個 Transformer block 內融合了位置信息
  • 但不同于 RPE 把位置信息加到 attention 計算時, LePE 使用了更直接的方式,并且利用了線性映射 value 之上的位置信息

假設不同 value viv_ivi?vjv_jvj? 之間的邊緣可以用向量 eijv∈Ee_{ij}^v \in Eeijv?E 來表示,則:

如果計算 E 中的所有關聯信息,則計算量很大,作者假設對應特定的元素,最重要的位置信息來源于其周圍的鄰域,所以作者提出了一種 locally-enhanced positional encoding(LePE),并且聯合深度可分離卷積來作用于 value VVV

3.3 CSWin Transformer Block

由上述的 self-attention 機制和 position embedding 機制組成的 CSWin Transformer block 的形式如下:

3.4 變體

為了更好的和其他 Transformer baseline 進行對比,作者建立了 CSWin 的不同變體,這些變體的不同在于改變了base channel 的通道數和 transformer block 的個數,如表 1 所示:

  • CSWin-T (Tiny)
  • CSWin-S (Small)
  • CSWin-B (Base)
  • CSWin-L (Large)

在所有變體中,每個 MLP 的 expansion ratio 都為4

前三個變體的 4 個stage 的 head 個數都為 2,4,8,16,最后一個變體的 head 數為 6,12,24,48。

四、效果

作者在 ImageNet,COCO,ADE20K上分別做了分類,檢測,分割的實驗。

總結

以上是生活随笔為你收集整理的【Transformer】CSWin Transformer: A General Vision Transformer Backbone with Cross-Shaped Windows的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。