【论文阅读笔记】Wavelet Convolutions for Large Receptive Fields

1.论文介绍

Wavelet Convolutions for Large Receptive Fields

大感受野的小波卷积

2024 EECV
Paper Code

2.摘要

近年来,人们试图通过增加卷积神经网络(ConvolutionalNeuralNets,CNNs)的核尺寸来模拟视觉变换器(VisionTransformers,ViTs)的自我注意块的全局感受野。然而,这种方法很快就达到了上限和饱和,在实现了一个全局感受野之前。本文证明,通过利用小波变换(WT),有可能获得非常大的感受野,而不遭受过度参数化,例如,对于k × k的感受野,所提出的方法中的可训练参数的数目仅随k的对数增长。所提出的WTConv层可作为现有架构中的插入式替代品,产生有效的多频响应,并随着感受野的大小而适度地缩放。

Keywords: 全局感受野、小波变换、多频率

引入WTConv层 :提出了一种新的卷积层WTConv,通过结合小波变换扩展感受野,使CNN能够在不显著增加参数的情况下获得接近全局的感受野。
多频率响应 :WTConv层利用小波分解将输入分成不同频带,允许卷积层在低频和高频分量上分别进行处理,增强了模型对低频成分(即形状特征)的响应。
低参数增长率 :与传统方法中卷积核尺寸增大导致参数和计算量指数级增长不同,WTConv实现了参数的对数增长,使得在大感受野的情况下保持参数效率。
即插即用性:WTConv被设计为可以直接替换现有CNN中的深度卷积操作,无需对架构进行额外修改,具有广泛适用性。

3.Introduction

在过去的十年中,卷积神经网络(CNNs)在很大程度上主导了计算机视觉的许多领域。尽管如此,随着视觉转换器(Vision Transformers,ViT)的出现,CNN面临着激烈的竞争。视觉转换器是对自然语言处理中使用的Transformer架构的改编。具体地说,人们现在认为,ViT优于CNN的优势主要归因于它们的多头自注意层。该层便于特征的全局混合,这与通过构造而被限制为特征的局部混合的卷积形成对比。因此,最近的几项工作试图弥合CNNs和ViT之间的性能差距。Liu等人重新构建了ResNet架构及其训练例程,以跟上Swin Transformer的步伐。还有一个改进是增加卷积的核大小。然而,根据经验,该方法在内核大小为7×7时达到饱和 ,这意味着进一步增加内核并没有帮助,甚至在某个时候开始恶化性能。虽然单纯地将大小增加到7 × 7以上是没有用的,但Ding等人已经表明,如果构造得更好,甚至可以从更大的核中得到。尽管如此,最终内核变得过度参数化,并且性能在到达全局感受域之前就饱和了。在[11]中分析的一个有趣的特性是,使用较大的核使得CNN更偏向于形状,这意味着它们捕获图像中的低频的能力得到了提高。这一发现有些令人惊讶,因为卷积层通常倾向于对输入中的高频做出响应。这与注意力头不同,注意力头更倾向于低频,如其他研究所示。上面的讨论提出了一个很自然的问题:我们能不能利用信号处理工具来有效地增加卷积的感受域,而不遭受过度参数化的影响?换句话说,我们是否可以使用非常大的过滤器-例如,全局的感受野--同时还能改善性能?本文对这一问题给出了肯定的回答。我们提出的方法利用了小波变换(WT),一种基于时频分析的成熟工具,使卷积的感受域很好地按比例放大,并通过级联,引导CNNs更好地响应低频。在某种程度上,我们将解决方案基于WT的动机在于(不同于傅里叶变换),它保留了一些空间分辨率。这使得空间操作(例如,卷积)更有意义。

更具体地说,本文提出了WTConv,这是一个使用级联WT分解并执行一组小核卷积的层,每个卷积集中在越来越大的感受野中的输入的不同频带上。该过程允许在输入中更加强调低频,同时仅添加少量可训练参数。事实上,对于一个k × k的感受野,可训练参数的数量只随k的对数增长。总结一下,本文的主要贡献是:-一个新的层,称为WTConv,它使用WT来有效地增加卷积的感受域。- WTConv被设计为给定的CNN内的插入式替换(用于深度卷积)。

4.方法详解

作为卷积的小波变换

在这项工作中,本文采用Haar WT,因为它高效和简单。然而,本文的方法并不局限于它,因为可以使用其他小波基,尽管计算成本增加。

给定一个图像X,在一个空间维度(宽度或高度)上的一维Haar WT通过与核[1,1]/ √ 2和[1,−1]/ √ 2的深度卷积给出,随后是因子为2的标准下采样算子。

一维WT是在一个维度上处理,是深度卷积与下采样的结合。

为了执行2D Haar WT,我们在两个维度上组合操作,使用以下四个滤波器的集合产生步长为2的深度卷积:

注意,fLL是低通滤波器,fLH(水平高频)、fHL(垂直高频)、fHH(对角高频)是一组高通滤波器。对于每个输入通道,卷积的输出:

