当前位置:网站首页>【ARXIV2205】Inception Transformer
【ARXIV2205】Inception Transformer
2022-07-13 17:48:00 【AI前沿理论组@OUC】

【ARXIV2205】Inception Transformer
论文:https://arxiv.org/abs/2205.12956
代码:https://github.com/sail-sg/iFormer
1、研究动机
这个论文的核心思想仍然是:把 attention 和 CNN 相结合(谷歌的Inception),但是出发点不太一样。作者给出了VIT的 傅立叶谱,发现能量基本上集中于低频部分,对于图像中的边缘、角点等高频信息提取不足。(其实很好理解,attention本质类似于全局的加权求和,对于局部信息就有所损失了)

2、 Inception mixer
论文的主要贡献是改进了 attention ,提出了新的模块: Inception mixer。作者的想法非常直接,如下图所示,在现有的VIT结构中加入高频分支!

(1)高频分支。 可以看出,高频分支来自于经典的 Inception(如下图所示),其中的 linear 层本质就是 1x1 卷积。

对于输入的特征为 C C C个通道,将其分为 C h C_h Ch 和 C l C_l Cl 个通道,分别用于提取高频和低频特征。对于高频特征,均匀分为两部分 X h 1 X_{h1} Xh1 和 X h 2 X_{h2} Xh2(均为 C h / 2 C_h/2 Ch/2个通道),进行下面操作:
Y h 1 = FC ( MaxPool ( X h 1 ) ) Y_{h1}=\text{FC}(\text{MaxPool}(X_{h1})) Yh1=FC(MaxPool(Xh1))
Y h 2 = DwConv ( FC ( X h 2 ) ) Y_{h2}=\text{DwConv}(\text{FC}(X_{h2})) Yh2=DwConv(FC(Xh2))
(2)低频分支。 低频分支为传统的 MHSA,因为另外的分支带来了额外的计算量,因此这个分支首先进行 average pooling 操作,然后进 MHSA 计算以后再进行 upsample 操作。
最后,高频和低频的结果直接拼接在一起: Y c = Concat ( Y l , Y h 1 , Y h 2 ) Y_c=\text{Concat}(Y_l, Y_{h1}, Y_{h2}) Yc=Concat(Yl,Yh1,Yh2)。
最后,因为低频上采样操作中直接插值,导致相邻 token 之间过度平滑和相似,为了解决这一问题,作者加一个DwConv,具体为: Y = FC ( Y c + DwConv ( Y c ) ) Y=\text{FC}(Y_c+\text{DwConv}(Y_c)) Y=FC(Yc+DwConv(Yc))
3、总体架构

作者采用了当前主流的4阶段 transformer 架构,构建了 small, base, large 三个模型,具体细节如下表所示。从表中可以看出,在网络浅层阶段,高频(conv)占比重较大,低频(MHSA)占比重较小。在网络深层阶段,就反过来了。这和当前主流卷积和Transformer结合方法的结论基本一致。同时,在结论中,作者也承认,高频和低频之间的比例需要根据经验来确定,是这个方法的 limitation。

该方法在图像分类任务上取得了非常好的性能。作者还做了目标检测、语义分割的实验,详细可以参照作者论文。

边栏推荐
- Compilation principle - parser design
- Help me up, I can continue to edit!
- Notes 2 of network communication security
- 基础设施 NFTScan 正式发布 Solana 网络 NFT 浏览器
- sniffer Pro对ARP协议的分析、捕获与模拟攻击
- 谷歌浏览器无法打开localhost:3000,打开localhost就跳转测试地址问题
- Mysql 主从服务器配置实验 centos7
- 图形图像编程实践 课程报告
- ES6 -- conversion of arr (array) -map set
- js 简单快排实现
猜你喜欢

ES6 -- conversion of arr (array) -map set

Es6--string (string)

编译原理-语法分析器设计

Notes on network communication security -- OSPF theory and experiment

Open source internship | compiler sig internship task is officially released. Welcome to apply!

密态数字经济:用密码去“深海淘珍珠”

微信小程序开发二三事

Infrastructure nftscan officially released Solana network NFT browser

HTTP 缓存机制详解

36.js-- prototype chain 2-- (mainly written test questions)
随机推荐
读SDWebImage源码笔记
Calculate the number of days difference between localdates, which is convenient and fast
Dense Digital Economy: using passwords to "search for pearls in the deep sea"
YUV转UIImage
Arthas introduction and idea plug-in quick start
antd setFieldsValue警告问题 Cannot use `setFieldsValue` until you use `getFieldDecorator` or
Nine features of microservice architecture
Graphic and image programming practice course report
MySQL multi table query joint query / sub query
网络通信安全部分笔记二
MySQL-多表查询-内连接/外连接/自连接
ES6 -- array
js 简单快排实现
sniffer Pro对ARP协议的分析、捕获与模拟攻击
元素垂直居中
性能优化——关键路径渲染优化
Open source internship | compiler sig internship task is officially released. Welcome to apply!
曾入选顶会的技术完成产品化 蚂蚁链推出版权AI计算引擎
redux 源码分析
Use Base64 to encode pictures and byte[]