摘要:本文提出了一个概念简单但对卷积神经网络非常有效的注意力模块。

本文分享自华为云社区《论文解读系列三十:无参数的注意力模块SimAm论文解读》,作者:谷雨润一麦。

摘要

本文提出了一个概念简单但对卷积神经网络非常有效的注意力模块。相比于现有的通道注意力和空间注意力机制,本文直接在网络层中推理出三维的注意力权重而且不增加任何参数量。确切地来说,本文基于著名的神经科学理论提出了通过优化能量函数来查找每个神经元的重要性。本文通过求解能量函数解析解的方式,进一步将代码实现控制在十行以内。SimAm模的另一个优势是大多数操作都是基于定义的能量函数的解决方案,因此不需要花太多的精力做结构调整。在各个视觉任务上的定量实验都表明本文提出的模块在改善卷积网络的表征能力上具有灵活性和有效性。

动机

现有的注意力基础模块存在两个问题。一个是他们只能在通道或者空间维度中的一个维度对特征进行精炼,但在空间和通道同时变化的空间缺乏灵活性。第二是他们的结构往往需要基于一系列的复杂操作,例如池化。文本基于完善的神经科学理论提出的模块很好的解决了上述两个问题。具体来说,为了让网络学习到更具区分性的神经元,本文提出直接从当前的神经元推理出三维的权重,然后反过来去优化这些神经元。为了有效的推理出三维的权重,本文基于神经科学的知识定义了一个能量函数,然后获得了该函数的解析解。

方法

在神经科学中,信息丰富的神经元通常表现出与周围神经元不同的放电模式。而且,激活神经元通常会抑制周围神经元,即空域抑制。换句话说,展现出空域抑制效应的神经元在视觉处理任务中应该被赋予更高的重要性。最简单的寻找重要神经元的方法就是度量神经元之间的线性可分性。基于这些神经科学的发现,本文针对每个神经元定义了如下的能量函数:

其中,$\hat t=w_t t+b_t, \hat x_i=w_t x_i + b_t$是$t$和$x_i$的线性变换,$t$和$x_i$是输入特征$\textbf{X}\in \mathbb{R}^{C\times H\times W}$的单通道中的目标神经元和其他神经元。$i$是在空间维度上的索引,$M=H\times M$是一个通道上的神经元的数量。$w_t$和$b_t$是线性变换的权重和偏置。式(1)中的所有值都是标量。当$\hat t=y_t$并且对其他说有神经元都有$\hat x_i =y_o$时,式(1)得到最小值,其中$y_t$和$y_o$是两个不同的值。最小化公式(1)等价于找到同一通道内目标神经元$t$​和其他神经元的线性可分性。为简单起见,本文采用二值标签并添加正则项。最终的能量函数如下式:

理论上,每个通道都会有$M$个这样能量函数,如果用像SGD这样的梯度下降算法去求解这些等式的话,计算开销将会非常大。幸运地是,等式(2)中$w_t$和$b_t$都可以快速求得解析解,如下式所示:

其中$u_t=\frac{1}{M-1}\sum{i=1}^{M-1}x_i$和$\sigma_t^2=\frac{1}{M-1}\sum{i}^{M-1}(s_i-\mu_t)^2$​是对应通道中出去神经元$t$​​​后所有神经元的均值和方差。从公式(3)和公式(4)可以看出解析解都是在单通道上得到的,因此可以合理的推测同一个通道的其他神经元也满足相同的分布。基于这个假设,就可以在所有神经元上计算均值和方差,在同一通道上的所有神经元都可以复用这个均值和方差。因此可以大大减少每个位置重复计算$\mu$和$\sigma$​的开销,最终每个位置的最小能量可以通过下式得到:

其中$\mu=\frac{1}{M}\sum{i=1}^{M}x_i$和$\hat\sigma^2=\frac{1}{M}\sum{i=1}^{M}(x_i-\hat\mu)^2$。等式(5)说明,能量$e_t^$越低,神经元$t$和周围神经元的区别越大,在视觉处理中也越重要。因此,本文通过$1/e_t^$​​​来表示每个神经元的重要性。根据Hillard等人<sup>1</sup>的研究,哺乳动物大脑中的注意力调节通常表现为对神经元反应的增益效应。因此本文直接用了缩放而不是相加的操作来做特征提炼,整个模块的提炼过程如下:

其中$\Epsilon$是$e_t^*$在所有通道和空间维度的汇总,$sigmoid$​是用来约束过大的值,它不会影响每个神经元的相对大小,因为它是一个单调函数。

​ 实际上除了计算每个通道的均值和方差外,其他所有的操作都是元素级别点对点的操作 。因此利用Pytorch可以几行代码实现公式(6)的功能,如图一所示。

图一 SimAM的pytorch风格实现

实验

CIFAR 分类实验

​ 在CIFAR 10类数据和100类数据上分别做了实验,并和其他四中注意力机制进行了对比,本文提出的模块在不增加任何参数的情况下在多个模型上都表现出了优越性,实验结果如图二所示。

图二 五种不同的注意力模块在不同模型上CIFAR图像分类任务上的top-1准确率

[1]: Hillyard, S. A., Vogel, E. K., and Luck, S. J. Sensory Gain Control (Amplification) as a Mechanism of Selective Attention: Electrophysiological and Neuroimaging evidence. Philosophical Transactions of the Royal Society of London. Series B: Biological Sciences, 353(1373): 1257–1270, 1998.

