Involution:新神经网络算子(CVPR2021 论文速读)

论文链接:https://arxiv.org/abs/2103.06255
github代码链接:https://github.com/d-li14/involution

一、介绍

Involution这个全新的神经网络概念是由CV大神李铎和胡杰等人于2021年CVPR论文Involution: Inverting the Inherence of Convolution for Visual Recognition中提出的,相比于传统的convolution,involution巧妙地将网络计算量分为kernel generation和Multiply-Add 两部分进行计算 ,明显改善了传统convolution network的参数量和计算量 ,为以后神经网络的优化提供了一种全新的思路
在这里插入图片描述


这篇论文做出的三点主要贡献,使得内卷要比卷积在图像分类、图像识别、语义分割等领域有着更高的使用性价比:
1、作者重新考虑与空间和通道范围相关的卷积的固有属性。这促使我们提倡其他具有辨别能力和表现力的潜在算子作为替代方案,突破现有的卷积归纳偏差。

2、此外作者将新兴的Self-Attention融入到视觉表征的学习过程中。在这种情况下,关系建模中对像素对的组合要求受到了挑战。此外,作者通过involution统一了Self-Attention和convolition的观点;

3、基于involution的驱动的架构在广泛的视觉任务中普遍运行良好,包括图像分类、对象检测、实例和 语义分割,提供比基于卷积更好的性能。**


在这里插入图片描述


二、为什么会提出involution这一概念

对于经典卷积convolution,在神经网络中一直以来都是中流砥柱般的存在,其具有两个特性:spatial-agnostic and channel-specific(空间不可知和通道特定)。
在空间范围上:前者通过在不同位置之间重用卷积核来保证卷积核的效率,并追求平移等效性。
在通道域中:一系列卷积核负责收集不同通道中编码的各种信息,满足后一特性。

自从VGGNet出现以来,现代神经网络通过限制卷积核的空间跨度不超过3*3 来满足卷积核的紧凑性。

convolution缺点:
1、它剥夺了卷积核适应不同空间位置的不同视觉模式的能力。
2、局部性限制了卷积的感受野,对小目标或者模糊图像构成了挑战。
3、卷积滤波器内部的冗余问题突出,卷积核的灵活性受到影响。


为了克服这些经典卷积所存在的这些局限性,所以本文作者提出了involution这个概念
在involution运算过程中,内卷具有空间特定性和通道不可知“spatial-specific and channel-agnostic”(与convolution相反),内卷核在空间范围上是不同的,但在通道上是共享的,作者还通过在通道维数上共享involution 核来减少核的冗余。

动态参数化 involution核在空间维度上具有广泛的覆盖。通过逆向设计方案,本文提出的involution 具有卷积的双重优势:
1、可以在更广阔的空间中聚合上下文语义信息,从而克服了对远程交互进行建模的困难;

2、可以在不同位置上自适应地分配权重,从而对空间域中信息最丰富的视觉元素进行优先排序。


在这里插入图片描述
很多任务为了提取特征长期依赖关系提出用Transformer来建模。在这些研究中,纯粹的Self-attention可以用来构建具有你良好性能的独立模型。而本文将揭示Self-Attention是通过一个复杂的关于内卷核结构的公式来对邻近像素之间的关系进行建模,其实也就是involution 化的特殊情况。作者在实验中证明,即使使用简单版本, 内卷也可以实现Self-Attention的高精确性。


三、标准深度卷积

我们从引入标准卷积操作开始,使提出的内卷的定义自包含。我们让X为输入特征,H和W分别为高度和宽度,C为输入通道。在特征张量 内,位于图像单元中的每个特征向量 都可以被认为是代表某些高级语义的像素。在特征张量 X 的立方体内部,位于图像点阵单元中的每个特征向量 Xi,j 可以被认为是代表某些高级语义模式的像素。

一个固定核大小为K*K 的卷积滤波器记为F ,其中每个滤波器包含Ci个卷积核 ,并以滑动窗口的方式对输入特征映射进行乘加运算,得到输出特征映射Y ,定义为:
在这里插入图片描述
其中, △k为考虑对中心像素进行卷积的邻域偏移量集合,记为(这里的 ×表示笛卡尔积):
在这里插入图片描述
此外,Depth-wise Convolution将Group Convolution推到极端,其中每个卷积核严格地对以k 为索引的单个特征通道进行卷积,因此在假设输出通道数等于输入通道数的情况下,从Fk 中消除第一个维来形成 g
Gk。从而卷积运算就变成了:
在这里插入图片描述
需要注意的是:卷积核 Gk是特定于Channel中的第 k个特征slice X ,并在该slice中的所有空间位置之间共享。


四. Involution设计

与上述标准卷积或深度卷积相比,卷积核 H 旨在包含空间和通道域中具有逆特征的变换,因此得名。(在论文中给involution的解释应该更契合“逆特征卷积”这个中文译名。网上也很多小伙伴译为“合卷”或者“内卷”。)
在involution的设计中,involution核是专门位于对应坐标(i,j)的像素Xi,j定制的,但在通道上共享,G计算每个组共享相同的Involution核的组数。利用Involution核对输入进行乘加运算,得到Involution的out feature map定义为::
在这里插入图片描述
与卷积核不同,Involution核H的形状取决于输入特征映射X的形状。设计想法是生成以原始输入张量为条件的Involution核,使输出核与输入核对齐。这里将核生成函数符号为 φ,并将每个位置(i,j)的函数映射抽象为:
在这里插入图片描述
其中 Ψi,j 索引以 Hi,j 为条件的像素集。


