轻量模块注意⼒机制ECA-Net(注意⼒模块+⼀维卷积)——总结2⽂章⽬录
ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks(2020)
excellent注意⼒模块⽐较
纵坐标为准确性,横坐标为模型参数量(复杂度)。
ECA模块
Avoiding Dimensionality Reduction(避免维度减少)
relation>自信的故事SE-Net
SE模块的通道注意⼒通过下式计算:
,济南新东方官网
其中,为全局平均池化函数,
为Sigmoid函数。在SE-Net中,通道注意⼒模块通过公式(2)进⾏降维(简单来说,就是SE-Net模块中的全连接层),这样让通道和权值之间没有直接联系。下表中的SE-Var1(⽆参数)、SE-Var2(独⽴学习各通道的权重)、SE-Var3(采⽤⼀个FC)均为不降维的变形,表中结果清楚的表
明,避免降维的作⽤。
Local Cross-Channel Interaction
(局部跨通道交互)lucifera
ω=σ(f (g (χ)))ω={W ,W }12σ(fW 1,W 2(g (χ)))g (χ)=χg (χ)=WH 1∑i =1,j =1W ,H
ij WH 1i =∑1,j =1W ,H χij σσ
对于SE-Var2、SE-Var3,权重式:
两者之间区别在于,SE-Var3考虑了不同通道之间的交互,SE-Var2则没有;但是SE-Var3的需要⼤量参数,这样复杂性较⾼。SE-Var2+SE-Var3
massstorage
块对⾓矩阵。
每个组包括个通道,有个参数。然⽽,由上表可以看出,这样做并没有给SE-Var2带来增益,表明它不能捕获局部通道之间的相互作⽤,⽽且过多的组卷及将层架内存访问成本,从⽽降低计算效率。
ECA-Net中利⽤矩阵如下
,来学习通道注意⼒:
由个参数,⼩于,
避免了不同通道之间完全独⽴,考虑到了不同通道之间的相互作⽤。
所以,如上式仅考虑和它的紧邻的通道之间的相互作⽤⽽计算的权重。
加:⼀种更有效地⽅式,通过共享相同的学习参数,通过内核⼤⼩为k的快速1维卷积来实现(⼀维卷积和卷积是不同的,⼀维指的是的卷积)
如上表,k=3的ECA模块和SE-Var3取得了相似的结果,⽽且具有更低的模型复杂度。宁波天一
Coverage of Local Cross-Channel Interaction (局部跨通道交互覆盖)
ECA 模块的k 如何取值?
xiuzhen通过交叉验证进⾏⼿动调整不仅仅会很慢,⽽且消耗⼤量计算资源浪费。滤波器英文
ECA-Net采⽤Group convolutions。分组卷积⽤于改进CNN架构,其中⾼维(低维)信道在固定分组数量的情况下包括长(短)卷积。换句话说,就是通道维度和卷积核⼤⼩成⽐例。采⽤⾮线性函数,⽽且卷积核数量设为2的
次⽅(因为通常通道尺⼨是2)。公式如下:
文洛克
卷积尺⼨:
表⽰距离最近的奇数,ECA-Net中和KaTeX par error: Undefined control quence: \b at position 48: …trol quence: \b a t position 1: …分别取2和1.
实验结果
→→→GC G C GC 2G C 2
W Wk k W Wk k k ∗Ck ∗C W WG G W Wk k y yi i y yi i 1×11×11×k 1×k CC kk kk ∣t ∣∣odd t ∣odd tt γγ
上图,⽹络参数(Param)、每秒浮点运算(FLOPS)、训练/参考速度(FPS)、top-1/top-5准确率。
实验结果
k值的影响如下图,ResNet-50和ResNet-101为主⼲,对照SENet。可以看出,ECA-Net相较于SENet,准确率有了极⼤的提升。
与不同的CNN对⽐
总结
ECA-Net提出了⼀种⾼效的相关性通道(ECA)模块。模块通过⾮线性⾃适应确定的⼀维卷积组成。ECA是⼀种⾮常轻量级的即插即⽤块,可以调⾼各种CNN的性能。
代码