有四个通道,每个通道(在每个空间维度上)的分辨率是X的一半。XLL是X的低频分量,而XLH、XHL、XHH是其水平、垂直和对角高频分量。由于等式最上面中的核1形成正交基,应用逆小波变换(IWT)通过转置卷积获得:

然后通过递归分解低频分量给出级联小波分解。分解的每一级由下式给出:

其中X(0)LL = X,i是当前层级。这导致了对于较低频率,频率分辨率增加和空间分辨率减小。

级联小波分解的过程是:每次分解后,只对低频分量(即 LL 分量)进行进一步的小波分解,而不是对四个分量都进行分解。因此,级联小波分解的层次结构会随着每次分解产生新的 LL、LH、HL 和 HH 分量,但这些新分量只来自于上一次分解的 LL 部分。

小波域中的卷积

增加卷积层的核大小会二次增加参数的数量(因此,自由度也会增加)。为了缓解这种情况:首先,使用WT对输入的低频和高频成分进行滤波和降频。然后,在使用IWT构造输出之前,对不同的频率图执行小核深度卷积。换句话说,该过程由下式给出:

其中X是输入张量,W是具有四倍于X的输入通道的k×k深度核的权重张量。该运算不仅分离了频率分量之间的卷积,而且允许更小的核在原始输入的更大区域中操作,即增加其接受场w.r.t。输入。

将每个频率分量(即小波分解得到的四个频率分量)分别使用一个小卷积核(k × k)进行卷积操作。这里使用的是深度卷积,即在通道维度上逐个卷积。

我们采用该1级组合操作,并通过使用来自等式(1)的相同级联原理进一步增加它。该过程由下式给出:

其中X(0)LL是层的输入,X(i)H表示第i层的所有三个高频图。为了将不同频率的输出联合收割机组合,我们使用WT及其逆是线性运算的事实,这意味着IWT(X + Y)= IWT(X)+ IWT(Y)。因此,执行

由于小波变换(WT)和逆变换(IWT)都是线性操作,利用线性叠加的性质可以直接进行叠加

导致不同级别的卷积的总和,其中Z(i)是从级别i向前的聚合输出。其中不同大小卷积的两个输出被求和作为输出。我们不能对Y(i)LL、Y(i)H中的每一个进行归一化,因为它们的单独归一化不对应于原始域中的归一化。相反,我们发现,仅执行通道式缩放来加权每个频率分量的贡献就足够了。图3显示了2级WT情况下的WTConv。

首先输入一个input,然后进行WT得到四个分量,再对低频分量再进行WT,直至最后一层。对于每一层,先把四个分量经过深度卷积变换,再cat到一起经过IWT得到该层的结果,再把下一层的低频分量与之相加(最后一层的下一层是0),传回上一层,直至第一层。第一层是input经过卷积,与下一层相加得到输出结果。


使用小波变换的优势

将WTConv合并到给定的CNN中有两个主要的技术优势。首先,每一级WT都增加了层的感受野的大小,而可训练参数的数量只有少量增加。也就是说,WT的第三级级联频率分解,以及每个级的固定大小的核k,允许参数的数量在级别的数量(k· 4 · c · k2)中线性缩放,而感受野以指数方式增长(2 k· k)。

第二个好处是,WTConv层的构造可以比标准卷积更好地捕获低频。

5.结果与总结

语义分割:

分类:

我的理解是本文构建了一个基于小波变换的卷积块,可以代替深度卷积使用。因为小波变换不同于傅里叶变换,它包含空间域与频域的信息。做法是首先选定Haar WT作基底,2D变换每次都会分成低频、水平高频、垂直高频、对角高频四个分量;后续还会级联操作,对得到的四个分量中的低频分量会再次进行小波变换,得到更低一级的四个分量。逆变换时,首先会对它们先进行卷积操作(深度卷积),然后低频分量与低一级的四个分量相加,再把这一级的四个分量作逆小波变换。

相关推荐
一位小说男主3 分钟前
编码器与解码器:从‘乱码’到‘通话’
人工智能·深度学习
车轮滚滚__35 分钟前
uniapp对接unipush 1.0 ios/android
笔记
qq_529025291 小时前
Torch.gather
python·深度学习·机器学习
凯哥是个大帅比1 小时前
人工智能ACA(五)--深度学习基础
人工智能·深度学习
海棠AI实验室2 小时前
AI的进阶之路:从机器学习到深度学习的演变(三)
人工智能·深度学习·机器学习
AIGC大时代2 小时前
如何使用ChatGPT辅助文献综述,以及如何进行优化?一篇说清楚
人工智能·深度学习·chatgpt·prompt·aigc
云边有个稻草人3 小时前
【优选算法】—复写零(双指针算法)
笔记·算法·双指针算法
人机与认知实验室4 小时前
人、机、环境中各有其神经网络系统
人工智能·深度学习·神经网络·机器学习
靴子学长9 小时前
基于字节大模型的论文翻译(含免费源码)
人工智能·深度学习·nlp