具体的设计细节:
为了尊重卷积的简洁,作者在概念上尽可能地简化involution。请注意,目标是首先为核生成函数 φ 提供设计空间,然后快速原型化一些有效的设计实例以供实际使用。在这项工作中,作者选择从单个像素 Xi,j 跨越每个involution内核 Hi,j 。形式上,我们具有内核生成函数:
在这里插入图片描述
内核形式如下:
在这里插入图片描述
式子中W₀和W₁代表2个线性变换,共同构成bottleneck结构,中间通道维数由降价比r控制,以便有效处理,σ表示批处理归一化后的对于2个线性变换的非线性激活函数。


involution示意图:
在这里插入图片描述

involution核 Hi,j ∈ Rv(在本示例中 G = 1,为了便于演示)由函数 φ 产生,该函数以 (i, j) 处的单个像素为条件,然后进行通道到空间的重新排列.对合的乘加运算分解为两个步骤,乘积运算为将C个通道的张量分别与内卷核H相乘,相加运算则是将内卷核范围内的元素相加于内卷核核心


Involution在网络中的应用:RedNet
为了使用involution构建整个网络,作者通过堆叠残差块来反映 ResNet 的设计,因为 ResNet 的优雅架构使其易于孵化新想法并进行比较。我们在 ResNet 的主干(使用 3×3 或 7×7 involution进行分类或密集预测)和主干(对所有任务使用 7×7 involution)的所有瓶颈位置用involution代替 3 × 3 卷积,但保留所有用于通道投影和融合的 1 × 1 卷积。这些经过精心重新设计的实体联合起来形成了一种新的高效的backbone,称为 RedNet。RedNet让我们确保表达能力的同时确保网络结构的轻量化。
backbone的构建请参照代码:https://github.com/d-li14/involution/tree/main/cls/configs/rednet


五、Involution论文背景

卷积的发展
作为现代视觉系统事实上的标准算子,卷积 具有两个主要特征,空间不可知和通道特定。卷积核在读取等价的空间范围内与位置无关,但在不同的信息识别通道上私有化。沿着另一项研究方向,深度卷积证明了在有效的神经网络体系结构设计中的广泛适用性。

深度卷积(Depth-wise Convolution)是分解标准卷积的空间和通道纠缠的开创性尝试,它与作者提出的involution操作对称,因为深度卷积在作者发明的involution核在不同的通道共享时以及专用于图像点阵中的每个平面位置时包含一组特定于每个通道的内核,并且链接:快速读懂深度卷积

直到最近,动态卷积才作为静态卷积的强大变体出现。这些方法要么直接生成整个卷积滤波器 ,要么参数化与每个卷积核相关的采样网格 。对于前一类,与我们不同的是,它们动态生成的卷积滤波器仍然符合标准卷积的两个属性,因此会导致滤波器生成的大量内存或计算消耗。关于后一类 ,只有某些属性,例如卷积核的足迹,以自适应方式确定。

实际上,在人脸识别领域的早期,DeepFace 和 DeepID 已经探索了空间域中没有权重共享的局部连接层,这受到人脸图像中明显不同的统计区域分布的启发。 类似于动态卷积,作者提出的involution通过在不同位置共享内核生成函数的元权重来解决这个难题,尽管不是直接共享内核实例的权重。也有以前的工作采用逐像素动态内核进行特征聚合,但它们主要利用上下文信息进行特征上采样 , 并且仍然依赖卷积进行基本特征提取。与替代卷积而不是上采样最相关的工作可能是Adaptive Converlution kernel(以像素为单位生成的滤波器仍然继承卷积的一个原始属性,在每个通道上以不同的方式执行特征聚合)


注意力机制(Attention Mechanism)
注意力机制起源于机器翻译领域,它的成功也被转化为大量的视觉任务

在这里插入图片描述
作者在方程4中提出的对合。 让人联想到 self-attention,并且基本上可以成为它的广义版本。self-attention pools 值 V 取决于通过计算查询和关键内容(query and key content)Q 和 K之间的对应关系获得的关联度,可以公式化为:
在这里插入图片描述
其中 Q、K 和V 是对输入 X的线性变换, H为多Heads Self-Attention中Head的个数。相似之处在于,这2种操作符都通过加权和来收集邻域或较小范围内的像素。一方面,Involution的计算机制可以看作是空间域上的一种集中。另一方面,Self-Attention中的affinity矩阵QKт ,可以看作是一种Involution核H 。

