Attention增强的卷积网络

2020 年 12 月 4 日 AINLP

最近要开始使用Transformer去做一些事情了,特地把与此相关的知识点记录下来,构建相关的、完整的知识结构体系。

以下是要写的文章,本文是这个系列的第二十三篇,内容较为深入,需要学习基础的同学点击链接进入文章列表查看基础知识相关文章。

Overall

Conformer: 卷积增强的Transformer中,我们介绍了如何在Transformer中应用卷积,在本文中,则介绍如何将Transformer中的attention机制应用到卷积神经网络中。

参考文献[1]提出了一种基于二维相对位置的注意力机制,只用这种机制可以达到与卷积类似的效果,与卷积混用则能达到更好的效果。

图像上的自注意力

对于一张图像来说,它的shape一般是[H, W, Fin],一个暴力的方法就是将H和W展平,变成[H * W, Fin],然后在这个矩阵上直接运行attention,得到:

其中,X就是H和W展平后的矩阵。多头注意力的结果要拼接起来。

位置编码

但上面的计算方式完全忽略了位置信息,就导致如果对图像上的各个像素的位置做一个混排,再进行attention也能得到一样的结果,即:

其中,π就是一种排列方法。

而我们知道,卷积之所以能在图像上大获成功,跟它能捕捉结构信息有很强的关系。所以位置信息无法丢弃。因此,和Transformer中相对位置编码中描述的1维相对位置类似,这里,我们使用2维的相对位置编码。

更具体的,位置(ix, iy)和位置(jx, jy)之间计算注意力的logits的时候,公式如下:

注意到,这里分别为x维和y维定义了一个相对位置编码。因而,计算attention的公式就变成了

其中,SHrel[i, j] = qirjx-ixH,SWrel同理。

跟一维相对位置类似,相对位置的embedding只看相对位置差,和绝对位置无关。

卷积和自注意力的拼接

为了同时利用卷积和自注意力,这里将它们的输出拼接在一起。如下图:

公式如下:

假设原来的卷积层的参数为 kernel_size = k, 输入通道 = Fin, 输出通道 = Fout。这里再定义两个参数:

v = dv / Fout, 其中dv是attention计算中value的维度。这个参数控制着拼接结果中attention和卷积结果的比例,这个比例越大,卷积的比例就越低。

k = dk / Fout, 其中dk是attention计算中key的维度,这个参数控制着注意力权重的计算。

参数量

更进一步的,attention引入的参数为Wq, Wk和Wv,所以相当于做了一个1x1的卷积,输入通道为Fin, 输出通道数目为2dk+vv = Fout(2k+v)

实验

使用ResNets、MNasNet在Cifar100, ImageNet和COCO数据集上分别做了实验验证。

其中在Cifar100上,对Wide-ResNet-28-10结构进行了增强,在每个残差块的第一个卷积层用了注意力增强。

注意力使用8个头,k=2v=0.2,每个头的embedding至少20。同时,还将Squeeze-and-Excitation(SE)和Gather-Excite也进行了实现,结果如下,可以看到注意力增强效果比Excitation方法要好。

类似的,在ImageNet上,结果如下:

如果完全使用attention,也可以达到卷积类似的效果。如下图, k=v=1.0时效果和ResNet-34类似。

在消融实验中,发现相对位置编码非常重要,如下图,在完全使用注意力的时候,可以提升效果2.8%。

和其他网络的比较如下:

更多实验结果可以参考论文。

Bert系列计划写50篇相关文章,欢迎感兴趣的同学关注公众号【雨石记】

参考文献

  • [1]. Bello, Irwan, et al. "Attention augmented convolutional networks." Proceedings of the IEEE International Conference on Computer Vision. 2019.



由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方"AINLP",进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心

欢迎加入AINLP技术交流群
进群请添加AINLP小助手微信 AINLPer(id: ainlper),备注NLP技术交流

推荐阅读

这个NLP工具,玩得根本停不下来

征稿启示| 200元稿费+5000DBC(价值20个小时GPU算力)

完结撒花!李宏毅老师深度学习与人类语言处理课程视频及课件(附下载)

从数据到模型,你可能需要1篇详实的pytorch踩坑指南

如何让Bert在finetune小数据集时更“稳”一点

模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法

文本自动摘要任务的“不完全”心得总结番外篇——submodular函数优化

Node2Vec 论文+代码笔记

