首页 > 其他分享 >CeiT:商汤提出结合CNN优势的高效ViT模型 | 2021 arxiv

CeiT:商汤提出结合CNN优势的高效ViT模型 | 2021 arxiv

时间:2024-05-23 13:18:02浏览次数:27  
标签:mathbb Transformer arxiv times token ViT CeiT CNN

论文提出CeiT混合网络,结合了CNN在提取低维特征方面的局部性优势以及Transformer在建立长距离依赖关系方面的优势。CeiT在ImageNet和各种下游任务中达到了SOTA,收敛速度更快,而且不需要大量的预训练数据和额外的CNN蒸馏监督,值得借鉴

来源:晓飞的算法工程笔记 公众号

论文: Incorporating Convolution Designs into Visual Transformers

Introduction


  在视觉领域中,纯Transformer架构往往需要大量的训练数据或额外的监督来达到与CNN相当的性能。为了克服这些限制,论文对直接使用Transformer架构的潜在缺点进行了分析,发现Transformer主要缺乏了CNN的平移不变性以及局部性。于是,论文将CNN在提取低维特征方面的局部性优势以及Transformer在建立长距离依赖关系方面的优势进行结合,提出了Convolution-enhanced image Transformer(CeiT)混合网络。

  论文对原生Transformer做了三处修改:

  • 设计了Image-to-Tokens(I2T)模块,从生成的低维特征中提取token序列,而不是将原始输入图像直接分割成token序列。
  • 提出Locally-enchanced Feed-Forward(LeFF)层替换每个encoder中的feed-forward层,LeFF能够促进相邻token之间的相关性。
  • 在Transformer的顶部附加Layer-wise Class token Attention(LCA),能够综合多层特征作为最终输出。

  在ImageNet和七个下游任务的实验结果表明,CeiT的性能和泛化能力比之前的Transformer和CNN更优,而且不需要大量的训练数据和额外的CNN蒸馏。此外,CeiT模型的收敛性更好,训练迭代次数减少了3倍,极大地降低了训练成本。

Methodology


Image-to-Tokens with Low-level Features

  为了优化初始token序列的生成,论文提出了简单而有效的Imageto-Tokens(I2T)模块,从生成的低维特征中提取token序列,而不是将原始输入图像直接分割。如图2所示,I2T模块是由卷积层和最大池化层组成的轻量级stem结构,卷积层后面会进行BN操作。整个模块可表示为:

