Press "Enter" to skip to content

动态调整模型复杂度:Slimmable Neural Networks

 

本文简要介绍 ICLR 2019 论文“ Slimmable Neural Networks” 的主要工作 。该论文主要提出了一种有限 计算资源下动态调整模型复杂度的方法 。

 

一、研究背景

 

近年来,深度神经网络在移动手机、增强现实设备和自动驾驶汽车中的应用逐渐盛行。这些移动端的应用对算法运行效率有较高的要求。现有的许多轻量级网络如 MobileNet, ShuffleNet 等,是通过 Width Multiplier 来控制模型的计算复杂度和内存占用。由于设备性能的差异,这些轻量化网络在不同的设备上具有不同的响应时间。为了在不同的设备上达到精度和速度的权衡,人们通常是训练得到多种宽度的模型,并针对不同的设备进行单独部署。然而,作者认为这种方法缺乏灵活性,不能在运行时对模型进行动态调整。因此,作者提出了一种“可瘦身”的网络训练方式,能够在运行时根据精度和速度动态地调整网络宽度,从而在不同的设备上均可达到性能与效率的平衡。

 

二、Slimmable Neural Networks

 

( 1 )网络结构

 

 

Fig.1. Illustration of slimmable neural networks. The same model can run at different widths(number of active channels), permitting instant and adaptive accuracy-efficiency trade-offs.

 

Slimmable Neural Networks 可以被认为是不同网络宽度的子网络的集合,这些子网络拥有同一个主干网络并且共享一部分参数。主干网络可以采用现有的各种网络结构如 MobileNet, ShuffleNet, ResNet 等等。

 

如 Figure 1 所示,它包含了 1.0x, 0.75x, 0.5x, 0.25x 这 4 种网络宽度的子网络,这些子网络共享一组参数,比如, 1.0x 网络的前面 25% 的通道与 0.25x 网络共享所有参数。这些子网络通过联合训练,获得了比单独训练更高的性能。在测试阶段,可根据设备需求在这 4 中网络宽度里进行切换,调整到合适的网络宽度。

 

( 2 )可切换的批归一化( Switchable Batch Normalization )

 

作者对上述的S limmable Neural Networks 进行联合训练,发现即使训练过程很稳定,测试结果却很糟糕,在 ImageNet 上的 top-1 准确率只有 0.1% , 如 Figure 2 中 naïve training 曲线 所示 。作者推断这是由于 BN 层在训练和测试时的统计量差异导致的。 BN 层在训练阶段使用当前 batch 的均值和方差进行归一化,并对每一次迭代的均值和方差以滑动平均的方式进行叠加最终得到对整个训练集的均值和方差的估计;在测试阶段, BN 层使用整个训练集的估计的均值和方差进行归一化。

 

在S lim mable Neural Network 中,每一个子网络对应不同的输入通道个数,导致相对应的特征具有不同的均值和方差,而这些不同分布的均值和方差仍以滑动平均的方式加入到对整体的均值和方差的估计当中。因此,测试阶段 BN 层的统计量是所有子网络的均值和方差估计的加权之和,而在训练阶段, BN 层的统计量是通过每个子网络的单独计算。 BN 层统计量在训练和测试阶段的不一致导致了网络性能在这两个阶段的分裂表现。

 

因此,作者提出了 Switchable Batch Normalization (SBN) ,也即对不同的子网络使用独立的 BN 层。对每个子网络的总体均值和方差分别进行估计,从而使得训练和测试阶段 BN 统计量一致。需要注意的是, BN 层的 参数也是根据不同子网络独立训练的。采用 SBN 训练的网络性能 如 Figure 2 所示,每个子网络的测试误差均有了稳定的下降。

 

 

Fig.2.  Training and validation curves of slimmable networks. Left shows the training error of the largest switch. Right shows testing errors on validation set with different switchs. For naive approach, the training is stable(left) but testing error is high (right, zoomed). Slimmable networks trained with S-BN have stable and rank-preserved testing accuracy across all training iterations.

 

( 3 )训练算法

 

本文的主要目的之一在于优化所有宽度的网络的平均性能。 因此作者提出了以下训练策略: 每一次迭代,累加所有子网络的反向传播梯度后,再更新网络权重。

 

 

