首发:AIWalker
作者:HappyAIWalker
标题&作者团队
paper: https://arxiv.org/abs/2105.01...
code: https://github.com/DingXiaoH/...
本文是清华大学&旷视科技在结构重参数领域继ACNet、RepVGG、DBB之后又一突破:RepMLP,它将重参数卷积与全连接层进行了巧妙地衔接,同时利用了全连接层的全局建模、位置感知特性与卷积的局部结构提取能力。在ImageNet分类、人脸识别以及语义分割等任务(无论是否具有平移不变性)上均能涨点。此外,相比标准卷积,RepMLP的一个优势:在大幅增加参数的同时不会造成推理速度的显著降低。比如,从RepMLP-Res50-g8/16到RepMLP-Res50-g4/8,参数量提升47%,但FLOPs仅提升3.6%,推理速度仅下降2.2%。
Abstract
本文提出一种多层感知器风格的神经网络构建模块RepMLP用于图像识别,它有一系列的全连接层构成。相比卷积层,全连接层更为高效,可以进行更好的长期依赖与位置模式建模,但在局部结构提取方面较差,因此通常不太适合于图像识别。
本文提出一种结构重参数技术,它为全连接层添加了局部先验信息以使其可以进行强有力的图像识别。具体来说:在训练阶段,我们在RepMLP内部构建了卷积层,而在推理阶段,我们将这些卷积层合并到全连接层内。
在CIFAR数据集上,简简单单的MLP模型即可取得与CNN非常接近的性能。通过将RepMLP插入到现有CNN中,我们在ImageNet数据集上提升ResNets模型精度达1.8%,在人脸识别任务上提升2.9%,在Cityscapes提升2.3%mIoU精度且具有更低的FLOPs。
该发现说明:全连接层的全局表达、位置感知能力与卷积的局部结构提取能力的组合能够以更快的速度在平移不变任务(比如语义分割)、图像对齐+位置模式相关任务(比如人脸识别)上的性能。
本文主要贡献包含以下几点:
- 提出利用全连接层的全局建模、位置感知能力,并为其插上局部先验的翅膀,使其适用于图像识别任务;
- 提出一种简单的、平台不可知的、可微分算法用于将并行卷积、BN合并到全连接层中,使其具有局部先验且不造成任何推理耗时增加;
- 提出一种高效模块RepMLP,并在多个视觉任务上证实了其有效性。
RepMLP
训练阶段的RepMLP(见下图)由三部分构成:Global Perceptron、Partition Perceptron、Local Perceptron。接下来,我们将针对所提RepMLP进行详细介绍,同时表明如何如何将训练阶段的RepMLP转换为推理阶段的全连接层。
Formulation
Components of RepMLP
A Simple, Platform-agnostic, Differentiable Algorithm for Merging Conv into FC
Converting RepMLP into Three FC Layers
Experiments
Pure MLP and Ablation Studies
我们首先在CIFAR10上验证RepMLP的有效性,测试的网络结构见下图。
在训练阶段,我们采用了标准数据增广(padding、RandomCrop、RandomFlip),batch=128,cosine学习率衰减机制,训练了100epoch。结果见下表。
从上表可以看到:
- 纯MLP模型能够以52.8M FLPs达到91.11%的精度,不过该结果弱于Wide ConvNet;
- 转换前的计算量优于包含卷积与BN,其计算量非常大,这说明了结构重参数的重要性;
- 移除
Local Perceptron
,模型精度下降8.5%,说明了局部先验的重要性; - 移除
Gloabl Perceptron
,模型精度下降1.5%,说明了全局建模的重要性; - 替换FC3为卷积,尽管其感受野更大,但仍造成精度下降3.5.%,说明了FC要比卷积更有力;
- 采用RepMLP替换F实验的卷积,优于没有全局感知,精度仍出现了下降。
RepMLP-ResNet for ImageNet Classification
我们采用ResNet作为基线模型并用于评估RepMLP作为传统ConvNet构建模型的性能。模块定义见上图。
上面两个表给出了不同阶段替换时的性能对比,从中可以看到:
- 当仅仅对c4进行替换时,r=8时RepMLP-Res50具有比ResNet50更少的参数量,更快的推理速度(快10%);
- Table2的前两行说明:当前深度学习框架对于组形式卷积支持程度并不够好,参数量提升59%,但推理速度仅下降了0.7%;更进一步的组形式优化有可能使得RepMLP更高效。
- 采用RepMLP模块替换ResNet中的模块会导致轻微的速度下降,但精度出现了显著提升。比如,仅仅采用RepMLP替换c4即可带来0.94%精度提升,参数量仅增加5M;c3+c4的替换可以取得最佳的均衡。
上表对比了更高输入分辨率下的性能对比。从中可以看到:
- 相比同参数量的传统ConvNet,RepMLP-Res50的计算量更低、推理速度更快。比如,相比输入的ResNet101,RepMLP-Res50仅需50%FLOPs,更少的参数量,推理速度快50%,即可取得同等精度;当输入分辨率为时,RepMLP-Res50在精度、速度以及FLOPs方面的优势更大。
- 提升RepMLP的参数量会导致非常轻微的速度下下降。比如,从RepMLP-Res50-g8/16到RepMLP-Res50-g4/8,参数量提升47%,但FLOPs仅提升3.6%,推理速度仅下降2.2%。这对于大型服务器的高吞吐量推理极为有用。
- 相比Nonlocal与GC,RepMLP-Res50的推理速度几乎相同,但精度高1%;
- 相比于GPU端低效的EfficientNet,RepMLP-Res50在速度于精度方面表现更优。
除了前述模块改进外,作者还提供了一种高速版本,其结果见上图右,性能见下表。
从上表可以看到:轻量版RepMLP取得了与原始ResNet50相当的进度,但FLOPs降低30%,推理速度快55%。
Face Recognition
不同于卷积,FC不具备平移不变性性,这使得RepMLP非常适合于具有位置先验的图像(比如人脸)。因此,我们采用RepMLP在人脸识别任务上进行了有效性验证,结果见下表。
从上表可以看到:
- 相比MobileFaceNet,FaceResNet具有更高的精度,但推理速度更慢;
- 相比MobileFaceNet,RepMLP-FaceRes取得了4.91%的精度提升,同时推理速度快8%(尽管具有更高的FLOPs)。
Semantic Segmentation
语义分割是一种极具代表性的平移不变任务,我们在Cityscapes数据上验证RepMLP-Res50的有效性。结果见下表。
从中可以看到:
- 相比Res-50,PSPNet+RepMLP-Res50-g4/8取得了2.31%的mIoU指标提升;
- 尽管RepMLP方案具有更多的参数量,但其FLOPs更低,推理速度更快。
推荐阅读
- RepVGG|让你的ConVNet一卷到底,plain网络首次超过80%top1精度
- CVPR2021|“无痛涨点”的ACNet再进化,清华大学&旷视科技提出Inception类型的DBB
- 新坑!谷歌提出MLP-Mixer:一种无卷积、无注意力,纯MLP构成的视觉架构
- CVPR2021 | 动态滤波器卷积新高度!DDF:同时解决内容不可知与计算量两大缺陷
- 动态卷积超进化!通道融合替换注意力,减少75%参数量且性能显著提升 ICLR 2021
- 比CNN更强有力,港中文贾佳亚团队提出两类新型自注意力网络|CVPR2020
- TNT|为充分利用局部与全局结构信息,华为诺亚提出全新Transformer:TNT
- 金字塔Transformer,更适合稠密预测任务的Transformer骨干架构
- ResNet被全面超越了,是Transformer干的:依图科技开源“可大可小”T2T-ViT,轻量版优于MobileNet
- CNN与Transformer的强强联合!谷歌最新开源BoTNet,ImageNet达84.7%准确率
推荐阅读
- 新坑!谷歌提出MLP-Mixer:一种无卷积、无注意力、纯MLP构成的视觉架构
- NTIRE2021竞赛"三冠一亚"方案BasicVSR++,Vid4新巅峰29.04dB
- 【综述】系统综述深度学习时代的低光图像增强,南开大学程明明团队还构建了大尺度数据与在线评估平台
本文章著作权归作者所有,任何形式的转载都请注明出处。更多动态滤波,图像质量,超分辨相关请关注我的专栏深度学习从入门到精通。