SqueezeNext: 针对硬件特性的神经网络设计.
- paper:SqueezeNext: Hardware-Aware Neural Network Design
- arXiv:link
作者提出了SqueezeNext,相比于AlexNet参数量减少$112$倍,相比于VGG19参数量减少$31$倍,相比于MobileNet参数量减少$1.3$倍,且避免使用在移动处理器上低效的深度可分离卷积。
相比于SqueezeNet,SqueezeNext做了如下改进:
- 引入两层squeeze卷积层($1\times 1$卷积),大幅减少特征通道数;
- 将$3\times 3$卷积拆分成串联的$3\times 1$卷积和$1\times 3$卷积,而不是之前并联的$1\times 1$卷积和$3\times 3$卷积;
- 引入残差连接,可以训练更深的网络;
- 通过模拟在多处理器嵌入式系统上的性能,优化网络结构。
下面给出ResNet模块、SqueezeNet模块和SqueezeNext模块的对比:
SqueezeNext中使用的网络模块的设计思路如下:
- 低秩卷积核:将$K\times K$卷积分解为$K\times 1$卷积和$1\times K$卷积,将参数量从$K^2$降低为$2K$,同时增加了网络深度。
- 瓶颈模块:使用两层$1\times 1$卷积降低输入特征的通道数,并在输出端使用$1\times 1$卷积恢复通道数。
- 全连接层:网络参数主要在全连接层,在全连接层之前使用$1\times 1$卷积降低通道数,从而降低全连接层的输入维度。
一个完整的SqueezeNext结构如下,首先使用一个卷积和池化层降低特征的空间尺寸,增加通道数;然后分别在$4$种通道数下堆叠$(6,6,8,1)$个SqueezeNext模块,最后使用平均池化和全连接层输出预测结果。