——NeoZng [neozng1@hnu.edu.cn]
如果觉得笔者写得还不错,给个关注点个赞吧!
全网最强的CV注意力机制总结
注意力机制最早被使用在机器翻译(或自然语言处理)上中的Encoder-Decoder模型上,让网络在处理不同部分语句时能够聚焦到特定的已经编码的语义向量或输入上。
若想要理解上述注意力机制的来源,请学习和NLP和RNN相关的知识:吴恩达深度学习-序列模型,这是因为在计算机视觉中的注意力和机器翻译可以从不同角度理解。尤其是自注意力机制,强烈推荐李宏毅老师的讲解:李宏毅机器学习课程-self attention
在阅读空间域的QKV模型时,务必先掌握自注意力模型。
而在计算机视觉中,我们不大需要用Query/Key/Value的模型来解释,笔者更倾向于使用特征分解这个词,从特征空间的角度解析cv中的注意力机制。用于计算机视觉的注意力机制一般分为三种:通道域、空间域和混合域。其原理是赋予空间中不同通道或区域以不同的权重,而不是像以往一样进行卷积/池化操作时将空间中的一个位置(空间中的一个位置,对应所有CxWxH中长度为C的狭长的一列)或所有通道视为拥有一样的权重,从而使得网络专注与更重要的信息的提取。
这里会有一个误区,很多同学会认为,网络在训练的时候,只要往正确的方向迭代,不就自然会赋予卷积核中的参数以不同的值,这样难道不会在通道域或空间域产生不同的权重吗?为什么还需要注意力机制?
这里需要特别注意,卷积核上的不同权重参数是定域的,即其只能在其感受野内形成”小注意力“,虽然随着深度的加深感受野逐渐变大,但是其对于浅层和中层的参数更新也是间接的、微弱的。而注意力机制则会关注所有通道/整个WxH的空间的信息,从而选择最重要的部分。因此,也有”卷积是一种特殊的注意力模块“的说法,这么看来也不无道理。
视觉注意力一般分为三种,即通道域、空间域和混合域(前两者都使用)。在分割中还有使用类别注意力(分类特征对于图像分割额外重要),视频分析中也有使用时间注意力来建模目标在时间序列中的关系。
-
通道域
通道域注意力的代表作是SENet,其实现思想和过程都非常简单,仅仅加入了一个即插即用的SE模块分支用于建模不同channel之间的相关性就大幅度地提升了模型性能(最后一届ImageNet图像识别的冠军,超过去年冠军25%)。

SENet的结构
-
SE module通过将上图中的c2xhxw的block利用全局平均池化操作Fsq(取每一个channel的平均值)得到一个1x1xc2的相关向量,再将其投入一个两层的全连接层Fex后得到一个注意力得分,随后让此得分向量和原feature maps进行简单的标量乘法操作,就得到输出。注意力得分即代表了每个通道的重要性(权重)。由于SE modeul的轻量化设计使得其在几乎没有增加什么运算量的情况下大大提升了网络的性能。
-

本文深入浅出地介绍了计算机视觉中的注意力机制,包括通道域、空间域及混合域的原理与应用,并详细剖析了SENet、CBAM等经典模型。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



