Squeeze-and-Excitation Networks(SENet)

论文地址:https://arxiv.org/abs/1709.01507

主要思想:

提出SE block

优点:

增强特征通道

论文内容如下:

-X : input data输入数据

-F tr : convolutional operator卷积算子

- U : feature map特征图
- F sq :Feature map squeeze特征图的压缩
- F ex :Feature map excitation特征图的激励
- F scale : Feature map scale特征图加权
- X’ :feature recalibration results特征重新校准结果

如上图,实现se,共有三部分,压缩,激励,加权。

首先输入数据,进行卷积操作,这个公式得出特征图的值。

卷积核参数乘输入数据。

vc表示第c个卷积核,xs表示第s个输入。Ftr得到的U就是Figure1中的左边第二个三维矩阵,也叫tensor,或者叫C个大小为H*W的feature map。而uc表示U中第c个二维矩阵,下标c表示channel。

可视化为图:

首先我们输入一张彩色图片,假设图片尺寸为4*4*3(H'=4,w'=4,c'=3),经过一个卷积操作Ftr(卷积核为2),后变成3*3*3(H=3,W=3,C=3)

压缩过程:这一步的结果相当于表明该层C个feature map的数值分布情况,或者叫全局信息。把每个input feature map的spatial dimension 从H * W 挤压到1。一般是通过global average pooling完成的,Squeeze操作,我们顺着空间维度来进行特征压缩,将每个二维的特征通道变成一个实数,这个实数某种程度上具有全局的感受野,并且输出的维度和输入的特征通道数相匹配。它表征着在特征通道上响应的全局分布,而且使得靠近输入的层也可以获得全局的感受野,这一点在很多任务中都是非常有用的。(论文中的为了解决利用通道依赖性的问题,考虑输出特征中每个通道的信号。每一个学习到的滤波器都有一个局部的接收场,因此,每个单元的滤波器都有一个局部接受场,因此,每个单元的转化的输出U无法利用该区域以外的上下文信息。为了缓解这个问题,作者将全局性的空间信息挤压到通道描述中。这是通过使用全局平均集合来产生通道统计。形式上,一个统计量z∈RC是通过收缩U的空间维度H×W来生成的。这样,z的第c个元素是通过上图方式计算的。)

这里的uc是学习到的特征图,代入公式

通过全局平均池化来完成,将每个通道的H*W个像素值压缩为一个实数,公式如下得到Z1=5/9, Z2=5/3, Z3=4/9,得到一组1*1*3的实数。

(压缩可以看成是在全局上提取特征信息的通道,在乎特征通道之间的关系,而不是特征之间的关系)

接下来进行第二步excitation激励操作,将这组1*1*3的实数先降维到1*1*(3/r),再升维到1*1*3,最后经过Sigmoid激活函数归一化为一组0~1的实数,这组0~1的实数就对应了每个通道的重要性,1为很重要,0为不重要,将得到的实数乘到之前feature map上对应通道的每个像素值。

(论文中的描述:为了利用在挤压过程中汇总的信息,我们在它之后进行了第二个操作,旨在以充分捕捉渠道方面的依赖性。为了实现这一为了实现这一目标,该函数必须满足两个标准:首先,它必须是灵活的(特别是,它必须有能力学习渠道之间的非线性互动)其次,它必须学习一种非互斥关系,因为我们第二,它必须学习一种非相互排斥的关系,因为我们希望确保允许多种渠道的强调(而不是强制进行一次激活)。为了满足这些标准,我们选择采用一个简单的门控机制,并采用sigmoid激活。)

再次描述激励操作。

Excitation: 如图的绿框。通过一个bottleneck结构来捕捉channel的inter-dependency,从而学到channel的scale factor(或者说是attention factor) 。上面采用两层全连接,第一层全连接单元个数为c/16,主要是为了压缩参数的如下,
c. * c/r + c/r * c = 2c2/r = 2c^2/r
只用一层全连接参数的话参数个数:
c * c = c ^ 2

reduction ratio rr 降维比例

W1的维度是C/r * C,这个r是一个缩放参数,在文中取的是16,这个参数的目的是为了减少channel个数从而降低计算量。又因为z的维度是11C,所以W1z的结果就是11C/r;然后再经过一个ReLU层,输出的维度不变;然后再和W2相乘,和W2相乘也是一个全连接层的过程,W2的维度是C*C/r,因此输出的维度就是11C;最后再经过sigmoid函数,得到s。

在得到s之后,就可以对原来的tensor U操作了,就是图中的公式。就是channel-wise multiplication。uc是一个二维矩阵,sc是一个数,也就是权重,因此相当于把uc矩阵中的每个值都乘以sc。对应论文中的Fscale。(也就是Reweight的操作。将Excitation的输出的权重看做是特征选择后的每个特征通道的重要性,然后通过乘法逐通道加权到先前的特征上,完成在通道维度上的对原始特征的重标定。即实现attention机制。)

论文中把原有的网络加上SE block后叫做SENets.

在resnet中加入SE。下图是SE-ResNet, 可以看到SE module被apply到了residual branch上。我们首先将特征维度降低到输入的1/r,然后经过ReLu激活后再通过一个Fully Connected 层升回到原来的维度。这样做比直接用一个Fully Connected层的好处在于:1)具有更多的非线性,可以更好地拟合通道间复杂的相关性;2)极大地减少了参数量和计算量。然后通过一个Sigmoid的门获得01之间归一化的权重,最后通过一个Scale的操作来将归一化后的权重加权到每个通道的特征上。在Addition前对分支上Residual的特征进行了特征重标定。如果对Addition后主支上的特征进行重标定,由于在主干上存在01的scale操作,在网络较深BP优化时就会在靠近输入层容易出现梯度消散的情况,导致模型难以优化。

