在这里插入图片描述
这篇文章来自CVPR2021,作者是港科大计算机系在读,本科毕业于清华,个人主页


Motivation

既然是从卷积出发,我们需要先梳理卷积。
在这里插入图片描述
卷积的操作如上图所示,是目前神经网络里最基础的算子。
它具备两个特性:

  • 空间不变性
    因为卷积网络采用滑窗的形式,所以对于一张图片的各个部分,是共享卷积核参数的,相比于全连接网络,它在某个像素处,只考虑一个小邻域的信息,相当于加了一个很强的正则。
    这个特性的好处是大大降低了图像处理所需的参数量,以及使得网络输出具有平移不变性,也就是某一个特征不管出现在图像的某处,都会得到相同的输出。
    但是,平移不变性带来的坏处在于网络忽略了图像特征的位置信息,同时也受制于卷积核的大小使得网络无法提取远距离的像素相关性。
  • 通道特异性
    另一个特性是通道特异性,意思是每个输出通道来自于同一个卷积核,如图(来源见水印):
    在这里插入图片描述
    如果一个Kernel的size是 K × K × C K\times K \times C K×K×C的,那么我们把它展开成 C × K 2 C\times K^2 C×K2的矩阵,在C很大的时候,因为矩阵的秩最大不超过 K 2 K^2 K2,所以其中一定有信息的冗余。

Dao

网络设计的本质在于分配算力,而卷积显然是将算力更多地分配在通道之间。
但是从人的视觉出发,我们更关注像素空间的联系,所以卷积有一定的不合理性。


Involution

作者基于此,给出了一种和卷积对偶的算子,称为内卷
在这里插入图片描述
这张图说明了Involution的工作流程:对某一处的像素(图中红色部分),首先用∅函数(一般是某种线性变换,在论文中是BottleNeck形式,即一种1x1卷积的组合生成特定大小的向量)生成特定大小的权重向量,然后再用一种变换H(最一般的形式是重新排列)将权重展开成一个kernel,最后在通道维度上延展(直接复制),得到K×𝐶×𝐶的卷积核,与原图作卷积操作,得到输出。


Experiments

作者的实验分布很广,就不一一罗列了,主要有一个很有意思的地方:完全用Invo代替Conv并不能得到很好的效果,而是Conv作Head,Invo作Neck效果更好,那么像素空间信息的整合到底是在哪一步更重要呢?

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