摘要
GhostNetV3 是由华为诺亚方舟实验室的团队发布的,于2024年4月发布。
摘要:紧凑型神经网络专为边缘设备上的应用设计,具备更快的推理速度,但性能相对适中。然而,紧凑型模型的训练策略目前借鉴自传统模型,这忽略了它们在模型容量上的差异,可能阻碍紧凑型模型的性能提升。在本文中,通过系统地研究不同训练成分的影响,我们介绍了一种用于紧凑型模型的强大训练策略。我们发现,适当的重参数化和知识蒸馏设计对于训练高性能的紧凑型模型至关重要,而一些常用于训练传统模型的数据增强方法(如 Mixup 和 CutMix)反而会导致性能下降。作者在 ImageNet-1K 数据集上的实验表明,为紧凑型模型设计的专门训练策略适用于各种架构,包括 GhostNetV3、MobileNetV2 和 ShuffleNetV2。具体而言,GhostNetV3 1.3× 在移动设备上以仅 269M FLOPs 和 14.46ms 的延迟实现了 79.1% 的 top-1 准确率,远超其常规训练的对手。此外,还可以扩展到目标检测场景。
理论介绍
GhostNetV3 提供了以下几种常见的模型权重,不同宽度缩放因子(Width Scaling):
- 0.5x: 较小模型深度,用于资源更受限的场景。
- 1.0x: 标准模型。
- 1.3x: 模型深度比1.0x更深。
- 1.6x: 更大的模型版本,适用于计算资源较多的设备。
大家可以根据不同场景选择合适的模型宽度缩放因子,本文选择 0.5,具体可见第二章的代码。
GhostNetV2 和 GhostNetV3 的架构如下:
GhostNets(GhostNetV1 和 GhostNetV2)是为在移动设备上高效推理而设计的最先进的紧凑型模型。其关键架构是 Ghost 模块,可以通过廉价操作生成更多特征图来替换原始卷积。在普通卷积中,输出特征 Y 通过 Y = X ∗ W 获得,其中 W ∈ R cout×cin×k×k 是卷积核,X 是输入特征。cin 和 cout 分别表示输入和输出通道维度。k 是核大小,∗ 表示卷积操作。Ghost 模块通过两个步骤减少普通卷积的参数和计算成本。
GhostNetV3 引入了多分支重参数化机制,通过在卷积层中添加额外的平行分支来改善性能。这些分支在训练过程中提供更多的表征能力,最终通过将多个分支重组为一个卷积层来实现推理时的高效性。通过添加配备 BatchNorm 层的重复分支将再参数化引入紧凑型模型。
GhostNetV3 在 GhostNetV2 的基础上进行了进一步的优化,主要体现如下:
- 重参数化训练 (Training of Convolution):GhostNetV3 引入了重参数化技术,通过多分支的卷积进行训练。
- 在 3x3 DWConv 的训练中,模型通过多个 3x3 的深度可分离卷积以及 identity
路径的并行操作来提升模型的表达能力,训练时所有路径共同参与,推理时则通过合并