注意力机制论文 --- Crop leaf disease recognition based on Self-Attention convolutional neural network

最近找了十几篇神经网络注意力机制的论文大概读了一下。这篇博客记录一下其中一篇,这篇论文大概只看了摘要和方法。本文主要就是识别农作物叶子疾病,因为农作物叶子疾病图片背景复杂并且只有叶子区域会有小的反差。本文采用的就是自注意力卷积神经网络self-attention convolution neural network(SACNN),这个SACNN由俩部分的网络组成,一个是base-net,还有一个是SA-net,其中基础网络用来提取图片的全局特征,SA-net用于提取病变的局部特征。这里的SA就是为了提高CNN的抗干扰能力。本文在方法部分讲了网络的结构和参数的试验。

Base-Net

Base-Net,基础网络其实就是卷积的叠加,并且使用残差来改善。基础网络一共由九层,前三层都是残差块,这三层用于加速训练的收敛速度,改善精确率、并且使网络不容易陷入过拟合中,每个残差块有三个卷积操作。后面是一个最大池化层,三个卷积层,一个全局平均池化层和一个softmax层。这么多卷积层的目的就是为了能够提取出图片的全局特征。


图1. Base-Net

Self-attention net

Self-attention net,三个并行的卷积操作,俩个矩阵乘法运算,一个softmax层和一个额外的操作。在整个网络中self-attention net是嵌套在base-net中的。图中的转置操作是矩阵运算的需要,attention maps是self-attention net网络的关键值,有了它之后就可以计算出后面的SA和out的值。Self-attention利用attention来计算每个单词与其他所有单词之间的关联,这样就可以考虑到了上下文之间的信息。在图中也是这样进行运算的,Conv1每个块都会和Conv2图像中所有的块进行计算相乘,之后使用softmax来归一化处理得到attention maps。其中的ratio就是通道设置参数,一般设置为1/2,1/4,1/8,1/10,1/16。


图2. Self-attention Net

整体的过程可以用公式来表示:

\[Out(x) = \mu SA(x) + In(x) \]

\[SA(X) = N(x_j)^TAtt_{ji} \]

\[Att_{ji} = \frac{exp(F_{ij})}{ \sum_{i=0}^Iexp(F_{ij})} \]

总体结构

其中网络整体结构如下所示


图3. 网络整体结构

其中蓝色块就是Base-Net,虽然图中标记为Conv。实验表明,SA放在conv8是最好的,并且其中的ratio取1/2或者1/8是最好的,不过ratio对之影响很小。并且SA网络只有一个才是最好的,多个SA网络会过分强调局部特征而忽略了全局特征。

这篇文章注重了全局和局部俩种特征,不过对于局部特征用的是self-attention的方法来进行设计上下文信息的。不过全局就是普通的卷积层的叠加来提取出的全局特征。对于文中局部特征的提取,还是可以值地参考的设计。

posted @ 2020-07-06 09:04  长安不乱  阅读(1077)  评论(1编辑  收藏  举报