全新卷积模块DRConv | 进一步提升卷积的表示能力

简介: 全新卷积模块DRConv | 进一步提升卷积的表示能力

本文提出了一种新的卷积,称为动态区域感知卷积(DRConv),它可以自动将多个滤波器分配给特征具有相似表示的相应空间区域。通过这种方式,DRConv在建模语义变化方面优于标准卷积。标准卷积层可以增加文件器的数量以提取更多的视觉元素,但会导致较高的计算成本。DRConv使用可学习的指导器将增加的通道方向滤波器转移到空间维度,这不仅提高了卷积的表示能力,而且保持了计算成本和标准卷积的平移不变性。

DRConv是处理复杂多变的空间信息分布的一种有效而优雅的方法。它可以替代任何现有网络中的标准卷积,因为它的即插即用特性,特别是在高效网络中增强卷积层。

在广泛的模型(MobileNet系列、ShuffleNetV2等)和任务(分类、人脸识别、检测和分割)上评估DRConv。在ImageNet分类上,基于DRConv的ShuffleNetV2-0.5×在46M模型上实现了67.1%的最先进性能,相对提高了6.3%。


1、简介


得益于强大的表示能力,卷积神经网络(CNN)在图像分类、人脸识别、目标检测和许多其他应用中取得了重大进展。神经网络强大的表示能力源于不同的过滤器负责提取不同抽象级别的信息。然而,当前主流卷积运算以跨空间域的滤波器共享方式执行,因此只有在重复应用这些运算(例如,使用更多滤波器增加通道和深度)时才能捕获更有效的信息。这种重复方式有几个限制。首先,它的计算效率很低。其次,它会导致优化困难。

与过滤器共享方法不同,为了建模更多的视觉元素,一些研究侧重于通过在空间维度上使用多个过滤器来利用语义信息的多样性。

Deepface提出了替代卷积,以在空间维度上的每个像素处具有单独的滤波器,为了方便统称它们为局部卷积。因此,每个位置的特征将被不同地处理,这比标准卷积更有效地提取空间特征。

Deepface等显示了局部卷积在人脸识别任务中的作用。虽然与标准卷积相比,局部卷积不会增加计算复杂性,但它有两个致命的缺点。一个是带来大量的参数,这与空间大小成正比。另一个是局部卷积破坏了平移不变性,这对一些需要平移不变性特征的任务不友好(例如,局部卷积不适用于分类任务)。

这两种方法都使得神经网络难以广泛应用。此外,局部卷积仍然在不同样本之间共享滤波器,这使得它对每个样本的特定特征不敏感。例如,在人脸识别和对象检测任务中,存在具有不同姿势或视点的样本。因此,跨不同样本的共享过滤器不能有效地提取定制特征。

考虑到上述局限性,在本文中提出了一种新的卷积,称为动态区域感知卷积(DRConv),它可以通过可学习的指导器自动将滤波器分配给相应的空间维度区域。因此,DRConv具有强大的语义表示能力,并完美地保持了翻译不变性。

作者设计了一个可学习的引导Mask模块,以根据每个输入图像的特征自动生成滤波器的区域共享模式。区域共享模式意味着将空间维度划分为多个区域,每个区域内仅共享一个过滤器。基于相应的输入特征动态生成针对不同样本和不同区域的滤波器,这对于关注其自身的重要特征更有效。

DRConv的结构如图1所示。应用标准卷积从输入中生成引导特征。根据引导特征,将空间维度划分为若干区域。可以看出,引导Mask中具有相同颜色的像素附着到相同区域。在每个共享区域中应用滤波器生成器模块来生成滤波器以执行2D卷积运算。因此,需要优化的参数主要在滤波器生成器模块中,其数量与空间大小无关。因此,除了显著提高网络性能外,与局部卷积相比DRConv可以大大减少参数数量,并且与标准卷积相比几乎不会增加计算复杂性。

为了验证方法的有效性,作者对几个不同的任务进行了一系列的实证研究,包括图像分类、人脸识别、目标检测和分割,只需用DRConv替换标准卷积。实验结果表明,DRConv可以在这些任务上取得优异的性能。作者还提供了充分的消融研究,以分析DRConv的有效性和鲁棒性。

总之,这项工作做出了以下贡献:

  1. 提出了一种新的动态区域感知卷积,它不仅具有强大的语义表示能力,而且完美地保持了方差特性。
  2. 专门设计了可学习引导Mask的反向传播过程,以便根据反向传播的总体任务损失的梯度来确定和更新区域共享模式,这意味着本文的方法可以以端到端的方式进行优化。
  3. DRConv可以通过简单地替换标准卷积而在图像分类、人脸识别、检测和分割任务上获得优异的性能,而不会增加太多计算成本。

2、本文方法


权重共享机制固有地限制了标准卷积对语义变化的建模,这是由于单个过滤器的能力较差。因此,标准卷积必须大幅增加通道维度上的滤波器数量,以匹配更多的空间视觉元素,这是低效的。局部卷积利用了空间信息的多样性,但牺牲了平移不变性。

