【CVPR2022】Lite Vision Transformer with Enhanced Self-Attention
論文:https://readpaper.com/paper/633541619879256064
代碼:https://github.com/Chenglin-Yang/LVT
1、研究動機
盡管ViT模型在各種視覺任務中效果顯著,但是目前輕量級的ViT模型在局部區域效果不理想,作者認為:自注意力機制在淺層網絡有局限性(Self-attention mechanism is limited in shallower and thinner networks)。為此,作者提出一種 light yet effective vision transformer 可以應用于移動設備(Lite Vision Transformer, LVT),具有標準的 four-stage 結構,但是和 MobileNetV2 和 PVTv2-B0 含有相同的參數量。 作者主要提出了兩種新的 attention 模塊:Convolutional Self-Attention (CSA) 和 Recursive Atrous Self-Attention (RASA) 。下面分別介紹 CSA 模塊和 RASA 模塊。
2、Convolutional Self-Attention (CSA)
流程如上圖所示,基本流程是:
- 計算similarity(即代碼中的attn): 將 (hw/4, c) 的矩陣通過1x1卷積變為 (hw/4, k^2, k^2)。
- 計算V: 生成一個(hw/4, c, k^2)的矩陣,然后reshape通過1x1的卷積改變通道數(圖中為BMM),得到(hw/4, k^2, c_out)的矩陣。
- 矩陣乘法,similarity 和 v 相乘,得到 (hw/4, k^2, c_out)
- 使用 fold 變換得到輸出
從代碼上來看,CSA 的代碼比 VOLO 更復雜,但本質上貌似沒有不同(也許是我的理解還不到位)。而且,我感覺 CSA 的代碼沒有 VOLO 簡潔。感興趣的可以參考《VOLO: Vision Outlooker for Visual Recognition》這篇論文及網上代碼。
3、Recursive Atrous Self-Attention (RASA)
首先介紹 ASA,與普通的attention計算不同的地方在于:作者在計算Q時,采用了多尺度空洞卷積。卷積權重共享,降低了參數。
同時,作者使用了 recursive 操作。每個block里,ASA 迭代兩次。
4、實驗分析
網絡采用了4階段的架構。第一階段使用CSA,其他階段使用RASA。
在 ImageNet 的實驗結果表明,當參數量與 MobileNetV2 和 PVTv2-B0 相當時,本方法準確率顯著較高。同時,增大到與ResNet50參數量接近時,本方法性能顯著超越了當前方法。
其它部分可以參考作者論文,這里不再多說。
總結
以上是生活随笔為你收集整理的【CVPR2022】Lite Vision Transformer with Enhanced Self-Attention的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VoxelNeXt:用于3D检测和跟踪的
- 下一篇: 渗透测试工程师面试题目大全