其中\(x^{'}\in \mathbb{R}^{\frac{H}{S}\times \frac{W}{S}\times D}\),\(S\)为卷积的stride参数,\(D\)为卷积输出的通道数。

  在得到输出特征图后,根据空间维度从中切割图像块序列。为了保持生成的标记数量与ViT一致,论文将图像块的分辨率缩减为\((\frac{P}{S} ,\frac{P}{S})\),在实践中设定\(S = 4\)。最后,通过embedding操作将图像块序列转换为token序列。

  I2T模块能够充分发挥CNN在提取低层次特征方面的优势,并且能够通过缩小图像块的大小来降低embedding的训练难度。与用ResNet-50来提取后两个阶段的高层特征的混合类型Transformer对比,I2T模块要轻量得多。

Locally-Enhanced Feed-Forward Network

  为了将CNN提取局部信息的优势与Transformer建立长距离依赖关系的能力相结合,论文提出了Locally-enhanced FeedForward Network(LeFF)层。在每个encoder模块中,保持MHSA模块不变来保留捕捉token间全局相似性的能力,将原来的前馈网络层用LeFF取代,LeFF的结构如图3。

  LeFF模块的执行如公式5-11所示,每条公式对应以下一条处理:

  • 定义MSA模块生成的输出为\(x^h_t \in\mathbb{R}^{(N+1)\times C}\),将其区分为图像token序列\(x^h_p\in \mathbb{R}^{N\times C}\)和一个class token \(x^h_c\in \mathbb{R}^C\)。
  • 对图像token序列进行线性投影,扩展到更高维度的\(x^{l1}_p\in \mathbb{R}^{N\times (e×C)}\),其中\(e\)是扩展率。
  • 根据相对于原始图像的位置,将图像token序列进行空间维度的还原,得到还原特征图\(x^s_p\in \mathbb{R}^{\sqrt{N}\times \sqrt{N}\times(e\times C)}\)。
  • 对还原的特征图进行内核大小为\(k\)的深度卷积处理,增强每个token与相邻的\(k^2 - 1\)个token的特征相关性,得到增强特征图\(x^d_p\in \mathbb{R}^{\sqrt{N}\times \sqrt{N}\times(e\times C)}\)。
  • 将还原特征图中拉平为\(x^f_p\in \mathbb{R}^{N\times (e\times C)}\)的序列。
  • 将序列中的token映射回初始维度,得到最终的token序列\(x^{l2}_p\in \mathbb{R}^{N\times C}\),
  • 将最终的token序列与class tken连接,得到最终输出\(x^{h+1}_t\in \mathbb{R}^{(N+1)\times C}\)。

需要注意,在每次线性投影和深度卷积之后,都会增加进行BatchNorm和GELU处理。

Layer-wise Class-Token Attention

  在CNN中,特征图的感受域随着网络的加深而增加。在ViT中也有类似的现象,自注意计算范围随深度增加而增加。因此,特征的表达在不同层会有所不同。为了整合不同层的信息,论文设计了Layer-wise Class-token Attention(LCA)模块。标准的ViT只使用第\(L\)层(最后)的class token \(x^{(L)}_c\)作为最终特征,而LCA则综合不同层的class token作为最终特征。

  如图4所示,LCA将一串class token \(X_c = [x^{(1)}_c,\cdots,x^{(l)}_c,\cdots,x^{(L)}_c]\)作为输入,其中\(l\)表示层深度。LCA遵循Transformer block的标准实现,包含一个MSA和一个FFN层。LCA的MSA层只计算第\(L\)个class token \(x^{(L)}_c\)和其他class token之间的单向相似性,这样可以将计算复杂度从\(O(n^2)\)降低到\(O(n)\)。聚合后的\(x^{(L)}_c\)的对应值被送入FFN层,从而得到最终特征\(x^{(L)^{'}}_c\)。

Computational Complexity Analysis

  论文设计了不同大小的CeiT模型,并对修改所带来的额外计算复杂性(以FLOPs为单位)进行了分析。一般来说,在计算成本略有增加的情况下,CeiT可以有效地结合CNN和Transformer的优势获得更高的性能和更好的收敛性,具体的计算复杂度分析可以看看原文。

Experiment


  训练配置。

  使用的数据集。

  ImageNet结果。

  ImageNet预训练迁移结果。

  I2T模块参数的对比实验。

  LeFF模块参数的对比实验。

  不同模型大小在不同周期下的收敛效果对比。

Conclusion


  论文提出CeiT混合网络,结合了CNN在提取低维特征方面的局部性优势以及Transformer在建立长距离依赖关系方面的优势。CeiT在ImageNet和各种下游任务中达到了SOTA,收敛速度更快,而且不需要大量的预训练数据和额外的CNN蒸馏监督,值得借鉴。



如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

work-life balance.

标签:mathbb,Transformer,arxiv,times,token,ViT,CeiT,CNN
From: https://www.cnblogs.com/VincentLee/p/18208216

相关文章

  • Electron-Vue3-Vadmin后台系统|vite2+electron桌面端权限管理系统
    Electron-Vue3-Vadmin后台系统|vite2electron桌面上端管理权限智能管理系统根据vite2.xelectron12桌面上端后台管理智能管理系统Vite2ElectronVAdmin。继上一次共享vite2融合electron构建后台框架,此次产生的是全新开发设计的跨桌面上中后台管理管理权限智能管理系统。应用全新......
  • MITIT 2024 Spring Invitational Finals
    A.DistanceMod5考虑一个点\(x\)向外的最短路树,如果两个点不满足\(dis_{i,x}=(dis_{j,x}+1)\bmod5\)或\(dis_{j,x}=(dis_{i,x}+1)\bmod5\),那么这两个点一定没有连边,否则可能有连边。去除掉所有不可能的连边,剩下的连上边,发现这样是最优的。然后floydcheck......
  • uniapp-vue3-oadmin手机后台实例|vite5.x+uniapp多端仿ios管理系统
    原创vue3+uniapp+uni-ui跨端仿ios桌面后台OA管理模板Uni-Vue3-WeOS。uniapp-vue3-os一款基于uni-app+vite5.x+pinia等技术开发的仿ios手机桌面OA管理系统。实现了自定义桌面栅格磁贴布局、多分屏滑动管理、自定义桌面小部件、辅助触控悬浮球等功能。支持编译到H5+小程序端+App端......
  • vite创建的react项目如何兼容低版本安卓,低版本安卓不支持es6语法
    Vite是一个现代化的前端构建工具,默认情况下,它会生成基于ES6+的代码。这对于大多数现代浏览器来说是没有问题的,但对于一些较旧版本的安卓浏览器可能会遇到兼容性问题。为了使Vite创建的React项目在低版本的安卓设备上也能正常运行,我们需要确保最终的构建产物是兼容旧版浏览......
  • T2T-ViT:更多的局部结构信息,更高效的主干网络 | ICCV 2021
    论文提出了T2T-ViT模型,引入tokens-to-token(T2T)模块有效地融合图像的结构信息,同时借鉴CNN结果设计了deep-narrow的ViT主干网络,增强特征的丰富性。在ImageNet上从零训练时,T2T-ViT取得了优于ResNets的性能MobileNets性能相当来源:晓飞的算法工程笔记公众号论文:Tokens-to-Token......
  • vitepress使用createContentLoader时遇到["vitepress" resolved to an ESM file. ESM
    在使用vitepress构建一个所有博客的概览页的时候,使用到了createContentLoader这个api,但是在index.data.ts中定义并导出后,在md文件中调用遇到了下面这个问题:Buildfailedwith1error:node_modules/esbuild/lib/main.js:1374:27:ERROR:[plugin:externalize-deps]"vitepress......
  • vitepress 如何更换 favicon.ico
    favicon.ico它出现在浏览器标签页上,是网站的标识之一。准备图标首先,你需要准备一个符合您要求的图标。通常,favicon.ico使用的是.ico格式的图标文件,大小为16x16像素。你可以用图标编辑器或在线图标生成器创建一个.ico文件。替换默认的favicon.ico找到你的docs目录,如果......
  • [plugin:vite:import-analysis] Failed to resolve import "qs" from "src/utils/tang
    [plugin:vite:import-analysis]Failedtoresolveimport"qs"from"src/utils/tangRequest.ts".Doesthefileexist?这个报错是由Vite插件产生的,提示无法从指定路径 src/utils/ 解析导入 qs。qs 是一个常用的查询字符串解析库,通常用于处理URL的查询参数。可能的原......
  • vue3+vite,写动态路由时候遇到的坑
    import导入一直报错,看了网上说import不行要写成 require之类的,都试了个遍,结果还是不行。一个很容易犯的错误:理所当然的以为alias是可以使用的。事实上写全相对路径就可以了!!! letr=awaitapis['common/getRouteList']()constlist=r.map((t)=>({id:t.id,pid......
  • vuejs3.0 从入门到精通——vite+vue3+ts 显示找不到模块“../views/HomeView.vue”或
    vite+vue3+ts显示找不到模块“../views/HomeView.vue”或其相应的类型声明。ts(2307)一、在根目录下的env.d.ts文件(没有就自己创建)二、在env.d.ts文件中添加以下代码declaremodule'*.vue'{importtype{DefineComponent}from'vue'constcomponent:DefineCo......