4SkipNet
作者还引入了一个新的计算块。所提出的block可以很容易地集成到现有的体系结构中,并且不需要额外的工作就可以促进向最后一层的信息流。
4.1 Skip Block
skip block想法是直接将low-level features从第一层传递到最后一层。块的设计是由U-Net架构驱动的,在自动编码器风格的架构中,编码器和解码器中具有相同空间维度的层的输出通过skip connections连接起来。
一般来说,在分类网络中,层空间大小逐渐减小,无法直接使用skip connections。为了解决这一限制,作者提出了一个中间块,它将不同空间大小的层连接起来,并利用从第一层提取的low-level特征来丰富最后一层。
如图所示,skip block由池操作和卷积组成。首先,为了保持关键特征和减小空间大小,作者采用自适应平均池化,然后采用3个卷积层。批处理归一化(BN)和ReLU非线性应用在每个卷积层之后,除了最后一个没有使用ReLU的卷积层。选择自适应平均池化是因为它考虑了所有的特性,使得skip block可以处理所有的输入值。卷积层参数采用了MobileNetV3中对inverted residual blocks的setting。
4.2 SkipNet
由于主要目标是增加compact神经网络中独特描述特性的数量,同时降低计算复杂性,因此提出了一种部署skip blocks的SkipNet架构。由于MobileNetV3优越的性能,所以将其作为设计基准。
SkipNet(上图)由inverted residual blocks和MobileNetV3的分类块组成,其中包括我们的新skip块。
第一层是由15个inverted residual block进行卷积。
在第一个卷积块之后插入2个skip block(图4),将信息传递给第6和第10个inverted residual block。
在skip和inverted residual block之后,再应用卷积层和全局平均池化,最终得到由dropout层和全连接层组成的分类块。
与MobileNetV3类似,SkipNet使用hard-swish非线性函数。从表2中可以看出,SkipNet在移动设备上的延迟与MobileNetV3相当。
尽管所描述的体系结构已经能够保证高性能和低延迟,但在某些情况下可能需要更快的模型或更高的精度。为了提供一个完全可定制的网络,作者将inverted residual block中的宽度乘法器集成到skip block中以控制每层通道的数量。
通过操纵宽度乘法器,可以改变整个网络的宽度。这将导致模型大小和计算成本的变化,以及性能的变化。通常,乘法器的增加将导致性能和延迟的增加,反之亦然。介绍的体系结构提供了一个基本的设计供参考,为了进一步改进,可以使用AutoML方法来调优skip block并提高性能。
5实验
5.1 ImageNet Classification
5.2 Object Detection
很好的做到了速度与精度的平衡,是一个非常不错的工作。
6参考
[1].Bias Loss for Mobile Neural Networks