模型压缩实践收尾篇——模型蒸馏以及其他一些技巧实践小结

中文命名实体识别工具(NER)哪家强?

学自然语言处理,其实更应该学好英语

斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。


阅读至此了,分享、点赞、在看三选一吧🙏

登录查看更多
0

相关内容

在数学(特别是功能分析)中,卷积是对两个函数(f和g)的数学运算,产生三个函数,表示第一个函数的形状如何被另一个函数修改。 卷积一词既指结果函数,又指计算结果的过程。 它定义为两个函数的乘积在一个函数反转和移位后的积分。 并针对所有shift值评估积分,从而生成卷积函数。
【AAAI2021】面向交通需求预测的耦合层图卷积
专知会员服务
45+阅读 · 2021年1月31日
注意力机制综述
专知会员服务
203+阅读 · 2021年1月26日
专知会员服务
28+阅读 · 2020年10月24日
系列教程GNN-algorithms之七:《图同构网络—GIN》
专知会员服务
47+阅读 · 2020年8月9日
系列教程GNN-algorithms之六:《多核卷积拓扑图—TAGCN》
专知会员服务
49+阅读 · 2020年8月8日
【KDD2020】自适应多通道图卷积神经网络
专知会员服务
119+阅读 · 2020年7月9日
【ICLR-2020】网络反卷积,NETWORK DECONVOLUTION
专知会员服务
38+阅读 · 2020年2月21日
注意力机制介绍,Attention Mechanism
专知会员服务
168+阅读 · 2019年10月13日
一文读懂Attention机制
机器学习与推荐算法
63+阅读 · 2020年6月9日
语义分割中的Attention和低秩重建
极市平台
37+阅读 · 2019年9月1日
用Attention玩转CV,一文总览自注意力语义分割进展
什么是深度学习的卷积?
论智
18+阅读 · 2018年8月14日
基础 | 基于注意力机制的seq2seq网络
黑龙江大学自然语言处理实验室
16+阅读 · 2018年3月7日
神经网络中的「注意力」是什么?怎么用?
北京思腾合力科技有限公司
17+阅读 · 2017年10月28日
CNN之卷积层
机器学习算法与Python学习
8+阅读 · 2017年7月2日
Arxiv
6+阅读 · 2019年4月8日
Arxiv
4+阅读 · 2018年10月31日
Arxiv
11+阅读 · 2018年5月21日
Arxiv
10+阅读 · 2018年2月4日
Arxiv
12+阅读 · 2018年1月28日
VIP会员
相关VIP内容
【AAAI2021】面向交通需求预测的耦合层图卷积
专知会员服务
45+阅读 · 2021年1月31日
注意力机制综述
专知会员服务
203+阅读 · 2021年1月26日
专知会员服务
28+阅读 · 2020年10月24日
系列教程GNN-algorithms之七:《图同构网络—GIN》
专知会员服务
47+阅读 · 2020年8月9日
系列教程GNN-algorithms之六:《多核卷积拓扑图—TAGCN》
专知会员服务
49+阅读 · 2020年8月8日
【KDD2020】自适应多通道图卷积神经网络
专知会员服务
119+阅读 · 2020年7月9日
【ICLR-2020】网络反卷积,NETWORK DECONVOLUTION
专知会员服务
38+阅读 · 2020年2月21日
注意力机制介绍,Attention Mechanism
专知会员服务
168+阅读 · 2019年10月13日
相关资讯
一文读懂Attention机制
机器学习与推荐算法
63+阅读 · 2020年6月9日
语义分割中的Attention和低秩重建
极市平台
37+阅读 · 2019年9月1日
用Attention玩转CV,一文总览自注意力语义分割进展
什么是深度学习的卷积?
论智
18+阅读 · 2018年8月14日
基础 | 基于注意力机制的seq2seq网络
黑龙江大学自然语言处理实验室
16+阅读 · 2018年3月7日
神经网络中的「注意力」是什么?怎么用?
北京思腾合力科技有限公司
17+阅读 · 2017年10月28日
CNN之卷积层
机器学习算法与Python学习
8+阅读 · 2017年7月2日
相关论文
Arxiv
6+阅读 · 2019年4月8日
Arxiv
4+阅读 · 2018年10月31日
Arxiv
11+阅读 · 2018年5月21日
Arxiv
10+阅读 · 2018年2月4日
Arxiv
12+阅读 · 2018年1月28日
Top
微信扫码咨询专知VIP会员