| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 【卷积核设计】Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs -> 正文阅读 |
|
[人工智能]【卷积核设计】Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs |
文章目录论文链接:https://arxiv.org/pdf/2203.06717.pdf 代码链接:https://github.com/DingXiaoH/RepLKNet-pytorch 本文收录于 CVPR2022 一、背景CNN 虽然在计算机视觉上处于长期的统治地位,但由于 transformer 方法的提出,这一现象发生了改变。比如 ViT,已经在分类、特征学习、目标检测、语义分割、图像复原等方面都取得了超越 CNN 的效果。 有人认为 ViT 的效果离不开 MHSA (多头自注意)的结构,也有人替换了 MHSA 后仍然能取得好的效果,所以到底是什么造成了 CNN 和 ViT 的差距呢? 作者聚焦到了个这问题:长距离空间信息间联系的建立 在 ViT 中,MHSA 能够同时抽取长距离和短距离的依赖关系,也就是能够聚合大感受野的信息 在 CNN 中,基本没有使用很大的卷积核(除了第一层) 所以作者提出质疑:能否使用少量大卷积核来代替大量小卷积核?这样能弥补两者之间的差距吗? DW 卷积概念补充:不同于常规卷积操作,Depth-wise Convolution 的一个卷积核负责一个通道,一个通道只被一个卷积核卷积。 二、方法1、作者提出了 RepLKNet,一个纯 CNN 网络。类似于 swin transformer 的结构,但做了些修改:
2、本文中,作者系统的探索了大卷积核的效果:
作者由此给出了如下总结: ① 很大的卷积核在实际使用中也会很高效 大的卷积核一直被认为计算量很大,但 depth-wise 可以很好的克服这个问题。当本文作者将不同 stage 的卷积核大小从 [3, 3, 3, 3] 提高到 [31, 29, 27,13] 后,FLOPs 和 参数量分别提升了 18.6% 和 10.4%。 ② 残差连接是很重要的,尤其对于大卷积核的网络 以 mobilenetv2 为例,作者使用 13x13 的卷积核代替了 3x3 的卷积核,结果如表 2 所示。 ③ 使用小卷积核重参数化有助于解决参数优化问题 论文将MobileNetV2中的 3x3 卷积核分别替换为 9x9 和 13x13,再采用结构重参数帮助更好地训练。具体的做法如图2所示,先将卷积核替换为更大的卷积核,再并行一个深度卷积层,经过BN处理后将其结果相加作为输出。训练完成后,合并并行的大小卷积层及其BN层,得到没有小卷积层的模型。 ④ 大卷积能够提高下游任务的效果多于 ImageNet 表 3 中,mobilinetv2 的卷积核从 3x3 提高到 9x9 后,ImageNet 的准确率提高了 1.33%,Cityscapes 的 mIoU 提高了 3.99%。表 5 中,不同 stage 的卷积核大小从 [3, 3, 3, 3] 提高到 [31, 29, 27,13] 后,ImageNet 的准确率仅仅提高了 0.96%,ADE20K 的 mIoU 提高了 3.12%。 什么原因导致的呢? 作者认为:
⑤ 大核(如 13x13)在小特征图(如 7x7)上仍然适用
此外,作者还发现, 2D 相对位置坐标可以看成大小为
(
2
H
?
1
)
×
(
2
W
?
1
)
(2H-1) \times (2W-1)
(2H?1)×(2W?1) 的 depth-wise 卷积,H 和 W 分别的特征图的高和宽。所以,大的卷积核不但能够帮助学习相对位置,而且可以编码位置信息。 三、RepKLNet:a Large-Kernel Architecture由于 CNN 在小体量模型上还是优于 transformer 的,所以本文主要聚焦于大模型(复杂度和 ResNet-152 或 Swin-B 相似),来验证大尺度卷积核能否弥补 CNN 和 ViT 的差距。 3.1 结构如图 4 所示: 1、Stem 因为作者为了提高下游密集预测的任务,所以需要捕捉更多的细节信息。 3x3 conv (2↓下采样) → 3x3 DW(捕捉 low-level 信息) → 1x1 conv → 3x3 DW(下采样) 2、Stages 每个 stage 都包含了多个 RepLK Blocks,这些 Blocks 使用了 shortcuts 和 DW 大尺度核。 在每个 DW 前后都使用 1x1 conv 是本文的常规操作,且每个 DW 大卷积都使用 5x5 的核来进行重参数化。 虽然大尺度的卷积核能够实现更好的感受野感知并聚合更多的空间特征,但模型的容量其实和模型的深度也有很大的相关性。所以,为了引入更多的非线性,和实现通道间的信息交互,作者使用 1x1 conv 来实现网络加深。 此外,FFN 在 transformer 中应用广泛,所以,作者实现了一个 CNN-style 的类似于 FFN 的模块,叫做 ConvFFNBlock。该模型组成方式:BN、2 个 1x1 conv、GELU、残差连接。 3、Transition Blocks 没两个 stage 之间,都放置了 Transition Blocks。先通过 1x1 conv 来进行通道增加,然后使用 3x3 DW 实现 2↓ 下采样。 所以,每个 stage 有三个结构超参数:
所以,RepLKNet 的结构参数如下: [ B 1 , B 2 , B 3 , B 4 ] , [ C 1 , C 2 , C 3 , C 4 ] , [ K 1 , K 2 , K 3 , K 4 ] [B1, B2, B3, B4],[C1, C2, C3, C4],[K1, K2, K3, K4] [B1,B2,B3,B4],[C1,C2,C3,C4],[K1,K2,K3,K4] 3.2 尽可能的让卷积核变大为了探索不同大小的卷积核带来的不同效果,作者给定两组参数: 作者做了三组大卷积核实验,K 分别为:
还有两组小卷积核实现,K 分别为:
表 5 展示了不同大小卷积核取得的结果,在 ImageNet 上,将卷积核从 3 提升到 13 时,能有效的提升准确率,但再提升了时候就没有提升了。 在 ADE20K 上,从 [13, 13, 13, 13] 提升到 [31, 29, 27, 13] 后,mIoU 提升了 0.82,参数增高了 5.3%, FLOPs 增高了3.5%。 3.3 图像分类3.4 语义分割
3.5 目标检测四、分析1、 大尺度卷积核 CNN 比小尺度卷积核的更深的 CNN 有效感受野更大 我们已知卷积什么网络可以通过多层的累积来实现大感受野感知。那为什么有数十上百层卷积的小卷积核网络效果仍然次于大卷积核网络呢。
例如,[89]表明ResNets的行为类似于浅层网络的集合,这意味着ResNets的erf可能仍然非常有限 2、大尺度模型更类似于人类对形状偏置的感知 [86] 认为 vision transformer 更类似于人类的视觉系统,也就是更依赖于目标的形状来进行判断,CNN 更依赖于纹理。 作者使用了相应的 toolbox 来获得 shape bias,图 5展示了 RepLKNet 有比 Swin 更高的 shape bias。 由于 RepLKNet 和 Swin 有类似的结构,所以作者认为 RepLKNet 更高是由于其有效的大感受野,而非 self-attention 结构。
膨胀卷积是有效的提高感受野但参数增加少的方法,然而,表11显示,尽管深度膨胀卷积可能具有与深度密集卷积相同的最大RF,但其表示容量要低得多,因为它在数学上与稀疏大卷积等效。文献(如[92,98])进一步表明,膨胀卷积会遇到网格化问题。作者认为通过混合使用不同的卷积,可能可以克服卷积扩张的缺点。 五、限制如表 6 所示,虽然大卷积核能够提高 CNN 在分类和其下游任务的效果,但随着数据量和模型的增大,RepLKNets 又比 Swin 的效果低了。 目前还不太清楚这是由于超参数并非最优的或其他的缺点导致的,还在研究中。 六、结论使用少量大卷积核而非大量小卷积核,能够有效的提升有效感受野,提高 CNN 的效果。所以作者建议研究更好的有效感受野来提升效果。并且,大卷积核既然能够取得类似好的成绩,那么也可以被用来理解 self-attention 的内在机理。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 16:43:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |