引言
神经网络中的注意力机制(Attention Mechanism)是在计算能力有限的情况下,将计算资源分配给更重要的任务,同时解决信息超载问题的一种资源分配方案。在神经网络学习中,一般而言模型的参数越多则模型的表达能力越强,模型所存储的信息量也越大,但这会带来信息过载的问题。那么通过引入注意力机制,在众多的输入信息中聚焦于对当前任务更为关键的信息,降低对其他信息的关注度,甚至过滤掉无关信息,就可以解决信息过载问题,并提高任务处理的效率和准确性。
这就类似于人类的视觉注意力机制,通过扫描全局图像,获取需要重点关注的目标区域,而后对这一区域投入更多的注意力资源,获取更多与目标有关的细节信息,而忽视其他无关信息。通过这种机制可以利用有限的注意力资源从大量信息中快速筛选出高价值的信息。
注意力机制的核心:使网络关注到更为重要的信息
注意力机制能使卷积神经网络自适应的注意更为重要的信息,因此注意力机制是实现网络自适应注意的重要方式。
一般而言,注意力机制可以分为:通道注意力机制、空间注意力机制、二者的结合
空间注意力机制(关注每个通道的比重):
通道注意力机制(关注每个像素点的比重):SENet、ECANet
二者的结合:CBAM
ECANet(通道注意力机制)
ECA-Net:Efficient Channel Attention for Deep Convolutional Neural Networks,论文地址
ECANet实现示意图如下所示
ECANet的研究背景:深度卷积神经网络(CNN)在计算机视觉领域得到了广泛的应用,在图像分类、目标检测和语义分割等方面取得了巨大的进展。从具有开创性的AlexNet提出以来,研究人员不断的探索如何才能提升CNN的性能。近年来,SENet将信息通道注意力引入卷积块引起了人们的极大兴趣,显示出极大的性能改进潜力。后来的学者将研究重点着重于如何通过捕获更复杂的通道依赖性或结合额外的空间注意来改进SE模块,但随着模型精度越高,复杂度越高,随之带来计算量的提升和计算成本的增加。
ECANet的实现:ECANet是通道注意力机制的一种实现形式。ECANet可以看做是SENet的升级。ECANet作者认为SENet所采用的降维降维操作会对通道注意力的预测产生负面影响且获取所有通道的依赖关系是效率且不必要。在论文中,作者认为卷积具有良好的跨通道信息获取能力。
ECA模块去除了SE模块中的全连接层,既而在全局平均池化后的特征上通过一个一维卷积进行学习。既然使用了一维卷积进行学习,那么一维卷积的卷积核大小的选择就更加重要,一维卷积的卷积核大小会影响注意力机制每个权重计算时所要考虑的通道数量,专业术语为跨通道交互的覆盖率。
ECA模块使用大小为k的快速一维卷积核(其中卷积核大小k表示局部跨通道交互的覆盖范围即有多少领域参与了一个通道的注意预测)。
ECA模块使用自适应方法确定k,其中跨通道交互的覆盖范围(一维卷积核的大小k)与通道维度成比例,进而避免了手动调整k值。
ECANet的核心:提出了一种不降维的局部跨通道交互策略,有效避免了降维对于通道注意力学习效果的影响。适当的跨通道交互可以在保持性能的同时显著降低模型的复杂性。通过少数参数的调整,获得明显的效果增益。