深度学习论文: RepViT: Revisiting Mobile CNN From ViT Perspective及其PyTorch实现
深度学习论文: RepViT: From the ViT Perspective, It Offers a New Approach to Mobile CNN及其PyTorch实现
RepViT: From the ViT Perspective, It Offers a New Approach to Mobile CNN
PDF: https://arxiv.org/pdf/2307.09283.pdf
PyTorch代码: https://github.com/shanglianlm0525/CvPytorch
PyTorch代码: https://github.com/shanglianlm0525/PyTorch-Networks
1 概述
本文基于轻量级 Vision Transformer(ViT)的不同架构选择提出了一个新视角来审视轻量化 Convolutional Neural Networks(CNNs)的有效优化策略。从而催生出了一种全新的架构家族——Repetitive Vision Transformer(RepViT),这种架构特别针对移动设备应用而开发。在多个视觉任务中显著优于现有先进的技术方案——包括最新的轻量化 Vision Transformers 和标准 CNNs ——并带来了卓越的性能指标和更低的时间复杂度。这一发现凸显出传统轻量化 CNN 在移动设备领域的独特优势地位。
2 RepViT
主要针对MobileNetV3-L进行了现代化优化,并综合考虑了移动设备运行效率以及在ImageNet平台上的最佳分类精度。经过一番努力后,我们成功开发出了系列新的轻量级卷积神经网络模型——RepViT系列(命名为RepViT),该系列模型显著降低了延迟并提升了性能水平。

2-1 Aligning training recipe
训练迭代次数设置为300次;
优化器选择AdamW;
学习率调度采用余弦退火策略;
学习率预热期设置为5个周期;
数据增强技术包括Mixup、自适应增强和随机擦除;
使用标签平滑化正则化方法;
激活函数采用GeLU而非Hardswish;
性能评估指标为时延度量。
2-2 Block design
Separate Token mixer and channel mixer. RepViT 采用了提前布置深度卷积的方式,并因此实现了通道混合器与 Token 混合器的有效分离。为了进一步提升性能需求,在训练过程中引入了结构重参数化机制;此外,在为深度滤波器设计多分支拓扑架构时也采取了相应的优化措施。

Reducing expansion ratio and boosting width:** 在通道混合器模块中, 原有的扩张比为4倍, 这意味着MLP模块所需的隐藏层规模是输入层规模的四倍, 导致了较高的计算开销并显著影响了推理速度。为了缓解这一问题, 我们将扩张比率降至2, 这不仅降低了参数冗余还减少了时延, 较高准确率达到了73.5%。随后通过提升各阶段通道数量, 即增加网络宽度, 我们进一步优化了性能表现: 准确率进一步跃升至76%, 同时时延控制在1.0毫秒以内!
2-3 Macro design
RepViT 基于一系列关键组件进行构建, 包括基础模块、降采样层处理信息量以及各类分类模块, 同时考虑不同发育阶段的比例配置. 经过对这些核心组件的优化配置, 使得模型在多个关键指标上实现突破性进展.
采用早期卷积作为主干模块Early convolutions for stem

更深层次的下采样层。首先通过一个 1\times 1 的卷积层来调整通道数量,并将两个 1\times 1 的卷积模块的输入与输出进行残差连接后构建了一个前馈结构。此外,在此之前又添加了一个 RepViT 块以进一步加深下采样层次。这种改进策略不仅显著提升了模型性能,在测试集上的 top-1 准确率达到了75.4%,并且在保持较高准确性的前提下降低了推理延迟至0.96ms。

**简单分类器. ** 将原有的复杂分类器替换成一个简单的分类器(采用全局平均池化层与线性层的组合),该步骤使得延迟降至0.77ms的同时实现了74.8%的top-1准确率。

整体阶段划分方案
2-4 Micro design
该方法通过分层微观架构来优化轻量级卷积神经网络。具体包括选择适合的卷积核尺寸以及精确定位Squeeze-and-excitation层的位置。这些策略均能有效提升模型性能水平。
Kernel size selection. 众所周知,CNNs 的性能和延迟通常受到卷积核大小的影响。为了建模像 MHSA 这样的远距离上下文依赖,ConvNeXt 使用了大卷积核,从而实现了显著的性能提升。然而,大卷积核对于移动设备并不友好,因为它的计算复杂性和内存访问成本。MobileNetV3-L 主要使用 3x3 的卷积,有一部分块中使用 5x5 的卷积。本文将它们替换为3x3的卷积,这导致延迟降低到 1.00ms,同时保持了76.9%的top-1准确率。
Squeeze-and-excitation layer placement.
作为一个通道注意力模块,SE层可以弥补卷积在缺乏数据驱动属性上的限制,从而带来更好的性能。本文设计了一种策略,在所有阶段以交叉块的方式使用SE层,从而在最小的延迟增量下最大化准确率的提升,这一步将top-1准确率提升到77.4%,同时延迟降低到0.87ms。
RepViT的整体架构如下:

通过整合上述改进策略,我们便得到了模型RepViT的整体架构。

3 Experiments