另一方面,attention map,或者说 self-attention 中的亲和矩阵 QK,可以看作是一种involution核 H。 Hi,j重新调整之前用local self-attention替换卷积来建立主干模型的努力,他们必须根据查询和键之间的关系推导出亲和矩阵(affinity matrix)(相当于involution核)内容,可选择手动设置的相对位置编码来实现排列方差。从这个角度来看,对于 self-attention,内核生成函数的输入Hi,j将成为由Ψi,j =(i,j)+ ∆K1索引的一组像素,包括关注像素及其周围的像素。随后,该函数可以以有序 或无序 的方式组合所有这些参与像素,并利用它们之间的复杂关系。与上述形成鲜明对比的是,通过仅对原始输入像素本身进行操作来构成involution核,其中 Ψi,j = {(i, j)},如Hi,j. 从self-attention的角度来看,我们的involution核仅显式地依赖于查询内容,而相对位置信息则隐式地编码在我们的involution核生成函数的有组织的输出形式中。
虽然牺牲了像素配对关系建模,但 RedNet 的最终性能与那些基于配对关系的模型相当。因此,我们可能会得出一个结论,即involution的宏观设计原则而不是其微观设置的细微差别在视觉理解的表征学习中发挥了重要作用,作者在实验部分的实证结果证实了这一点。


六、实验结果

图片分类测试结果:
在这里插入图片描述

如上表所示:其中Params为参数量,FLOPs为每秒操作浮点数运算量(floating point of per second)

我们可以很容易得出结论:加入Involution后,网络参数量和运算量降低,测试精度反而得到了提升

在这里插入图片描述
如上表所示:其中 RedNet 展示了其优点在相同精度水平下可以大大缩短GPU和CPU的运算时间。


目标检测实验结果:
在这里插入图片描述
如上表所示:当involution用于网络的backbone、neck和head时,在相同的mAP检测水平下,各个网络的参数运算量都明显减少。


语义分割实验结果:
在这里插入图片描述
如上表所示:作者选择FPN 和 UPerNet 的分割框架,加载 ImageNet 预训练的权重。我们注意到那些空间面积较大的物体的分割效果提高了 10% 以上,例如墙壁、卡车和公共汽车,而在相对较小的物体类别中观察到轻微的改进。


大家可以尝试将RedNet搭建至自己的网络中运用,欢迎探讨和指正!

#######################
码字不易,转载请注明出处
#######################

  • 5
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: involution是一种用于视觉识别的算法,它反转了卷积的内在特性。它通过将卷积操作中的滤波器权重转换为可学习的点积操作,从而提高了模型的效率和准确性。involution算法在计算机视觉领域中具有广泛的应用,特别是在目标检测和图像分割等任务中。 ### 回答2: involution是在计算机视觉领域中概念比较的一种方法。它是对传统卷积算法的一种逆运算,用来增强卷积神经网络中的非线性建模能力。involution的核心思想是在特征图的每个位置上利用可学习的感受野(receptive field)来进行特征融合,使得网络可以更好地捕捉目标之间的全局关系。 举个例子,我们在计算机视觉中常用的卷积层中,每一个卷积核通常只能对应一个大小固定的感受野。而involution层通过在每个位置上学习一个可变大小的感受野来取代卷积核,从而增强了网络对于目标间距离的捕捉。同时,involution层不仅可以被添加到普通的卷积神经网络中,还可以嵌入到注意力机制、自注意力机制等模型中,提高了模型的表达能力和性能。 相对于传统的卷积层,involution层有多方面的优点。首先,可变感受野大小的应用让involution能够处理更加复杂的视觉场景。其次,involution能够更好地捕捉目标之间的全局关系,对于跨越较大距离的目标关系识别和图像分割等任务非常有效。最后,involution的结构相对简单,不需要过多的计算与存储,可以大幅度减少网络的训练时间和计算资源占用,同时保证优秀的性能表现。 总之,involution可以被看作是一种高效而又强大的计算机视觉算法,对于面对复杂的图像场景和目标识别任务的解决具有重要的意义。 ### 回答3: Involution是近年来计算机视觉领域中一个的概念,是一种反转卷积(convolution)的方法,可以更高效地进行视觉识别。所谓卷积,即是将一个滤波器与输入数据的每一个小区域进行乘法运算,然后将所有乘积相加得到一个数值作为输出。而在深度学习中,我们通常使用卷积神经网络来对输入数据进行分类或识别。 然而,在深度学习中,卷积处理是一件十分耗费计算资源的任务。特别是当我们需要处理高分辨率的图像时,其复杂度更是极高。因此,为了提高卷积神经网络的效率,Involution便应运而生。 那么,Involution到底是如何实现反转卷积的呢?其实,它的实现方法非常简单。它通过将输入数据划分成不同的区域,然后在每个小区域内执行局部变换操作,最后再将每个小区域的结果组合成一个输出。这种做法可以使得计算量大幅度降低,同时还可以减少运算中的参数数量。而且,按照这种方法执行的Involution操作还可以在不同分辨率之间进行协作,进一步提高神经网络的效率和准确率。 总之,Involution通过将输入数据分解成小块,实现了卷积操作的反转,从而实现了对图像的高效处理,特别是对于大尺度的图像和超高分辨率的图像,效果是非常显著的。其简单而有效的原理,有望成为未来深度学习领域的重要研究方向之一。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值