<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>

          如何將Vision Transformer應(yīng)用在移動端?

          共 1949字,需瀏覽 4分鐘

           ·

          2021-09-04 01:10




          【GiantPandaCV導(dǎo)語】

          Vision Transformer在移動端應(yīng)用的探索和改進(jìn),提出了不規(guī)則Patch嵌入自適應(yīng)Patch融合模塊有效提升了VIT在移動端的性能表現(xiàn),在DeiT基礎(chǔ)上提升了9個百分點(diǎn)。



          1前言

          在本次工作中,研究了移動端的Vision Transformer模型,猜想Vision Transformer Block中的MSA(多頭注意力)和FFN(前饋層)更適合處理High-level的信息。

          我們提出的irregular patch embedding能在patch中以不同的感受野,提取豐富的信息。

          最終這些處理過的patch經(jīng)過adaptive patch merging模塊得到最終分類結(jié)果。經(jīng)過這些改進(jìn),我們在DeiT的baseline基礎(chǔ)上,能夠提升9%的精度,并且也超越了其他Vision Transformer模型。

          2簡介

          在現(xiàn)有的Vision Transformer模型上,我們發(fā)現(xiàn)降低模型的FLOPS,其性能會嚴(yán)重下降。

          以DeiT為例,從DeiT-Base到DeiT-Small,FLOPS降為原來的1/4,性能損失了2%

          而從DeiT-Small到DeiT-Tiny,F(xiàn)LOPS也是降為原來的1/4,但是性能損失了7%,其他的vit架構(gòu)也是類似。

          所以我們猜測這些架構(gòu)都是朝著有較強(qiáng)的特征提取能力和避免過擬合能力的大模型進(jìn)行優(yōu)化,從而導(dǎo)致信息提取效率較低。

          ViT具有兩個重要的模塊:

          1. MSA多頭注意力,用于各個獨(dú)立Patch之間的交互,能夠整合high-level信息,但是不能提取patch內(nèi)的low-level信息
          2. FFN,有多個全連接層組成,對于提取low-level圖像特征并不高效

          也有一些ViT架構(gòu)嘗試將CNN的金字塔式架構(gòu)引入(如swin,pvt),但在該工作里,我們展示了瓶頸可能并不在MSA和FFN這里。

          本文通過改進(jìn)Patch Embedding和Patch Merging,得到了不小的提升。

          3Irregular Patch Embedding

          分三步來介紹Irregular Patch Embedding的設(shè)計(jì)

          1. 使用卷積來做Patch Embedding,現(xiàn)有的論文都已經(jīng)證明了卷積擅于提取low-level局部特征,為了進(jìn)一步壓縮計(jì)算量,我們使用了depthwise+pointwise的組合。
          2. 發(fā)現(xiàn)原始的14x14的patch對于移動端vit是難以處理的。一方面,如果我們想減少patch的通道數(shù)和Block的數(shù)目,那剩下的模塊是無法處理如此多的patch。另一方面,我們可以通過減少patch數(shù)目,提高通道數(shù),來得到一個平衡。
          3. DeiT把圖片切為14x14patch,每個patch都有同樣的感受野。而對于不同的圖片,可能需要high-level信息(比如區(qū)分狗和貓),也有可能需要low-level信息(比如區(qū)分懸崖和湖邊)

          對此,設(shè)計(jì)了三個并行的分支,分別得到7x7, 4x4, 1x1個Patch,然后拼到一起

          這些分支都是inverted-residual-block+SE模塊,并且使用不同大小的stride來提取特征

          筆者認(rèn)為如果想要證明Irregular patch embedding的有效性,那么就應(yīng)該用普通的卷積層來做,而不是用這種復(fù)雜的結(jié)構(gòu)。

          4Adaptive Patch Fusion

          在DeiT里設(shè)置了額外的一個class token,這個token會跟其他token進(jìn)行交互,最后分類只選用class token來得到分類結(jié)果。

          當(dāng)然也有一些其他架構(gòu),通過global average pooling的方式來聚合各token的信息用于分類。

          實(shí)驗(yàn)發(fā)現(xiàn)class token表現(xiàn)并不好,猜想當(dāng)Transformer block數(shù)量有限時,class token不能聚集足夠的信息。

          因此設(shè)計(jì)了一種自適應(yīng)的融合機(jī)制:

          首先給所有圖像設(shè)定一個全局的權(quán)重,然后再通過一系列mlp全連接層,生成權(quán)重。最后這兩個權(quán)重相乘,并輸出最終結(jié)果。

          5實(shí)驗(yàn)

          可以看到最后實(shí)驗(yàn)的提升也是蠻大的,關(guān)于Patch Embedding也做了相關(guān)消融實(shí)驗(yàn),來證明有效性。

          關(guān)于positional encoding也做了相關(guān)實(shí)驗(yàn),發(fā)現(xiàn)結(jié)果差的并不多,作者猜想在irregular patch embedding階段,已經(jīng)編碼了足夠多的位置信息進(jìn)去了。


          END


          加入GiantPandaCV交流群,探討CV/算法/部署/論文



          瀏覽 72
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <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>
                  亚洲性爱电影在线 | 西西人体大胆4444w w | 小宝寻花一字马 | 黄片视频在线免费播放 | 可以免费观看的黄色视屏 |