论文链接: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搭建至自己的网络中运用,欢迎探讨和指正!

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

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

  1. [YOLOv7/YOLOv5系列算法改进NO.20]Involution新神经网络算子引入网络

    ​前 言:作为当前先进的深度学习目标检测算法YOLOv5,已经集合了大量的trick,但是还是有提高和改进的空间,针对具体应用场景下的检测难点,可以不同的改进方法.此后的系列文章,将重点对YOLOv5 ...

  2. 【论文速读】城市自动驾驶应用的概率语义地图

    点云PCL免费知识星球,点云论文速读. 标题:Probabilistic Semantic Mapping for Urban Autonomous Driving Applications 作者:D ...

  3. 【论文速读】基于图像的伪激光雷达三维目标检测

    点云PCL免费知识星球,点云论文速读. 标题:End-to-End Pseudo-LiDAR for Image-Based 3D Object Detection 作者:Rui Qian, Divy ...

  4. 【论文速读】RandLA-Net大规模点云的高效语义分割

    点云PCL免费知识星球,点云论文速读. 文章:RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds 作者:Qi ...

  5. 【论文速读】基于投影方法的激光雷达点云处理比较

    点云PCL免费知识星球,点云论文速读. 文章:LiDAR point-cloud processing based on projection methods: a comparison 作者:Gui ...

  6. 【点云论文速读】点云高质量3D表面重建

    点云PCL免费知识星球,点云论文速读. 标题:Local Implicit Grid Representations for 3D Scenes 作者:Chiyu "Max" Ji ...

  7. 【ECCV2016论文速读】回归框架下的人脸对齐和三维重建

    本文来源微信公众号:深度学习大讲堂,已授权发布. 作者:刘峰,四川大学计算机学院生物特征识别实验室博士三年级学生,导师游志胜教授.赵启军博士.研究方向为机器学习与模式识别(三维人脸建模与识别.二维人脸 ...

  8. 【点云论文速读】基于优化的视觉惯导里程计与GPS的紧耦合的融合方案

    转载自:https://mp.weixin.qq.com/s/Y-h7eto1Zc_Mkzlh653vpg [点云论文速读]基于优化的视觉惯导里程计与GPS的紧耦合的融合方案 原创 dianyunPC ...

  9. [论文速读]:全景相机(360度相机)室内图像的景深估计 Depth Estimation for Indoors Spherical Panoramas (三篇)

    [论文速读]:全景相机(360度相机)室内图像的景深估计 Depth Estimation for Indoors Spherical Panoramas (三篇) 全景相机(360度相机)室内图像有 ...

最新文章

  1. WinDbg+SOS:Web服务器High CPU Hang(100%)实例分析
  2. 如果遇到Hadoop集群正常,MapReduce作业运行出现错误,如何来查看作业运行日志(图文详解)...
  3. 【第44题】【062题库】2019年OCP认证062考试新题
  4. python可以做什么系统-python什么系统
  5. 最好的编程名言,大家一起来共勉----转载
  6. 人类史上首张黑洞照片发布!
  7. android中设置Animation 动画效果
  8. 用“龙头”促发展,以“立体”筑生态,长沙生物医药产业集群跑出“加速度”
  9. python:单元测试框架pytest的一个简单例子
  10. 以知乎为例子来说明MVC是个啥
  11. F问题3-7:以太网使用载波监听多点接入碰撞检测协议CSMA/CD。频分复用FDM才使用载波。以太网有没有使用频分复用?...
  12. Vue学习笔记(4)(Vue-router)
  13. Eclipse常用的一些设置
  14. 【历史上的今天】8 月 24 日:Windows 95 问世;乔布斯辞任苹果 CEO;库克上台
  15. diabetes影响因子2017_2017年SCI影响因子发布,几家欢喜几家愁
  16. Java 搭建srs流媒体服务器,并使用ffmpeg推流
  17. title属性,显示出提示文字;alt属性,在浏览器无法显示图片的时候,用alt中的文字替代。不要把title和alt的作用混乱了~
  18. littleVGL开发(11):任务系统(task)
  19. 打开阿里云网页为空白的解决办法
  20. Shell命令提示符

热门文章

  1. python大数据毕业设计题目100例
  2. 路透社:特斯拉5月在华汽车订单较4月减少近一半
  3. 服务器怎么显示我的电脑图标没了,我的电脑图标没了怎么办?在这里可以将它显示出来...
  4. 「常見程式題目」第三版
  5. 岛屿周长c语言,岛屿的周长 --leetcode刷题,golang实现
  6. 完美解决迅雷极速版强制升级到迅雷X
  7. 华人新移民在美国哪里定居最适合?第一名居然是....
  8. Farmer John's math(c++)
  9. 2022年软件测试行业就业发展前景,软件测试前景好吗?我该学什么?
  10. .Net开发 开发工具使用vs C盘占用空间不断增大