点击关注,第一时间了解华为云新鲜技术~

论文解读丨无参数的注意力模块SimAm相关推荐

  1. 论文解读丨基于局部特征保留的图卷积神经网络架构(LPD-GCN)

    本文分享自华为云社区<论文解读:基于局部特征保留的图卷积神经网络架构(LPD-GCN)>,原文作者:PG13 . 近些年,很多研究者开发了许多基于图卷积网络的方法用于图级表示学习和分类应用 ...

  2. 论文解读丨LayoutLM: 面向文档理解的文本与版面预训练

    摘要:LayoutLM模型利用大规模无标注文档数据集进行文本与版面的联合预训练,在多个下游的文档理解任务上取得了领先的结果. 本文分享自华为云社区<论文解读系列二十五:LayoutLM: 面向文 ...

  3. 【论文解读】打破常规,逆残差模块超强改进,新一代移动端模型MobileNeXt来了!精度速度双超MobileNetV2...

    文章来源于极市平台,作者Happy 导语:该文是依图科技&新加坡国立大学颜水成团队提出的一种对标MobileNetV2的网络架构MobileNeXt.它针对MobileNetV2的核心模块逆残 ...

  4. AI论文解读丨融合视觉、语义、关系多模态信息的文档版面分析架构VSR

    摘要:文档版式分析任务中,文档的视觉信息.文本信息.各版式部件间的关系信息都对分析过程具有很重要的作用.本文提出一种融合视觉.文本.关系多模态信息的版式分析架构VSR. 本文分享自华为云社区<论 ...

  5. 论文解读丨Zero-Shot场景下的信息结构化提取

    摘要:在信息结构化提取领域,前人一般需要基于人工标注的模板来完成信息结构化提取.论文提出一种zero-shot的基于图卷积网络的解决方案,可以解决训练集和测试集来自不同垂直领域的问题. 本文分享自华为 ...

  6. 论文解读丨图神经网络应用于半结构化文档的命名实体识别和关系提取

    摘要: 随着用于传递和记录业务信息的管理文档的广泛使用,能够鲁棒且高效地从这些文档中自动提取和理解内容的方法成为一个迫切的需求.本次解读的文章提出利用图神经网络来解决半结构化文档中的实体识别(NER) ...

  7. 论文解读丨文档结构分析

    摘要:一个端到端的文档结构分析方案(DocParser),对文档(扫描版.图片版等)进行结构提取,包括实体识别(这里实体指所有需要检测的元素,包括文本.行.列.单元格等)和关系分类. 本文分享自华为云 ...

  8. 论文解读丨空洞卷积框架搜索

    摘要:在通用目标检测算法,空洞卷积能有效地提升网络的感受野,进而提升算法的性能.本次解读的文章提出了一种空洞卷积变体及对应的空洞卷积搜索方法,充分探索空洞卷积的潜力,进一步提升网络模型的性能. 本文分 ...

  9. 论文解读丨【CVPR 2022】不使用人工标注提升文字识别器性能

    摘要:本文提出了一种针对文字识别的半监督方法.区别于常见的半监督方法,本文的针对文字识别这类序列识别问题做出了特定的设计. 本文分享自华为云社区<[CVPR 2022] 不使用人工标注提升文字识 ...

最新文章

  1. 学计算机为什么会突发,为什么电脑会突然自动重启?
  2. golang的mongodb操作(mgo)
  3. Atitit main函数的ast分析  数组参数调用的ast astview解析
  4. 从Top500、天河一号和超级计算机引起的话题
  5. HashMap(Java)
  6. python locust 能压测数据库_深入浅出 Locust 实现
  7. python+robotframework_python+robot framework接口自动化测试
  8. html设置数字显示位数,数字万用表的显示位数和精度
  9. java cookie安全_cookie的安全性问题
  10. poj3278 CatchThatCow bfs
  11. 关于Redis的常识
  12. java项目怎么启动_github上的java项目怎么运行(面向小白)
  13. 遗传算法python
  14. 电池SOH仿真系列-基于LSTM神经网络的电池SOH估算方法
  15. 数据结构实验C语言实现版
  16. 信息收集(成功就是99%的运气+1%的搜索引擎)
  17. 公司法定代表人通常由谁担任?
  18. ⅰcp经济模型_简单介绍一下R中的几种统计分布及常用模型
  19. HTML基础-02:常用布局
  20. 三菱FX5U程序,双FX5U80MT主从站控制,普洛菲斯触摸屏程序,搭配三菱伺服,松下变频器控制运动控制数轴运动控制

热门文章

  1. 微软拥抱开源_如何拥抱开源劳动力
  2. (14)css—伪类选择器
  3. 前端:JS/25/DOM官方定义,DOM分类,HTML节点树(节点关系,节点类型,),核心DOM中公共的属性和方法(节点访问,查找DOM节点,节点属性,节点的创建,追加和删除)
  4. SVG基础知识 Adobe Illustrator绘制SVG
  5. Bootstrap3 带悬停效果的表格样式
  6. C语言printf()、sprintf()、vsprintf() 的区别与联系
  7. 视觉SLAM笔记(19) 相似变换群与李代数
  8. 安装并配置oracle11g,ORACLE11g 安装于基本配置说明
  9. python实现多人聊天论文_python网络编程 双人多人聊天
  10. 最大似然估计_R初等统计分析(一)——概率分布、最大似然估计