论文解读丨无参数的注意力模块SimAm
摘要:本文提出了一个概念简单但对卷积神经网络非常有效的注意力模块。
本文分享自华为云社区《论文解读系列三十:无参数的注意力模块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的更多相关文章
- 论文解读丨表格识别模型TableMaster
摘要:在此解决方案中把表格识别分成了四个部分:表格结构序列识别.文字检测.文字识别.单元格和文字框对齐.其中表格结构序列识别用到的模型是基于Master修改的,文字检测模型用到的是PSENet,文字识 ...
- 论文解读丨基于局部特征保留的图卷积神经网络架构(LPD-GCN)
摘要:本文提出一种基于局部特征保留的图卷积网络架构,与最新的对比算法相比,该方法在多个数据集上的图分类性能得到大幅度提升,泛化性能也得到了改善. 本文分享自华为云社区<论文解读:基于局部特征保留 ...
- 论文解读丨【CVPR 2022】不使用人工标注提升文字识别器性能
摘要:本文提出了一种针对文字识别的半监督方法.区别于常见的半监督方法,本文的针对文字识别这类序列识别问题做出了特定的设计. 本文分享自华为云社区<[CVPR 2022] 不使用人工标注提升文字识 ...
- 注意力论文解读(1) | Non-local Neural Network | CVPR2018 | 已复现
文章转自微信公众号:[机器学习炼丹术] 参考目录: 目录 0 概述 1 主要内容 1.1 Non local的优势 1.2 pytorch复现 1.3 代码解读 1.4 论文解读 2 总结 论文名称: ...
- [论文解读] 阿里DIEN整体代码结构
[论文解读] 阿里DIEN整体代码结构 目录 [论文解读] 阿里DIEN整体代码结构 0x00 摘要 0x01 文件简介 0x02 总体架构 0x03 总体代码 0x04 模型基类 4.1 基本逻辑 ...
- CVPR2020论文解读:三维语义分割3D Semantic Segmentation
CVPR2020论文解读:三维语义分割3D Semantic Segmentation xMUDA: Cross-Modal Unsupervised Domain Adaptation for 3 ...
- 图像分类:CVPR2020论文解读
图像分类:CVPR2020论文解读 Towards Robust Image Classification Using Sequential Attention Models 论文链接:https:// ...
- 从单一图像中提取文档图像:ICCV2019论文解读
从单一图像中提取文档图像:ICCV2019论文解读 DewarpNet: Single-Image Document Unwarping With Stacked 3D and 2D Regressi ...
- 自监督学习(Self-Supervised Learning)多篇论文解读(上)
自监督学习(Self-Supervised Learning)多篇论文解读(上) 前言 Supervised deep learning由于需要大量标注信息,同时之前大量的研究已经解决了许多问题.所以 ...
- NLP论文解读:无需模板且高效的语言微调模型(上)
原创作者 | 苏菲 论文题目: Prompt-free and Efficient Language Model Fine-Tuning 论文作者: Rabeeh Karimi Mahabadi 论文 ...
随机推荐
- 一个类似于Gridster的栅格布局系统Vue组件
哈喽,我是老鱼,一名致力于在技术道路上的终身学习者.实践者.分享者! Vue Grid Layout是一个类似于Gridster的栅格布局系统, 适用于Vue.js,灵感来源于React Grid L ...
- 聊聊分布式 SQL 数据库Doris(三)
详细内容阅读: Apache Doris 分区分桶新功能 与 数据划分. 在此基础上做总结与延伸. 在 Doris 的存储引擎规则: 表的数据是以分区为单位存储的,不指定分区创建时,默认就一个分区. ...
- 领域驱动设计之银行转账:Wow框架实战
银行账户转账案例 银行账户转账案例是一个经典的领域驱动设计(DDD)应用场景.接下来我们通过一个简单的银行账户转账案例,来了解如何使用 Wow 进行领域驱动设计以及服务开发. 银行转账流程 准备转账( ...
- 如何通过C++ 给PDF文档添加文字水印
因PDF文档具有较好的稳定性和兼容性,现在越来越多的合同.研究论文.报告等都采用PDF格式.为了进一步保护这些重要文档内容免受未经授权的复制或使用,我们可以添加水印以表明其状态.所有权或用途.针对工作 ...
- 匿名远程启动jenkins的job
安装jenkins插件Build Authorization Token Root job配置中的构建触发器,勾选触发远程构建,输入要用的令牌,如soul 通过jenkins地址调用触发 非参数化jo ...
- 【Java】Java中StringBuilder()成员方法append()和toString()
StringBuilder就相当于C++的String长度可变,用于构造字符串对象,内部使用自动扩容的数组操作字符串数据. StringBuilder和StringBuffer使用的是相同的API[区 ...
- JSR223取样器详解
相比于BeanShell 取样器,JSR223取样器具有可大大提高性能的功能(编译)如果需要,一定要使用JSR223取样器编写脚本是更好的选择!!! 属性描述名称:显示的此取样器的描述性名称,可自定义 ...
- Linux笔记02: Linux环境_2.3 Linux网络连接
2.3 Linux网络连接 本节介绍VMware Workstation Player 17下CentOS 7的网络连接. 2.3.1 VMware网络类型 VMware提供的网络连接有5种: ●桥接 ...
- C++ Qt开发:RadioButton单选框分组组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QRadioB ...
- Nougat:结合光学神经网络,引领学术PDF文档的智能解析、挖掘学术论文PDF的价值
Nougat:结合光学神经网络,引领学术PDF文档的智能解析.挖掘学术论文PDF的价值 这是Nougat的官方存储库,Nougat是一种学术文档PDF解析器,可以理解LaTeX数学和表格. Proje ...