深度学习:通道注意力机制

291 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第18天,点击查看活动详情

什么是通道注意力机制

  • 注意力机制的思想来源于人的视觉,人的眼睛在看到一副图片时,通常不会同时关注图像的每一个像素,而是先将视线放在图像主体位置,而对其他位置给予更少的视线。同样,在计算机视觉任务中,并不是需要对图像的每一个区域施加完全一样的处理,就像我们人类在看图像时对每个区域投放的视线不完全相同,这种不同区域的不同视线就是注意力机制。
  • 通道注意力简单理解就是对输入特征图的不同通道给予不同的权重,权重高的通道被给予更多处理。
  • 下面介绍几种常见的通道注意力机制

SE注意力机制

image.png

全称:Squeeze-Excitation Attention

  • 步骤:
  1. Ftr:卷积操作获取特征图
  2. Squeeze(挤压):对每个通道的张量进行2维全局平均池化
  3. Excitation(激励):两个全连接层
  4. Fscale:将1得到的特征图与3得到的权重相乘
  • 优点:借助二维全局池计算通道注意力,并以相当低的计算成本提供显著的性能增益
  • 缺点:只考虑了对通道间信息进行编码,忽略了位置信息对于捕获对象结构的重要性

CBAM:卷积块注意力模块

overview

image.png

因为通道注意力只能建立通道直接的关系,而忽略了通道内的空间信息,因此卷积块注意力模块在通道注意力模块后串行接入一个空间注意力模块,从而计算位置信息。

通道注意力模块

image.png

  • 步骤:
  1. 分别对输入张量按通道进行全局最大池化和全局平均池化
  2. 将最大池化和平均池化的结果分别输入一个共享参数的多层感知机
  3. 将多层感知机的两个输出进行逐元素相加和激活

空间注意力模块

image.png

  • 步骤:
  1. 沿通道方向应用最大池化和平均池化,并将结果连接:即左侧为最大池化结果,右侧为平均池化结果
  2. 卷积同时降维
  3. 激活

CBAM优缺点分析

优点:先使用通道注意力获取通道关系,再使用卷积计算空间注意力来利用位置信息
缺点:卷积只能捕获局部关系,无法建模长距离依赖

卷积对维度的改变

刚开始接触深度学习的时候不理解1*1卷积的作用,觉得这种卷积核是毫无用处、多此一举的,但是在看的论文模型中总是出现,并且可以用来降维,此前一直不理解,今天就打算深究这个问题。

  • 问题关键:理解卷积核的尺寸。之前看的卷积核都只说其尺寸是h*w,为二维平面,实际上卷积核的尺寸是c*h*w,是一个三维立方体形状,其中c是输入图像的通道数。
  • 对于输入通道:卷积核的完整尺寸为(c, h, w),其中c等于输入图像的通道数,卷积时是用整个核对图片的所有通道卷积
  • 对于输出通道:输出通道设置为几就表示用几个卷积核对图像卷积,每个卷积核卷积的结果为输出图像的一个通道
  • 1*1卷积降维原理:输入通道数i,输出通道数o,输入图像大小h*w,使用o个大小为(i, 1, 1)的卷积核操作,输出图像大小仍为h*w,但是通道数会变为o