真内卷:与卷积“反”着来的Involution算子

本文是对由港科大,北大以及字节跳动AI Lab的研究人员共同于今年被今年CVPR接收的新神经网络结构Involution的学习总结。

原文

Github代码

目录

  • 灵感来源
    • 空间不变性
    • 通道独立性
  • 解决方法
    • 相较于卷积核
    • 相较于自注意力
  • 模型构架
  • 总结

灵感来源

作者指出,近些年,随着CNN卷积神经网络的面世,深度学习已经成为视觉任务的重要模块之一。
其中,由于卷积核两大固有特性:空间不变性和通道独立性,使其至今依旧是视觉任务的首要之选。但也正是因为这两个特征,也带来了许多问题。

空间不变性

所谓空间不变性(Spatial-agnostic),就是假如一张图片中有一只兔子需要识别,那么无论它出现在哪里(即无论如何平移旋转或尺寸拉伸),在处理后均不会改变输出。为了达到上述目的,卷积必须多层嵌套,以图扩展感受野具备全图信息(因为卷积核过大会导致参数爆炸),但多个3*3卷积核嵌套效果并不如单独一个大的卷积核效果优越。为了平衡上述的优缺点,这样小的卷积核极大的限制了模型对于图像的感受能力。

通道独立性

所谓通道独立性(Channel-specific),就是卷积时,两个channel之间的参数不共享,使得两个通道的Feature相互独立。这带来了许多坏处,比如参数冗余,这在许多优秀的CNN模型中十分突出。

解决方法

作者为了解决以上问题,试图将卷积核特性倒转。将以上特性Invert为Channel-agnostic和Spatial-specific.字面上来理解,就是内卷核(Involution Kernel以后统称内卷核)在空间上彼此独立,但在通道上彼此共享。

那么这样有什么好处呢?

相较于卷积核

相较于卷积神经网络,它通过在不同的Channel之间(共享的数量可以设置)共享参数达到了消除(至少是缓解)冗余现象的出现。

相较于自注意力

自注意力(self-attention)可以参考我之前的文章《学习笔记:自注意力》自注意力已经成为了我们非常重要的一个架构。但一直困扰我们的就是,其虽然拥有很强大的能力,但却需要大量有标注的数据供其训练,架构繁琐复杂也是其中一个不可忽视的大问题。

而作者不仅证明了自注意力机制是Involution中一个Over-loading的特例。当设置特定参数的时候,Involution将可以与self-attention达到相同效果。

作者还证明了Involution不像自注意力那样基于相邻像素的关系生成Kernel,而是根据单个像素生成(即C个通道Vector)。
并且该Involution由于Feature Map形状固定,并且不具备空间不变性,其特征出现位置可以在输入图像中表现出来,不需要额外添加Position encoding这个大坑。这极大地简化了模型。
最后该模型通过参数共享,也减少了参数量,加快了收敛速度。

模型构架

Involution Kernels: H ∈ R H × W × K × K × G H\in R^{H\times W\times K\times K\times G} HRH×W×K×K×G
其生成公式如下:
在这里插入图片描述
Φ在其中指代某个函数
为了保证Involution整体的简洁性,本文采用了一个简单的函式:
在这里插入图片描述
不过作者也表示很可能由更有效的方式等待探索。
其中 W 0 ∈ R C r × C W_0\in R^{\frac{C}{r}\times C} W0RrC×C W 1 ∈ R ( K × K × G ) × C r W_1\in R^{(K\times K\times G)\times\frac{C}{r}} W1R(K×K×G)×rC代表2个线性变换,共同构成bottleneck结构,中间通道维数由降阶比 r r r控制,以便有效处理, σ \sigma σ表示批处理归一化后的对于2个线性变换的非线性激活函数。
对于某一个点 X i j ∈ R C X_{ij}\in R^C XijRC其拥有特定的Kernel H i , j , . , . , g ∈   R K × K H_{i,j,.,.,g}\in\ R^{K\times K} Hi,j,.,.,g RK×K(在这里,我们假设g=1,2,…,G,其中G 我们为使用乘加(Multiply-add)运算得出最终这一位置的结果。
在这里插入图片描述
可视化算法如图:
先使用Φ函数将通道数由C降低为G并且生成矩阵H。
真内卷:与卷积“反”着来的Involution算子_第1张图片
再使用Multiple-add算法,先回乘生成K×K×C,再将同通道的所有数据加和至输入数据初始位置。全过程Input Feature和Output Feature大小未发生变化。
真内卷:与卷积“反”着来的Involution算子_第2张图片

总结

本文提出了一种全新的算子:Involution Kernel.并将self-attention从数学中证明并归为自身特例。简化了运算以及模型复杂度。达到了既简洁又高效的模型要求。

你可能感兴趣的:(总结,深度学习)