Selective Kernel Networks(Upgrad
SENet是对特征图的通道注意力机制的研究,之前的CBAM提到了对特征图空间注意力机制的研究。这里SKNet针对卷积核的注意力机制研究。
不同大小的感受视野(卷积核)对于不同尺度(远近、大小)的目标会有不同的效果。尽管比如Inception这样的增加了多个卷积核来适应不同尺度图像,但是一旦训练完成后,参数就固定了,这样多尺度信息就会被全部使用了(每个卷积核的权重相同)。
SKNet提出了一种机制,即卷积核的重要性,即不同的图像能够得到具有不同重要性的卷积核。
SKNet对不同图像使用的卷积核权重不同,即一种针对不同尺度的图像动态生成卷积核。整体结构如下图所示:
image.png网络主要由Split、Fuse、Select三部分组成。
• Split部分是对原特征图经过不同大小的卷积核部分进行卷积的过程,这里可以有多个分支。
对输入X使用不同大小卷积核分别进行卷积操作(图中的卷积核size分别为3x3和5x5两个分支,但是可以有多个分支)。操作包括卷积、efficient grouped/depthwise convolutions、BN。
• Fuse部分是计算每个卷积核权重的部分。
将两部分的特征图按元素求和
image.pngFgp为全局平均池化操作
U通过全局平均池化(GAP)生成通道统计信息。得到的Sc维度为C * 1
image.png经过全连接生成紧凑的特征z(维度为d * 1), δ是RELU激活函数,B表示批标准化(BN),z的维度为卷积核的个数,W维度为d×C, d代表全连接后的特征维度,L在文中的值为32,r为压缩因子。
Ffc为先降维再升维的两层,需要注意的是输出的两个矩阵a和b,其中矩阵b为冗余矩阵,在如图两个分支的情况下b=1-a。
image.png• Select部分是根据不同权重卷积核计算后得到的新的特征图的过程。
softmax背景知识:
image.png image.png
进行softmax计算每个卷积核的权重,计算方式如下图所示。如果是两个卷积核,则 ac + bc = 1。z的维度为(d * 1)A的维度为(C * d),B的维度为(C * d),则a = A x z的维度为1 * C。
Ac、Bc为A、B的第c行数据(1 * d)。ac为a的第c个元素,这样分别得到了每个卷积核的权重。
image.png将权重应用到特征图上。其中V = [V1,V2,...,VC], Vc 维度为(H x W)
image.png如果select中softmax部分可参考下图(3个卷积核)
image.png image.png