Squeeze-and-Excitation Networks (通道注意力CVPR2018)
实验部分详见原文,文章为原文翻译,如有错误请参照原文
1.摘要
- 背景:卷积神经网络的目的是通过局部感受野融合空间信息(图像中像素的排列和位置)和通道信息来提取具有更多信息的特征。
- 挑战:如何提升网络的表示能力?
- 提出新方法:我们聚焦在通道关系并提出SE block,它可以通过通道间的依赖关系动态调整通道特征。
- 贡献:
- 我们证明了通过不断的SE block堆叠,可以得到极具泛化性的网络结构,并适用于多种数据集。
- SE block相对于已有的SOTA方法中有着最小额外计算开销。
- SENets在排名前五的方法中误差降低到 2.251 % 2.251\% 2.251%,提升 a a a~ 25 % 25\% 25%
- code:https://github.com/hujie-frank/SENet.
2.引言
Figure 1:A Squeeze-and-Excitation block \textbf{Figure 1:A Squeeze-and-Excitation block} Figure 1:A Squeeze-and-Excitation block
1.背景(引出问题) ‾ \underline{\textbf{1.背景(引出问题)}} 1.背景(引出问题):
-
介绍CNNs
- 在很多视觉任务中,CNNs已经被证明是高效的
- 在每个卷积层中,学习卷积核来表达输入通道的局部空间的连接模式
- 换句话说,卷积核的目的就是为了通过融合空间与通道信息达到信息聚合
- 通过一系列夹杂着非线性与下采样的卷积层,CNNs能够通过全局感受野捕获层次模式(不同卷积层的关注点不同,分为多个层次,如:浅层注重图片纹理、中层注重轮廓、深层注重全局)作为强大的图片描述
-
介绍近年研究(举例引出主题)
- 最近的工作印证了嵌入学习可以不需要额外的监督即可捕获空间关联信息,从而提升网络表现
- I n c e p t i o n Inception Inception 架构的研究同时使用多个不同大小的卷积核,在不同尺度上捕获图像特征,获得了更高的准确率
- 更多最近的工作一直在寻求更好的空间依赖建模,包括空间注意力
2.提出方法 ‾ \underline{\textbf{2.提出方法}} 2.提出方法:
- 简述方法作用
- 我们调查了不同的结构设计-通道关系,引入 S q u e e z e − a n d − E x c i t a t i o n Squeeze-and-Excitation Squeeze−and−Excitation (SE) block
- 通过建模卷积特征通道之间的依赖提升网络的表示能力
- 为了达到设计目的,我们提出 f e a t u r e r e c a l i b r a t i o n feature\ recalibration feature recalibration,它可以利用全局信息强化多信息特征,抑制无用信息
3.方法描述 ‾ \underline{\textbf{3.方法描述}} 3.方法描述:
- 简述方法流程
- SE block结构在[ F i g u r e 1 ‾ \underline{Figure1} Figure1](# 2.引言),给定转换 F t r : X → U , X ∈ R H ′ × W ′ × C ′ , U ∈ R H × W × C \mathbf{F}_{tr}:\mathbf{X}\to\mathbf{U},\mathbf{X}\in\mathbb{R}^{H^{\prime}\times W^{\prime}\times C^{\prime}},\mathbf{U}\in\mathbb{R}^{H\times W\times C} Ftr:X→U,X∈RH′×W′×C′,U∈RH×W×C(卷积或多重卷积)
- 对特征 U \mathbf{U} U进行 s q u e e z e squeeze squeeze操作,通过跨空间维度 H × W H\times W H×W生成通道描述符聚合特征
- 描述符嵌入了全局通道特征信息,能够使网络的全局感受野信息被较低层利用
- e x c i t a t i o n excitation excitation操作通过基于通道关系的self门控机制学习各个通道,控制每个通道的 e x c i t a t i o n excitation excitation
- 特征映射 U \mathbf{U} U被赋予权重并输出到后续层
4.方法优势 ‾ \underline{\textbf{4.方法优势}} 4.方法优势:
- SE block优势
- SENet可以通过简单的堆叠实现,也可用作任意深度的原始block的插入替换
- SE block具泛化性,针对网络的需求在不同深度有着不同的作用
- 在浅层中,它可以针对不可知类学到确切的信息丰富的特征,提升底层表示的质量
- 在深层中,SE block逐渐具有针对性,对输入数据会有确切的类的高置信度
- 总之,SE block的 f e a t u r e r e c a l i b r a t i o n feature\ recalibration feature recalibration 可以通过完整的网络不断累加
5.方法优势 ‾ \underline{\textbf{5.方法优势}} 5.方法优势:
- 凸显SE block
- CNN结构的发展是具有挑战性的任务,特别是在新的参数与层数的选择上
- 相反,SE block的设计简单,可以直接应用到SOTA方法中并加强
6.验证方式(复杂度、泛化性) ‾ \underline{\textbf{6.验证方式(复杂度、泛化性)}} 6.验证方式(复杂度、泛化性):
- SE block计算上是轻量级的,在复杂度以及计算开销上只有微小的上升
- 为了验证复杂度,在ImageNet 2012数据集上进行了实验并提供了评估结果
- 为了验证泛化性能力,通过ImageNet 2012,表明所提方法不会严格受特殊数据集以及任务的影响
7.实验结果 ‾ \underline{\textbf{7.实验结果}} 7.实验结果:
- 使用SENets,我们获得了ILSVRC的第一名,我们表现最好的模型集成在前5名误差的测试集上达到了2.251%,与前一年的优胜者相比,这代表了大约25%的相对改进(前5名的误差为2.991%)。
3.相关工作
3.1.深度结构
1.基于连接 ‾ \underline{\textbf{1.基于连接}} 1.基于连接
- 各种连接方式列举
- VGGNets与早期的方法都是通过提高模型深度来提升结果的,展现出一定的优势
- 通过插入BN提升梯度传播规范每一层输入的数据,稳定学习过程
- ResNets展现出恒等映射拼接学习更深层次网络的有效性
- H i g h w a y n e t w o r k s Highway\ networks Highway networks应用门控机制调节捷径连接
- 工作总结
- 在深度网络的学习和表示上,网络层连接方式的重新制定有着显著的提升
2.基于模块作用-compositions ‾ \underline{\textbf{2.基于模块作用-compositions}} 2.基于模块作用-compositions
- 模块改动的方法列举
- 另一种研究方式为,调整网络中模块的作用
- G r o u p e d c o n v o l u t i o n s Grouped\ convolutions Grouped convolutions-分组卷积:每个分组中学习独立的特征表示,可以增加网络的参数化能力,通过增加网络基数来提升
- M u l t i − b r a n c h c o n v o l u t i o n s Multi-branch convolutions Multi−branchconvolutions-多分支卷积:每个分支可以应用不同的卷积操作,有这更灵活的组成方式
- 最近,自学习方式的 c o m p o s i t i o n composition composition 展现出较强竞争力
- C r o s s − c h a n n e l c o r r e l a t i o n s Cross-channel correlations Cross−channelcorrelations 映射为新的特征组合,具有空间结构的独立性或联合 1 × 1 1\times 1 1×1的标准卷积核使用
- 工作总结
- 大多数工作聚焦在降低模型和计算复杂度,反应了一个假设,通道关系可以被表述为局部感受域的特定实例无关(instance-agnostic:表示这些函数不受特定输入实例的影响)的函数
- 我们的方法
- 相反,我们提供此机制可以确切的使用全局信息建模通道间动态的非线性依赖关系,可以简化学习过程,极大提升网络的表征能力
3.2.注意力与门控机制
-
注意力
-
广义上,注意力可以视为一种工具,偏向于将可用的处理资源的分配偏向于输入数据的最大信息分量
-
注意力已经应用在多种任务,从图像定位和理解到基于序列的模型上
-
注意力典型通过门控函数实现(softmax or sigmoid)与后续技术
-
在最近的工作中,注意力主要应用在图像说明、唇语解读中
-
这些应用中,注意力主要应用在神经层之上表示更高级别的抽象信息以便适应不同的模式之间的关系
-
Wang等人提出一种强大的trunk-and-mask 注意力机制,它使用了hourglass模块
-
这种高容量的单元用于插入到中间阶段的深度残差模块
-
-
我们的方法
- 相反,我们提出的SE block是轻量级的门控机制,用于通道关系,且就计算效率高,可以提高整个网络基础模块的表征能力
4.方法-Squeeze-and-Excitation Blocks
-
Squeeze-and-Excitation Blocks概述
-
Squeeze-and-Excitation Blocks 是一个计算单元,它可以被构建 F t r : X → U , X ∈ R H ′ × W ′ × C ′ , U ∈ R H × W × C \mathbf{F}_{tr}:\mathbf{X}\to\mathbf{U},\mathbf{X}\in\mathbb{R}^{H^{\prime}\times W^{\prime}\times C^{\prime}},\mathbf{U}\in\mathbb{R}^{H\times W\times C} Ftr:X→U,X∈RH′×W′×C′,U∈RH×W×C
-
简单来讲,在以下符号中, F t r \mathbf{F}_{tr} Ftr代表卷积操作
-
V = [ v 1 , v 2 , . . . , v C ] \mathbf{V}=[\mathbf{v}_{1},\mathbf{v}_{2},...,\mathbf{v}_{C}] V=[v1,v2,...,vC]表示学习到的卷积核的集合,其中 v c \mathbf{v}_{c} vc代表第 c c c个卷积核的参数
-
F t r \mathbf{F}_{tr} Ftr的输出为 U = [ u 1 , u 2 , . . . , u C ] \mathbf{U}=[\mathbf{u}_1,\mathbf{u}_2,...,\mathbf{u}_C] U=[u1,u2,...,uC]
u c = v c ∗ X = ∑ s = 1 C ′ v c s ∗ x s \mathbf{u}_c=\mathbf{v}_c*\mathbf{X}=\sum_{s=1}^{C^\prime}\mathbf{v}_c^s*\mathbf{x}^s uc=vc∗X=s=1∑C′vcs∗xs
这里 ∗ * ∗代表卷积, V = [ v c 1 , v c 2 , . . . , v c C ′ ] \mathbf{V}=[\mathbf{v}_{c}^1,\mathbf{v}_{c}^2,...,\mathbf{v}_{c}^{C\prime}] V=[vc1,vc2,...,vcC′]和 X = [ x 1 , x 2 , . . . , x C ′ ] \mathbf{X}=[\mathbf{x}^1,\mathbf{x}^2,...,\mathbf{x}^{C\prime}] X=[x1,x2,...,xC′](为简化符号,bias省略), v c s \mathbf{v}_c^s vcs是一个2D卷积 核,因此, v c \mathbf{v}_c vc作用的单通道会作用于 X \mathbf{X} X -
-
卷积核信息-引出方法
- 由于输出是由所有通道加和得到,所以通道间的依赖关系隐式的存在于卷积核 v c \mathbf{v}_c vc中,但是这些依赖同时又交杂着卷积核捕获的空间关联信息
-
我们的方法
-
我们的目标是确保网络可以对 i n f o r m a t i v e ‾ \underline{informative} informative 特征的敏感性提高,以至于他们可以被后续的 t r a n s f o r m a t i o n s ‾ \underline{transformations} transformations 利用,同时抑制无用的信息
-
我们提出方法达到此目的,通过建模通道依赖关系去调整卷积核的响应,由两步完成 squeeze \textbf{squeeze} squeeze和 excitation \textbf{excitation} excitation,之后得到的输出用于后续的transformations。SEblock in [Fig.1](# 2.引言)
-
4.1.Squeeze: Global Information Embedding
1.提出问题 ‾ \underline{\textbf{1.提出问题}} 1.提出问题:
- 目的:为了利用通道依赖关系,我们首先考虑了输出特征的每个通道的信号
- 存在的问题:
- 每一个在局部感受野上可学习的卷积操作,与卷积的transformation操作,都不能利用局部之外的上下文信息
- 这是一个浅层网络中严重的问题–网络的感受野太小
2.squeeze ‾ \underline{\textbf{2.squeeze}} 2.squeeze:
-
为了缓和此问题,我们提出squeeze全局空间信息到通道描述符中
-
通过全局平均池化生成通道统计信息
-
形式上,通过空间维度 H × W H\times W H×W压缩 U \mathbf{U} U得到统计量 z ∈ R C \mathbf{z}\in\mathbb{R}^C z∈RC,其中 z \mathbf{z} z的c-th元素计算如下:
z c = F s q ( u c ) = 1 H × W ∑ i = 1 H ∑ j = 1 W u c ( i , j ) z_c=\mathbf{F}_{sq}(\mathbf{u}_c)=\frac{1}{H\times W}\sum_{i=1}^H \sum_{j=1}^W u_c(i,j) zc=Fsq(uc)=H×W1i=1∑Hj=1∑Wuc(i,j)
3.Discussion ‾ \underline{\textbf{3.Discussion}} 3.Discussion:
- 这种transformation的输出 U \mathbf{U} U可以被看做局部描述符的集合,他们的统计量可以表达完整的图片信息
- 在特征工程工作中经常利用此信息
- 我们利用最简单的全局平均池化,在这里复杂的聚合操作也可应用
4.2.Excitation: Adaptive Recalibration
1.提出问题 ‾ \underline{\textbf{1.提出问题}} 1.提出问题:
-
引出Excitation:
- 为了利用squeeze聚合的信息,我们在此之后进行第二种操作,其目的是完整的捕获通道依赖关系
- 为了达到此目的,function必须满足两个标准
- 能够学习到通道间的非线性关系
- 学习非互斥关系,确保强调多通道,而不是one-hot形式
-
Excitation实现:
-
为了满足以上标准,我们应用简单的sigmoid门控机制
s = F e x ( z , W ) = σ ( g ( z , W ) ) = σ ( W 2 δ ( W 1 z ) ) \mathbf{s}=\mathbf{F}_{ex}(\mathbf{z},\mathbf{W})=\sigma(g(\mathbf{z},\mathbf{W}))=\sigma(\mathbf{W}_2\delta(\mathbf{W}_1\mathbf{z})) s=Fex(z,W)=σ(g(z,W))=σ(W2δ(W1z))
其中 δ \delta δ指的是ReLU, W 1 ∈ R C r × C \mathbf{W}_1\in\mathbb{R}^{\frac{C}{r}\times C} W1∈RrC×C, W 2 ∈ R C × C r \mathbf{W}_2\in\mathbb{R}^{C\times \frac{C}{r}} W2∈RC×rC -
为了限制模型复杂度同时增加泛化性,我们采样两层FC将门控机制非线性参数化,另外,应用维度缩减率 r r r,先ReLU后维度增长到原来尺寸
-
最终block的输出通过重新缩放和激活得到:
x ~ c = F s c a l e ( u c , s c ) = s c ⋅ u c \widetilde{\mathbf{x}}_c=\mathbf{F}_{scale}(\mathbf{u}_c,s_c)=s_c\cdot\mathbf{u}_c x c=Fscale(uc,sc)=sc⋅uc
其中 X ~ = [ x ~ 1 , x ~ 2 , . . . , x ~ C ] \widetilde{\mathbf{X}}=[\widetilde{\mathbf{x}}_1,\widetilde{\mathbf{x}}_2,...,\widetilde{\mathbf{x}}_C] X =[x 1,x 2,...,x C]和 F s c a l e ( u c , s c ) \mathbf{F}_{scale}(\mathbf{u}_c,s_c) Fscale(uc,sc)指的是特征映射 u c ∈ R H × W \mathbf{u}_c\in\mathbb{R}^{H\times W} uc∈RH×W与标量 s c s_c sc之间的通道乘法
-
2.Discussion ‾ \underline{\textbf{2.Discussion}} 2.Discussion:
- 激活操作作为通道权重适应于特定于输入的描述符z
- 在这方面,SE blocks本质上引入了输入的动态性,提升特征的差异性
4.3.Exemplars: SE-Inception and SE-ResNet
Figure 2: The schema of the original Inception module (left) and the SE-Inception module (right). \textbf{Figure 2: The schema of the original Inception module (left) and the SE-Inception module (right).} Figure 2: The schema of the original Inception module (left) and the SE-Inception module (right).
Figure 3: The schema of the original Residual module (left) and the SE-ResNet module (right). \textbf{Figure 3: The schema of the original Residual module (left) and the SE-ResNet module (right).} Figure 3: The schema of the original Residual module (left) and the SE-ResNet module (right).
1.SE block的灵活性 ‾ \underline{\textbf{1.SE\ block的灵活性}} 1.SE block的灵活性:
- 将SE block应用到AlexNet与VGGNet上是比较容易的
- SE block的灵活意味着它可以直接应用到标准卷积之外的变换
- 为了说明这点,我们通过整合SE block到现代复杂设计的结构中的方式发展SENets
2.SE block示例 ‾ \underline{\textbf{2.SE block示例}} 2.SE block示例:
-
非残差网络:
- 对于非残差网络,SE block的构建以transformation F t r \mathbf{F}_{tr} Ftr作为初始模块 如 Fig. 2 ‾ \underline{\textbf{Fig. 2}} Fig. 2
- 通过对每一个这样的模块做结构上的改变,我们构建了SE初始网络
-
残差网络:
- 再者,SE blocks是足够灵活的被用在残差模块中
- Fig. 3 ‾ \underline{\textbf{Fig. 3}} Fig. 3描述了SE ResNet模型,这里SE transformation作为非恒等映射分支
- Squeeze和excitation作用于恒等映射求和之前
5.模型与计算复杂度
6.实现
7.实验
7.1.ImageNet分类
7.2.场景分类
7.3.COCO dataset目标检测
7.4.分析与解释
8.总结
1.SE block总结 ‾ \underline{\textbf{1.SE block总结}} 1.SE block总结:
-
主题-贡献
- 在这篇论文中我们提出了SE block,它是一种新颖的结构单元,通过动态的通道特征缩放提升网络的表征能力
-
实验
- 大量的实验验证了SENets的有效性,同时它在多种数据集中达到了SOTA
-
未来展望
- 另外,它们对建立通道特征依赖的限制提供了一些见解,我们希望可以提供更多有用的信息在其他需要强判别特征的任务上
- 最后,有SE block引出的特征重要性可能对相关领域(例如针对压缩的网络剪枝)有帮助