<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          全面超越Swin Transformer | Facebook用ResNet思想升級MViT

          共 6753字,需瀏覽 14分鐘

           ·

          2021-12-05 08:31

          423696404e046a3916ec3a5ad971b329.webp
          f4740e1faa53fbaef9b9bd2e744572b0.webp

          在本文中研究了多尺度Vision Transformer(MViT)作為圖像和視頻分類以及目標(biāo)檢測的統(tǒng)一架構(gòu)。作者提出了一個MViT的改進(jìn)版本,它結(jié)合了分解的相對位置嵌入和池化殘差連接。

          作者以五種大小實例化了這種架構(gòu),并在ImageNet分類,COCO檢測和動力學(xué)視頻識別方面進(jìn)行評估,它們優(yōu)于之前的工作。作者還進(jìn)一步比較了MViT的pooling attention和window attention,前者在準(zhǔn)確性/計算方面優(yōu)于后者。

          MViT在3個領(lǐng)域具有最先進(jìn)的性能:ImageNet分類準(zhǔn)確率為88.8%,COCO目標(biāo)檢測準(zhǔn)確率為56.1AP%,Kinetics-400視頻分類準(zhǔn)確率為86.1%。

          1簡介

          為不同的視覺識別任務(wù)設(shè)計架構(gòu)一直以來都很困難,而采用最廣泛的架構(gòu)是那些結(jié)合了簡單和高效的架構(gòu),例如VGGNet和ResNet。最近,Vision Transformers(ViT)已經(jīng)展現(xiàn)出了有前途的性能,并可以與卷積神經(jīng)網(wǎng)絡(luò)競爭,最近也有很多研究提出了很多的改進(jìn)工作,將它們應(yīng)用到不同的視覺任務(wù)。

          雖然ViT在圖像分類中很受歡迎,但其用于高分辨率目標(biāo)檢測和時空視頻理解任務(wù)仍然具有挑戰(zhàn)性。視覺信號的密度對計算和內(nèi)存需求提出了嚴(yán)峻的挑戰(zhàn),因為在基于Vision Transformer的模型的Self-Attention Block中,這些信號的復(fù)雜性呈二次型。

          采用了兩種不同的策略來解決這個問題:

          1. Window Attention:在 Window 中進(jìn)行局部注意力計算用于目標(biāo)檢測;
          2. Pooling Attention:在 Self-Attention 之前將局部注意聚合在一起。

          而Pooling Attention為多尺度ViT帶來了很多的啟發(fā),可以以一種簡單的方式擴展ViT的架構(gòu):它不是在整個網(wǎng)絡(luò)中具有固定的分辨率,而是具有從高分辨率到低分辨率的多個階段的特性層次結(jié)構(gòu)。MViT是為視頻任務(wù)設(shè)計的,它具有最先進(jìn)的性能。

          在本文中,作者做了兩個簡單的改進(jìn)以進(jìn)一步提高其性能,并研究了MViT作為一個單一的模型用于跨越3個任務(wù)的視覺識別:圖像分類、目標(biāo)檢測和視頻分類,以了解它是否可以作為空間和時空識別任務(wù)的一般視覺Backbone(見圖1)。

          a77c050867bf010b2278fe13911e8514.webp圖1 改進(jìn)版MViT

          本文改進(jìn)MViT體系結(jié)構(gòu)主要包含以下內(nèi)容:

          1. 創(chuàng)建了強大的Baseline,沿著2個軸提高pooling attention:使用分解的位置距離將位置信息注入Transformer塊;通過池化殘差連接來補償池化步長在注意力計算中的影響。上述簡單而有效的改進(jìn)帶來了更好的結(jié)果;

          2. 將改進(jìn)的MViT結(jié)構(gòu)應(yīng)用到一個帶有特征金字塔網(wǎng)絡(luò)(FPN)的Mask R-CNN,并將其應(yīng)用于目標(biāo)檢測和實例分割;

          作者研究MViT是否可以通過pooling attention來處理高分辨率的視覺輸入,以克服計算和內(nèi)存成本。

          實驗表明,pooling attention比 local window attention(如Swin)更有效。

          作者進(jìn)一步開發(fā)了一個簡單而有效的Hybrid window attention方案,可以補充pooling attention以獲得更好的準(zhǔn)確性和計算折衷。

          1. 在5個尺寸的增加復(fù)雜性(寬度,深度,分辨率)上實例化了架構(gòu),并報告了一個大型多尺度ViT的實踐訓(xùn)練方案。該MViT變體以最小的改進(jìn),使其可以直接應(yīng)用于圖像分類、目標(biāo)檢測和視頻分類。

          實驗表明,Improved MViT在ImageNet-21K上進(jìn)行預(yù)處理后,準(zhǔn)確率達(dá)到了88.8%(不進(jìn)行預(yù)處理的準(zhǔn)確率為86.3%);僅使用Cascade Mask R-CNN在COCO目標(biāo)檢測AP可以達(dá)到56.1%。對于視頻分類任務(wù),MViT達(dá)到了前所未有的86.1%的準(zhǔn)確率;對于Kinetics-400和Kinetics-600分別達(dá)到了86.1%和87.9%,并在Kinetics-700和Something-Something-v2上也分別達(dá)到了79.4%和73.7%的精度。

          2回顧一下多尺度ViT

          MViT的關(guān)鍵思想是為low-level和high-level可視化建模構(gòu)建不同的階段,而不是ViT中的單尺度塊。如圖2所示MViT從輸入到輸出的各個階段緩慢地擴展通道D,同時降低分辨率L(即序列長度)。

          b2ca416b310abf5811529e62c7e7edfd.webp圖2 MViT

          為了在Transformer Block內(nèi)進(jìn)行降采樣,MViT引入了Pooling Attention。

          0cc3be40bbc4fe16ca549f31728f0103.webp圖3 Pooling Attention

          具體來說,對于一個輸入序列,對它應(yīng)用線性投影,,然后是Pool運算(P),分別用于query、key和value張量:

          5565e2fff340d796354bcb991c0a5d31.webp

          其中,的長度可以通過來降低,K和V的長度可以通過和來降低。

          隨后,pooled self-attention可以表達(dá)為:

          b28edf4042573facc07b9c46ff092b10.webp

          計算長度靈活的輸出序列。注意,key和value的下采樣因子和可能與應(yīng)用于query序列的下采樣因子不同。

          Pooling attention可以通過Pooling query Q來降低MViT不同階段之間的分辨率,并通過Pooling key K和value V來顯著降低計算和內(nèi)存復(fù)雜度。

          Pooling Attention的Pytorch實現(xiàn)如下:

          #?pool通常是MaxPool3d或AvgPool3d
          def?attention_pool(tensor,?pool,?thw_shape,?has_cls_embed=True,?norm=None):
          ????if?pool?is?None:
          ????????return?tensor,?thw_shape
          ????tensor_dim?=?tensor.ndim
          ????if?tensor_dim?==?4:
          ????????pass
          ????elif?tensor_dim?==?3:
          ????????tensor?=?tensor.unsqueeze(1)
          ????else:
          ????????raise?NotImplementedError(f"Unsupported?input?dimension?{tensor.shape}")

          ????if?has_cls_embed:
          ????????cls_tok,?tensor?=?tensor[:,?:,?:1,?:],?tensor[:,?:,?1:,?:]

          ????B,?N,?L,?C?=?tensor.shape
          ????T,?H,?W?=?thw_shape
          ????tensor?=?(tensor.reshape(B?*?N,?T,?H,?W,?C).permute(0,?4,?1,?2,?3).contiguous())
          ????#?執(zhí)行pooling操作
          ????tensor?=?pool(tensor)

          ????thw_shape?=?[tensor.shape[2],?tensor.shape[3],?tensor.shape[4]]
          ????L_pooled?=?tensor.shape[2]?*?tensor.shape[3]?*?tensor.shape[4]
          ????tensor?=?tensor.reshape(B,?N,?C,?L_pooled).transpose(2,?3)
          ????if?has_cls_embed:
          ????????tensor?=?torch.cat((cls_tok,?tensor),?dim=2)
          ????if?norm?is?not?None:
          ????????tensor?=?norm(tensor)
          ????#?Assert?tensor_dim?in?[3,?4]
          ????if?tensor_dim?==?4:
          ????????pass
          ????else:??#??tensor_dim?==?3:
          ????????tensor?=?tensor.squeeze(1)
          ????return?tensor,?thw_shape

          3Improved MViT

          3.1 改進(jìn)Pooling Attention

          1905ff981896d427368f681d38eb41e8.webp圖4 改進(jìn)版Pooling Attention

          1、分解相對位置嵌入

          雖然MViT在建模Token之間的交互方面已經(jīng)顯示出了潛力,但它們關(guān)注的是內(nèi)容,而不是結(jié)構(gòu)。時空結(jié)構(gòu)建模僅依靠絕對位置嵌入來提供位置信息。這忽略了視覺的平移不變性的基本原則。也就是說,即使相對位置不變,MViT建模兩個patch之間交互的方式也會隨著它們在圖像中的絕對位置而改變。為了解決這個問題,作者將相對位置嵌入(相對位置嵌入只依賴于Token之間的相對位置距離)納入到Pooled Self-Attention 計算中。

          這里將2個輸入元素和之間的相對位置編碼為位置嵌入,其中和表示元素和的空間(或時空)位置,然后將兩兩編碼嵌入到Self-Attention模塊中:

          73f87891d0648f84a1fbe0bd118907db.webp816322e9af6befc30014aaf06425fb59.webp

          然而,在O(TWH)中possible embeddings的數(shù)量規(guī)模,計算起來比較復(fù)雜。為了降低復(fù)雜度,作者將元素和之間的距離計算沿時空軸分解為:

          8ef87325793906c529b72128bae741f4.webp

          其中、、為沿高度、寬度和時間軸的位置嵌入,、和分別表示Token 的垂直、水平和時間位置。注意,這里的是可選的,僅在視頻情況下需要支持時間維度。相比之下,分解嵌入將學(xué)習(xí)嵌入的數(shù)量減少到O(T+W+H),這對早期的高分辨率特征圖有很大的影響。

          2、池化殘差連接

          pooled attention對于減少注意力塊中的計算復(fù)雜度和內(nèi)存需求是非常有效的。MViT在K和V張量上的步長比Q張量的步長大,而Q張量的步長只有在輸出序列的分辨率跨階段變化時才下采樣。這促使將殘差池化連接添加到Q(pooled后)張量增加信息流動,促進(jìn)MViT中pooled attention Block的訓(xùn)練和收斂。

          在注意力塊內(nèi)部引入一個新的池化殘差連接,如圖4所示。具體地說,將pooled query張量添加到輸出序列z中,因此將式(2)重新表述為:

          549fcc287e4338bda75ff2e864bb1ed8.webp

          注意,輸出序列Z與pooled query張量的長度相同。

          消融實驗表明,對于池化殘差連接,query的pool運算符和殘差路徑都是必需的。由于上式中添加池化的query序列成本較低,因此在key和value pooling中仍然具有大跨步的低復(fù)雜度注意力計算。

          3.2 MViT用于目標(biāo)檢測

          1、改進(jìn)版MViT融合FPN

          MViT的層次結(jié)構(gòu)分4個階段生成多尺度特征圖可以很自然地集成到特征金字塔網(wǎng)絡(luò)中(FPN)為目標(biāo)檢測任務(wù),如圖5所示。在FPN中,帶有橫向連接的自頂向下金字塔為MViT在所有尺度上構(gòu)建了語義的特征映射。通過使用FPN與MViT Backbone將其應(yīng)用于不同的檢測架構(gòu)(例如Mask R-CNN)。

          afdd6d91c43d51d7efb796772050c647.webp圖5 融合FPN結(jié)構(gòu)

          2、Hybrid window attention

          Transformers中的self-attention具有與token數(shù)量的二次復(fù)雜度。這個問題對于目標(biāo)檢測來說更加嚴(yán)重,因為它通常需要高分辨率的輸入和特征圖。在本文中研究了兩種顯著降低這種計算和內(nèi)存復(fù)雜度的方法:

          1. 引入Pooling Attention
          2. 引入Window Attention

          Pooling Attention和Window Attention都通過減少計算Self-Attention時query、key和value的大小來控制Self-Attention的復(fù)雜性。

          但它們的本質(zhì)是不同的:Pooling Attention通過局部聚合的向下采樣匯集注意力池化特征,但保持了全局的Self-Attention計算,而Window Attention雖然保持了分辨率,但通過將輸入劃分為不重疊的window,然后只在每個window中計算局部的Self-Attention。

          這兩種方法的內(nèi)在差異促使研究它們是否能夠在目標(biāo)檢測任務(wù)中結(jié)合。

          默認(rèn)Window Attention只在Window內(nèi)執(zhí)行局部Self-Attention,因此缺乏跨window的連接。與Swin使用移動window來緩解這個問題不同,作者提出了一個簡單的Hybrid window attention(Hwin)來增加跨window的連接。

          Hwin在一個window內(nèi)計算所有的局部注意力,除了最后3個階段的最后塊,這些階段都饋入FPN。通過這種方式,輸入特征映射到FPN包含全局信息。

          消融實驗顯示,這個簡單的Hwin在圖像分類和目標(biāo)檢測任務(wù)上一貫優(yōu)于Swin。進(jìn)一步,將證明合并pooling attention和Hwin在目標(biāo)檢測方面實現(xiàn)了最好的性能。40bdb93795f85b6d5c6c772f13da2d9c.webp

          fb112054a81fe3ed02555cebdf9f190d.webp

          3.3 MViT用于視頻識別

          1、從預(yù)訓(xùn)練的MViT初始化

          與基于圖像的MViT相比,基于視頻的MViT只有3個不同之處:

          1. patchification stem中的投影層需要將輸入的數(shù)據(jù)投影到時空立方體中,而不是二維的patch;
          2. 現(xiàn)在,pool運算符對時空特征圖進(jìn)行池化;
          3. 相對位置嵌入?yún)⒖紩r空位置。

          由于1和2中的投影層和池化操作符默認(rèn)由卷積層實例化,對CNN的空洞率初始化為[8,25]。具體地說,作者用來自預(yù)訓(xùn)練模型中的2D conv層的權(quán)重初始化中心幀的conv kernel,并將其他權(quán)重初始化為0。

          對于3利用在Eq.4中分解的相對位置嵌入,并簡單地從預(yù)訓(xùn)練的權(quán)重初始化空間嵌入和時間嵌入為0。

          4.4 MViT架構(gòu)變體

          本文構(gòu)建了幾個具有不同數(shù)量參數(shù)和FLOPs的MViT變體,如表1所示,以便與其他vision transformer進(jìn)行公平的比較。具體來說,通過改變基本通道尺寸、每個階段的塊數(shù)以及塊中的head數(shù),為MViT設(shè)計了5種變體(Tiny、Small、Base、Large和Huge)。

          a637cec64ad7fe2432a81810fe545cb1.webp

          遵循MViT中的pooling attention設(shè)計,本文在所有pooling attention塊中默認(rèn)采用Key和Value pooling,pooling attention blocks步長在第一階段設(shè)置為4,并在各個階段自適應(yīng)地衰減stride。

          4實驗

          4.1 消融實驗

          1、不同的注意力機制

          7bd81f89635e375ae4289d47b498a563.webpbbfdbb7188f825f6eb1ef72db4eac44a.webp

          通過上表關(guān)于ImageNet分類和COCO目標(biāo)檢測的實驗可以看出,本文提出的HSwin注意力與Pooling可以得到最好性能的結(jié)果。

          2、位置嵌入

          7a0cabf58665c208603818dc25b9fc78.webp

          上表比較了不同位置嵌入??梢杂^察到:

          • 比較(2)與(1),絕對位置僅比無位置略有提高。這是因為pool操作符已經(jīng)建模了位置信息。
          • (2)比較(3,4)和(1,2),相對位置通過引入轉(zhuǎn)移不變性先驗來Pooling Attention,從而帶來收益。
          • 最后,在COCO上分解的相對位置嵌入序列比joint相對位置快3.9倍。

          3、池化殘差連接

          b0adb604f06b2a1cf90b750c03015af2.webp

          上表研究了池化殘差連接的重要性??梢钥吹剑?/p>

          • (2)簡單地添加殘差路徑可以改善這兩種情況的結(jié)果IN-1K(+0.3%)和COCO(+0.8 APbox)的成本可以忽略不計。

          • (3)使用池化殘差連接,并在所有其他層中添加Q pooled(stride=1),性能得到顯著的提升,特別是在COCO(+1.4 APbox)上。這表明在MViT中,Q pooled塊和殘差路徑都是必要的。

          • (4)僅僅添加(沒有殘差)更多的Q pooled層stride=1沒有幫助。

          4、運行時間比較

          aabe2664b003b67df183a02d179d88f5.webp

          5、FPN消融

          c44f02fd4ea404b9ab6fa1012f69a5ce.webp

          如表所示,F(xiàn)PN顯著提高了兩種Backbone的性能,而MViT-S始終優(yōu)于ViT-B。MViT-S的FPN增益(+2.9)比ViT-B(+1.5 APbox)大得多,這表明了分層多尺度設(shè)計對于密集目標(biāo)檢測任務(wù)的有效性。

          4.2 ImageNet-1K

          17299e136dbf2d97e2fa3e3996418991.webpa846ce07e7e47b38468dcbee434925c6.webp

          4.3 COCO目標(biāo)檢測

          89b2b81ccfab510005872bf2d7d3eb18.webp

          4.4 視頻識別

          6a9f9807791129fd43e04c2239b052f8.webpb51ded96ab77d65b2a59af4ec0fb3ddb.webp

          5參考

          [1].Improved Multiscale Vision Transformers for Classification and Detection

          6推薦閱讀

          5b73b92725e7b2afbf068ad70e377df2.webp

          清華大學(xué)提出ACmix | 這才是Self-Attention與CNN正確的融合范式,性能速度全面提升


          e3657c6117cac763aceced0034580b81.webp

          即插即用 | 5行代碼實現(xiàn)NAM注意力機制讓ResNet、MobileNet輕松漲點(超越CBAM)


          3d6ee7be0e1d8171a9e2c53cfcf57045.webp

          卷爆了 | 看SPViT把Transformer結(jié)構(gòu)剪成ResNet結(jié)構(gòu)?。。?/a>


          長按掃描下方二維碼添加小助手并加入交流群,群里博士大佬云集,每日討論話題有目標(biāo)檢測、語義分割、超分辨率、模型部署、數(shù)學(xué)基礎(chǔ)知識、算法面試題分享的等等內(nèi)容,當(dāng)然也少不了搬磚人的扯犢子

          長按掃描下方二維碼添加小助手。

          可以一起討論遇到的問題

          聲明:轉(zhuǎn)載請說明出處

          掃描下方二維碼關(guān)注【集智書童】公眾號,獲取更多實踐項目源碼和論文解讀,非常期待你我的相遇,讓我們以夢為馬,砥礪前行!

          36bfd97b0d632a9e3fe7b12695bb2256.webp


          瀏覽 72
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  青娱乐国产在线播放 | 无码人妻蜜桃 | 黄色视频大全在线观看 | 四虎免费看黄 | 伊人成人在线视频 |