时不我与

V1

2022/02/27阅读:35主题:橙心

1.16

日期: 1.16 - 1.17

原文:Involution: Inverting the Inherence of Convolution for Visual Recognition

论文链接: https://arxiv.org/abs/2103.06255

pytorch official codehttps://github.com/d-li14/involution

写在前面

这是一篇搞计算操作的文章,第一次读这方面的文章,可能有些认识有些问题。期待作者的官方解读。

1.简介

卷积操作有两个重要的特征(spatial-agnostic and channel-specific)

空间无关的特征虽然提高了效率但是剥夺了卷积核适应于不同空间位置的多种视觉模式的能力。另一方面,卷积内部的通道间冗余的问题在许多成功的深度神经网络中都很突出

文章提出了与卷积相对称的内卷,具有的特性是(spatial-specific and channel-agnostic)

这种操作统一了Self-Attention和卷积。

2.怎么理解卷积操作的两个重要特征(spatial-agnostic / channel-specific)?

对于一个常规卷积操作来讲,从一个C1通道数的input想得到一个C2通道数的output,需要C2个卷积核。如果是3x3卷积的话,每个卷积核的尺寸是C1x3x3的。这个C1x3x3的的卷积核,我们完全可以把它看成是C1个独立的3x3的卷积核。也就是说,在生成output的每一个通道的时候,对于input的每一个通道都有一个独立的3x3的卷积核。

在input的一个通道上,整个这一个通道都是复用一个卷积核的。这就是所谓的空间无关(spatial-agnostic),我现在用什么卷积核和目前所在的空间位置没有关系,只和我现在所在的通道位置有关系。还有一种说法,这种性质叫平移不变性

而ouput中每一个通道的形成都需要依赖于input里C1个卷积核在C1个通道中的计算。这可能就叫特定于通道(channel-specific)。文章中对此的解释是:

在Channel域中,卷积核的频谱负责收集编码在不同Channel中的不同信息,满足channel-specific特性

3.内卷(Involution)的提出

作者认为卷积操作的两个特征虽然也有一定的优势,但同样也有缺点。所以提出了Involution,Involution所拥有的特征正好和卷积相对称,即 spatial-specific and channel-agnostic

那就是通道无关和特定于空间。和卷积一样,内卷也有内卷核(involution kernels)。内卷核在空间范围上是不同的,但在通道之间共享。看到这里就有一定的画面感了。

内卷的优点:

1.可以在更大的空间范围中总结上下文信息,从而克服long-range interaction(本来的卷积操作只能在特定的小空间如3x3中集合空间信息)

2.内卷可以将权重自适应地分配到不同的位置,从而对空间域中信息量最大的视觉元素进行优先级排序。(本来的卷积在空间的每一个地方都是用到同一个卷积核,用的同一套权重)

4.内卷核是怎么形成的?

与卷积核不同,内卷核是基于单个像素的而不是其与相邻像素的关系。

内卷的内卷核的形状取决于输入特征图X的尺寸。有一个kernel generation function,代表从输入生成内卷核:

,即从某个像素生成到内卷核。

在这个生成公式中,可以看到两个W代表的是线性变化。W0将 1x1xC 的某一像素的表示通过线性变化降维到C/r (r为一个ration,代表减少比率)。σ代表的是BN和非线性激活。W2将1x1xC/r变化为KxKxG。这便是involution kernels。

5.这个内卷操作到底是怎么操作呢?

文章中为了帮助读者理解这个内卷操作,有一张图和一段伪代码。可以结合起来理解整体的操作。

如上图所示,内卷核就是那个H,这里有个参数叫G,代表一个组中共享一个内卷核的数量。(在图中G为1)

大概有如下步骤:

1.以单个像素为条件产生内卷核

2.进行乘加运算,就是先把核拉成KxKxC,与对应的位置相乘,再把KxK个1x1xC的加起来,代替原来该像素的位置

6.RedNet

基于内卷的操作基础上设计了一个叫RedNet的网络,作者称可以实现优于基于卷积的ResNet和基于自我关注的图像分类模型的性能。

也就是再resnet的bottleneck的位置上替换了卷积,具体可以看论文

7.总结

这个内卷感觉就是想把这个核同时作用在通道和空间上。同时这个核的生成又来自于单个像素点1x1xC,提取了跨通道的信息。

网络学习的部分还是挺多的,要学从单个像素变成核的过程,要学经过核变出输出的过程。

分类:

后端

标签:

后端

作者介绍

时不我与
V1