CNN结构的设计技巧<一>:Can CNNs Be More Robust Than Transformers?

CNN结构的设计技巧<一>:Can CNNs Be More Robust Than Transformers?_第1张图片
导读:启发于Transformer结构,作者将三种设计引入到CNN中,加强后的CNN取得比ViT更强的鲁棒性。这三种设计,实现简单,仅仅几行代码就能实现高效的CNN结构设计。

ArXiv: https://arxiv.org/abs/2206.03452

Source Code: https://github.com/UCSC-VLAA/RobustCNN


文章目录

  • 摘要
  • 介绍
    • 关键启发
    • 效果
    • CNN block设计前后对比
    • 优化后的四种模块设计


摘要

最近,ViT获得巨大成功,正在动摇图像识别中CNN的数十年统治地位。特别地,对于样本分布不在数据集内的情况,无论如何设置训练参数,Transformer在本质上都比CNN更鲁棒。人们认为Transformer的这种优越性,归功于它的自注意力架构。在本文中,我们通过仔细检测Transformer的设计,来质疑这种认识。我们发现三个有效的设计,可以提升鲁棒性,并用几行代码就能实现,即:

  1. 将输入图像分块,patchifying;
  2. 增大卷积核大小;
  3. 减少激活和归一化的层数。

将这三个组件组合在一起,我们能够构建纯CNN架构,能够取得与Transformer同等甚至更强的鲁棒性。这个工作将帮助社区设计更加鲁棒性的神经网络架构。

关键词:CNN,Transformer,分布之外的鲁棒性(out of distribution robustness)

介绍

计算机视觉中深度学习的成功被CNN很大地推动。从基石工作AlexNet开始,CNN持续推动计算机视觉的前沿发展和为现代识别系统作铺垫。有趣的是,最近出现的ViT开始挑战CNN在计算机视觉中的领导地位。ViT提供了一个完全不同的构造识别模型的路线,通过应用纯粹的自注意力架构到图像块够成的序列上,使得ViT能够在广泛的视觉任务上获得与CNN相媲美的性能。

最近在分布外的鲁棒性研究进一步将CNN和Transformer之间的争论炒热起来。不同于两种模型紧密相连的标准数据库上,Transformer在数据集外测试的鲁棒性更强。并且,这种强大的分布外鲁棒性不是来自于先进的训练方法,而是来自于与生俱来的Transformer自注意力架构。例如,仅仅简单地将纯CNN升级成一个混合的架构,如CNN和Transformer的混合块,能够有效提升分布外的鲁棒性。

尽管广泛认为架构的差异是导致Transformer和CNN之间存在鲁棒性差异的关键因素,当前的工作都无法回答Transformer中的哪个因素导致了更强的鲁棒性。最相关的分析指出,Transformer块,其中自注意力操作为核心单元,对鲁棒性至关重要。然而,Transformer块本身已经是一个具有多元素架构的复合设计;其次,Transformer包含很多其它层,例如增加到Transformer块中的patch嵌入层,鲁棒性与Transformer块的元素之间的关系仍然令人困惑。本文将仔细研究Transformer架构的设计,重点关注分布外的鲁棒性。更重要的是,我们尝试去探索,在Transformer元素的帮助下,CNN是否比Transformer更加鲁棒。

关键启发

从神经架构设计的角度来看,我们的诊断从三个方面提供了用于提升鲁棒性的手段。
第一,将图像分割成没有重叠的图像块,能够大大提升分布外的鲁棒性。
第二,尽管使用小卷积核是个非常流行的手段,我们观察到使用一个更大的卷积核,例如从 3 × 3 3 \times 3 3×3 7 × 7 , 11 × 11 7\times 7, 11\times11 7×7,11×11,对于确保鲁棒性是非常必要的。
最后,启发于最近的工作,我们积极减少归一化和激活层的数量有利于鲁棒性的提高;同时,作为副产品,训练速度也提升了高达23%,由于使用了较少的卷积层。

效果

利用我们上述三种设计手段,增强后的ResNet能够在Stylized-ImageNet上超过相似尺度的Transformer,即Deit-S。

CNN结构的设计技巧<一>:Can CNNs Be More Robust Than Transformers?_第2张图片

CNN block设计前后对比

CNN结构的设计技巧<一>:Can CNNs Be More Robust Than Transformers?_第3张图片
上述图中,分别代表:

  • a) 使用DW-CNN替代了原始ResNet中的CNN;
  • b) 反转通道后的DW-CNN
  • c) 将DW-CNN上移后;
  • d) 将DW-CNN下移后

上述四种操作,与原始的ResNet相比,能很大程度降低运算量,归功于DW-CNN的运用。但不光为了减轻计算成本损失,并尝试借鉴 ResNeXT [44] 的思想去提高模型性能,我们将每个阶段的通道设置从 (64, 128, 256, 512) 更改为 (96, 192, 384, 768)。

优化后的四种模块设计

CNN结构的设计技巧<一>:Can CNNs Be More Robust Than Transformers?_第4张图片
优化过后的四种模块设计,减少了对应归一化和激活层的数量。
上述结果,给了模型设计很大的建议与参考作用,这对定制化模块提供了一个可参考的炼丹药方。


你可能感兴趣的:(Computer,Vision,cnn,深度学习,人工智能)