为了一劳永逸地解决上述限制,作者进一步提出了一种可行的解决方案,称为DRConv,如图1所示,它不仅通过在空间维度上使用多个滤波器来增加统计的多样性,而且还保持了这些具有相似特征的位置的平移不变性。

2.1、动态区域感知卷积

首先简单地制定标准卷积和基本局部卷积,然后转移到DRConv。为了方便起见省略了Kernel size和Stride。标准卷积的输入可以表示为,其中分别表示高度、宽度和通道。表示空间维度,表示输出,表示标准卷积滤波器。对于输出特征的第o个通道,对应的特征图为:

image.png

其中,∗为二维卷积运算。 对于基本的局部卷积,使用来表示不跨空间维度共享的滤波器。因此,第o个输出特征映射可以表示为:

image.png

其中,表示像素处的单个非共享滤波器,这与标准卷积不同。

根据上述公式定义了一个引导Mask 来表示从空间维度划分的区域,其中只有一个过滤器在区域,中共享。根据数据依赖机制,从输入特征中学习到。将该区域的滤波器表示为,其中滤波器对应于区域。该层的输出特征映射的第o个通道可以表示为:

image.png

其中,表示的第个通道,是区域的一个点。需要注意的是,如果kernel-size大于1×1,在这里使用的点对应于卷积滤波器的中心。这意味着kernel-size为3×3或5×5的过滤器将提取边界上相邻区域的特征。

通常,这里的方法主要分为两个步骤。首先,使用可学习的引导Mask将空间特征划分为跨空间维度的几个区域。如图1所示,引导Mask中具有相同颜色的像素附着到相同区域。从图像语义的角度出发,将语义相似的特征分配给同一区域。

其次,在每个共享区域中使用滤波器生成器模块生成定制的滤波器,以执行正常的2D卷积操作。可以根据输入图像的重要特性自动调整定制滤波器。为了更好地解释本文的方法,作者主要介绍以下两个模块:可学习引导Mask和滤波器生成器模块。可学习引导Mask决定将哪个过滤器分配给哪个区域。过滤器生成器模块生成将分配给不同区域的相应过滤器。

2.2、Learnable guided mask

作为提出的DRConv的最重要部分之一,可学习引导Mask决定了滤波器在空间维度上的分布(哪个滤波器将被分配给哪个区域),并通过损失函数进行优化。使得滤波器可以自动地适应每个输入的空间信息的变化,并且滤波器分布将相应地变化。

具体而言,对于具有m个共享区域的 DRConv,应用标准卷积来产生具有个通道的引导特征(表示核大小)。使用表示引导特征,表示引导Mask。对于空间域中的每个位置,有

image.png

其中,输出最大值的指数和表示在位置处的引导特征的向量,并且有个元素。因此,引导Mask的值从0到,并表示应在相应位置使用的过滤器索引。

为了使引导Mask可学习,必须获得产生引导特征的权重的梯度。但是,导向特征没有梯度,导致相关参数无法更新。因此,以图2(a)所示的另一种方式设计引导特征的近似梯度。将详细解释正向和反向传播。

image.png

「前向传播」:因为有引导Mask为等式(4),可以得到每个位置的过滤器为变化的:

image.png

其中是生成的滤波器,是引导特征F在位置通道维度上的最大索引。这样,个滤波器将与所有位置建立相应的关系,整个空间像素可以被划分为个组。使用相同滤波器的这些像素具有相似的上下文,因为具有平移不变性的标准卷积将其信息传递给引导特征。

「反向传播」:如图2(a)所示,首先引入,它是在反向传播中对引导Mask的One-hot形式(如,,的One-hot形式是)的替代,

image.png

等式(6)是函数,其应用于通道维度上的引导特征。使用softmax运算,期望尽可能接近0或1。结果,和引导Mask的One-hot形式之间的差距变得非常小。此外,方程(5)中的可以被视为滤波器乘以的一个One-hot形式,其可以近似为。然后,可以通过以下公式获得的梯度

image.png

其中表示点积,表示张量相对于损失函数的梯度。如图2(a)所示,方程(7)是方程(5)的近似反向传播。

image.png

其中表示逐元素乘法,等式(8)正好是等式(6)的反向传播。如果不设计特殊的反向传播,SGD无法优化相关参数,因为函数是不可微的,将停止梯度的传播。

因此,函数被用作反向传播中的近似替换,这是可微的,并将缩小两个函数输出之间的差距。更重要的是,可以利用它将梯度转移到引导特征,从而优化引导Mask。

2.3、动态过滤器:过滤器发生器模块

在DRConv中,将为不同的区域分配多个过滤器。滤波器生成器模块设计用于为这些区域生成滤波器。由于不同图像之间特征的多样性,跨图像的共享过滤器不够有效,无法集中于其自身特征。例如在人脸识别和目标检测任务中具有不同姿态和视点的图像,需要定制的特征来关注每个图像的特定特征。

根据上面使用的符号,将滤波器生成器模块的输入表示为,该模块主要包括2个卷积层。m个滤波器表示为,每个滤波器仅在一个区域中共享。如图2(b)所示,为了获得个内核大小为的滤波器,使用自适应平均池化将下采样到大小为。然后应用2个连续的1×1卷积层:第一个使用作为激活函数,第二个使用group=m的卷积,后面不使用激活函数。滤波器生成器模块可以增强捕获不同图像的特定特征的能力。如图2(b)所示,卷积滤波器分别基于每个样本的特征进行预测。因此,每个滤波器可以根据其自身特性自动调整。


3、实验


3.1、分类

3.2、人脸识别

3.3、COCO对象检测和分割

3.4、消融实验


4、参考


[1].Dynamic Region-Aware Convolution.

相关文章
|
机器学习/深度学习 计算机视觉 Python
【DRConv】动态区域感知卷积结构可提升卷积的表示能力 | 复现《Dynamic Region-Aware Convolution》
【DRConv】动态区域感知卷积结构可提升卷积的表示能力 | 复现《Dynamic Region-Aware Convolution》
465 1
【DRConv】动态区域感知卷积结构可提升卷积的表示能力 | 复现《Dynamic Region-Aware Convolution》
|
机器学习/深度学习 算法 Python
【DYConv】CVPR2020 | 即插即用的动态卷积模块助力你涨点
【DYConv】CVPR2020 | 即插即用的动态卷积模块助力你涨点
1716 1
【DYConv】CVPR2020 | 即插即用的动态卷积模块助力你涨点
|
机器学习/深度学习 人工智能 数据可视化
ShuffleNet:极致轻量化卷积神经网络(分组卷积+通道重排)
我们引入了一个高效计算的CNN结构名字叫做shuffleNet,这个结构被设计用来解决部署算力非常有限的移动设备问题,这个新的结构使用了两个新的操作,pointwise group convolution 和 channel shuffle能够在极大减少计算量的同时保持一定的精度。我们在ImageNet classification和MS COCO目标检测数据集上做实验论证了ShuffleNet和其他的结构相比有着很好的性能。比如,相比于mobilenet,shufflenet在ImageNet 分类任务上有着更低的top-1错误率(错误率是7.8%)需要的计算量为40MFLOPs。在一个AR
3437 0
ShuffleNet:极致轻量化卷积神经网络(分组卷积+通道重排)
|
机器学习/深度学习 编解码 IDE
用于低分辨率图像和小物体的新 CNN 模块SPD-Conv
用于低分辨率图像和小物体的新 CNN 模块SPD-Conv
用于低分辨率图像和小物体的新 CNN 模块SPD-Conv
|
机器学习/深度学习 计算机视觉 异构计算
【YOLOv8改进 - Backbone主干】FasterNet:基于PConv(部分卷积)的神经网络,提升精度与速度,降低参数量。
【YOLOv8改进 - Backbone主干】FasterNet:基于PConv(部分卷积)的神经网络,提升精度与速度,降低参数量。
|
12月前
|
机器学习/深度学习 编解码 Java
YOLO11创新改进系列:卷积,主干 注意力,C3k2融合,检测头等创新机制(已更新100+)
《YOLO11目标检测创新改进与实战案例》专栏已更新100+篇文章,涵盖注意力机制、卷积优化、检测头创新、损失与IOU优化、轻量级网络设计等多方面内容。每周更新3-10篇,提供详细代码和实战案例,帮助您掌握最新研究和实用技巧。[专栏链接](https://blog.csdn.net/shangyanaf/category_12810477.html)
YOLO11创新改进系列:卷积,主干 注意力,C3k2融合,检测头等创新机制(已更新100+)
|
机器学习/深度学习 人工智能 文字识别
ultralytics YOLO11 全新发布!(原理介绍+代码详见+结构框图)
本文详细介绍YOLO11,包括其全新特性、代码实现及结构框图,并提供如何使用NEU-DET数据集进行训练的指南。YOLO11在前代基础上引入了新功能和改进,如C3k2、C2PSA模块和更轻量级的分类检测头,显著提升了模型的性能和灵活性。文中还对比了YOLO11与YOLOv8的区别,并展示了训练过程和结果的可视化
18959 0
|
12月前
|
存储 监控 安全
|
机器学习/深度学习 编解码 计算机视觉
深度学习笔记(十一):各种特征金字塔合集
这篇文章详细介绍了特征金字塔网络(FPN)及其变体PAN和BiFPN在深度学习目标检测中的应用,包括它们的结构、特点和代码实现。
1703 0
|
人工智能 C++ 计算机视觉
AI计算机视觉笔记四:行人属性识别
本文分享了一个行人属性分析系统,能够识别并标注行人的多种属性。该项目代码源自公众号“渡码”的项目,作者在Win10环境下成功复现了整个项目,并详细记录了过程。系统通过YOLOv5识别行人,用ByteTrack跟踪同一行人,并训练一个多标签图像分类网络来识别行人的26种属性。文中详细介绍了环境搭建和测试步骤,包括安装Anaconda、创建虚拟环境、安装所需库以及测试代码等。如需完整代码或有任何问题,请联系博主。源码已上传至GitHub。