三、主要实验结果及可视化效果

 

( 1 ) ImageNet 分类

 

本文设置了每个子网络单独训练作为 baseline ( MobileNet v1 1.0x, MobileNet v1 0.75x 等),与之对照的是相同主干网络的 S li mmable N eural Networks (S-MobileNet v1, S-MobileNet v2 等 ) 。对比结果如 Table 1 所示,我们将有提升效果的均以黄色方块标示。从表格中可知,一部分的S limmable Neural Networks 在 ImageNet 数据集上的准确率具有提升,一部分以 MobileNet v2 作为 backbone 的模型准确率有所下降。

 

TABLE 1.  Results of ImageNet classification. We show top-1 error rates of individually trained networks and slimmable networks given same width configurations and FLOPs. We use S- to indicate slimmable methods( † ), to denote our reproduced result.

 

 

( 2 )物体检测、实例分割、关键点检测

 

Slimmable Neural Network 在 COCO 2017 上的检测、分割、关键点检测结果如 Table 2 所示。相比较于单独训练的 baseline , S li mmable N eural Networks 中的各个子网络的性能均有所提升,而且越小的模型提升的越明显。这是因为 S li mmable N eural Networks 中各个模型是联合训练的,其中大模型为小模型的提供了更好的初始化特征和更丰富的监督信号。

 

TABLE 2.  Average precision (AP) on COCO 2017 validation set with individually trained networks and slimmable networks. ResNet-50 models are used as backbones for Faster-RCNN, Mask-RCNN and Keypoints-RCNN based on detection frameworks ( Girshick et al., 2018; Chen et al., 2018 ). Faster 1.0x indicates Faster-RCNN for object detection with ResNet-50 1.0x as backbone.

 

 

( 3 )可视化结果

 

本文进一步对网络作可视化分析。针对不同子网络中的某个特定通道,分别找到令该通道的响应值最高的前 10 张图片。如 Figure 3 所示,每一行代表一个子网络的通道 3_9 的强响应图片,其中红色框表示该图被该模型错误识别,绿色框则表示可被正确识别的图片。可以看到,随着网络宽度的增加,通道 3_9 所负责识别的图片逐渐从白色( RGB 值 [255,255,0] )转为黄色( RGB 值 [255,255,255] )。这说明,即使共享一组参数,同样的神经元在不同的子网络里扮演着不同的角色。

 

 

Fig.3.  Top-activated images for same channel 3_9 in different switches in S-MobileNet v1. Different rows represent results from different switches. Images with red outlines are mis-classified. Note that the white color in RGB is [255, 255, 255], yellow in RGB is [255, 255, 0].

 

四、总结

 

本文提出了一种有效的根据计算资源动态调整模型复杂度的方法,也即S limmable Neural Networks 。这是一种不同网络宽度的子网络的集合,这些子网络共享一组参数,并通过联合训练获得了比单独训练更高的性能。

 

本文提出了S witchable Batch Normalization ,即不同的子网络使用单独的 BN 层,保证了训练和测试时统计量的统一分布,使测试性能稳定提升。

 

参考文献

 

[1] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and JianSun. Deep residual learning for image recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition, pp. 770–778, 2016.

 

[2] Andrew G Howard, Menglong Zhu, Bo Chen, Dmitry Kalenichenko, WeijunWang, TobiasWeyand,  Marco Andreetto, and Hartwig Adam. Mobilenets: Efficient convolutional neural networks for mobile vision applications. arXiv preprint arXiv:1704.04861, 2017.

 

[3] Mark Sandler, Andrew Howard, Menglong Zhu, Andrey Zhmoginov, and Liang-Chieh Chen. Inverted residuals and linear bottlenecks:Mobile networks for classification, detection and segmentation. arXiv preprint arXiv:1801.04381, 2018.

 

[4] Xiangyu Zhang, Xinyu Zhou, Mengxiao Lin, and JianSun. Shufflenet: An extremely efficient

 

convolutional neural network for mobile devices. arXiv preprint arXiv:1707.01083, 2017.

 

开源代码:

 

https://github.com/JiahuiYu/slimmable_networks

 

原文作者: JiahuiYu, Linjie Yang, Ning Xu, Jianchao Yang, Thomas Huang

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注