总结:

为了深刻理解,本博客结合了理论,数学公式及编码,所以有重复内容。

❀论文篇❀注意力机制SE论文的理解相关推荐

  1. SENET论文笔记注意力机制

    SENet论文笔记 注意力机制 Squeeze-and-Excitation Networks 2019 Abstract 传统卷积都是在特征层级上通过提高空间编码质量提高表示能力 SENet注重通道 ...

  2. 作业六:自注意力机制与论文

    Part one 1.注意力机制:通过添加一层新的权重将图片中关键部分特征强化.一般是在通道或者像素点上操作. 2.自注意力结构:计算相似性得到权重,softmax归一化,最后加权求和. 3.多尺度网 ...

  3. 【Attention九层塔】注意力机制的九重理解

    本文作者:电光幻影炼金术 研究生话题Top1,上海交大计算机第一名,高中物理竞赛一等奖,段子手,上海交大计算机国奖,港中文博士在读 https://zhuanlan.zhihu.com/p/36236 ...

  4. 注意力机制(SE, ECA, CBAM, SKNet, scSE, Non-Local, GCNet, ASFF) Pytorch代码

    注意力机制 1 SENet 2 ECANet 3 CBAM 3.1 通道注意力 3.2 空间注意力 3.3 CBAM 4 展示网络层具体信息 5 SKNet 6 scSE 7 Non-Local Ne ...

  5. 推荐系统之DIN模型(注意力机制对业务的理解)

    前言 前面讲过了AFM,AFM是对注意力机制的一个浅显的尝试,并没有基于业务上进行设计的一个模型.在工业领域例如在线广告上点击率(Click-through rate,CTR)预测是一个很重要的任务. ...

  6. 神经网络 注意力机制 Q K V 理解

    注意力机制 公式 为了简单假定       Q矩阵 K矩阵一样 Q                                                   K转置              ...

  7. 网络中加入注意力机制SE模块

    SENet是由自动驾驶公司Momenta在2017年公布的一种全新的图像识别结构,它通过对特征通道间的相关性进行建模,把重要的特征进行强化来提升准确率.SENet 是2017 ILSVR竞赛的冠军. ...

  8. Attention九层塔:注意力机制的九重理解

    Attention现在已经火爆了整个AI领域,不管是机器视觉还是自然语言处理,都离不开Attention.transformer或者BERT.下面我效仿EM九层塔,提出Attention九层塔.希望能 ...

  9. 20210330论文笔记--3篇注意力机制算法

    /1  SE-Net<Squeeze-and-Excitation Networks> Jie Hu, Li Shen, and Gang Sun. Squeeze-and-excitat ...

最新文章

  1. “国产操作系统最大难题在于解决「生产关系」” | 人物志
  2. 趣学python3(47)--尾递归
  3. [考试]20151019图论
  4. YARN体系学习笔记
  5. 算法之矩阵计算斐波那契数列
  6. moxy json介绍_MOXy的对象图– XML和JSON的输入/输出局部模型
  7. Excel字符串截取(leftrightmid)
  8. freecplus框架-xml解析
  9. linux下,保存退出vim编辑器(转)
  10. 我的编程认知:多思考、多编码、多测试
  11. 【iOS】获取应用程序本地路径
  12. Java课程设计——日历的设计与实现
  13. 数据分析-信用卡反欺诈模型
  14. 阿里云IPV6解决方案
  15. linux 关机 日志记录,linux查看开关机记录
  16. 【正点原子STM32连载】第五十二章 FPU测试(Julia分形)实验摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
  17. C#用openhardwaremonitor动态链接库获取CPU温度
  18. 运维堡垒机—如何解决企业运维操作审计问题?
  19. 给想去阿里面试的同学一些意见
  20. 计算机教案画圆形和方形,小学信息《画方形和圆形》教学设计

热门文章

  1. stetho使用介绍
  2. 【电气专业知识问答】问:厂用电动机如何选择?
  3. c语言sm4加密算法,SMS4算法实现
  4. linux设置TCP接收缓存,TCP缓存设置及自调节
  5. Jetson 系列——Ubuntu重启网卡的三种方法
  6. GNU开发工具简介(一)
  7. 图片里的文字如何提取?试试这几种提取方法
  8. 【自动驾驶】汽车速度规划介绍
  9. 基于Centos7定制自己的系统镜像
  10. 计算机图像图形研究目的,计算机图形图像技术探究论文