轻量化卷积神经网络
2020-06-18吉宸佳南京信息工程大学遥感与测绘工程学院
吉宸佳 南京信息工程大学遥感与测绘工程学院
1 引言
近年来,随着深度学习的发展,卷积神经网络由于其精的优越性,被广泛应用于图像处理领域。与传统图像处理方法相比,卷积神经网络在处理大规模的图像数据集上着有非常好的效果,通过卷积操作,获得更隐藏的信息,通过池化操作减少图像尺度。2012年AlexNet在ImageNet竞赛中勇夺桂冠,自此掀起了研究卷积神经网络的浪潮。为了提升卷积网络的精度,并且获得更深层次的信息,越来越深的卷积层被运用到其中。在实验环境中需要购买大量计算能力强劲的图形图像处理器来提升计算效率,大量的参数、复杂的网络理解起来也有困难。为了让卷积神经网络能够运行在更多计算机上,让神经网络运行于移动设备,如何简化卷积神经网络成为了当前一项的研究问题。
2 轻量化卷积神经网络架构
神经网络简化的原则是获得更高效的网络,优化网络结构和卷积计算,减少网络参数的同时不损失性能,加强对网络内部的理解。简化神经网络可分为两类:压缩传统网络和设计新的网络结构。网络模型压缩的方法分为的思想是,去除冗余和不重要的参数,使用张量分解估计网络中最具信息量参数,设计特殊结构的卷积核减少复杂度。本文介绍的第一种SqueezeNet 模型属于网络模型压缩方法。MobileNet 和ShuffleNet 为新提出的轻量化卷积神经网络结构模型。轻量化卷积神经网络的共同特点是由模块组成,网络的核心是这些模块,由于篇幅有限,本文着重介绍个网络的核心模块。
2.1 SqueezeNet
SqueezeNet 发表于ICLR-2017,是伯克利和斯坦福研究人员合作的成果。SqueezeNet 对传统卷积网络采用了squeeze 的压缩操作。SqueezeNet采用了类似于GoogleNet 的inception 想,提出了核心的fire module 模块,此模块由squeeze 层和expand 层组成。Squeeze 层使用1×1 的点卷积方式处理特征图,以此进行特征图降维,减少特征的通道数,达到压缩特征图的目的,所以命名为squeeze。Expand 层对特征图进行连接,该层采用1×1 和3×3 的两种卷积核卷积特征图,得到两类特征图。fire module 模块的结构如图1 所示。
图1 fire module 模块
在整体网络中,反复多次使用fire module 模块,完成整个网络的构建。输入的特征图尺度是H×W×N,经过fire module 层后得到的特征图尺度为分别为expand 层中1×1 和3×3 的数量。此外,该模型在多个模块后使用池化操作,保留了较大的特征值。SqueezeNet 的改进版本为SqueezeNext,SqueezeNext 对SqueezeNet 中的卷积核进行了改进,并引入残差网络的结构,复用前层特征图。
2.2 ShuffleNet
ShuffleNet 由国内知名的计算机视觉公司旷视科技提出。ShuffleNet的网络结构中,以重新排列网络结构为中心设计网络,因此命名为ShuffleNet。该网络的核心模块对特征图的通道进行有规律的重排。在传统网络中,直接对每个通道的特征图进行操作,重排通道的意义是保证了信息流的充分流通和共享,保留图像各通道之间的关联性特征等重要信息。此外,ShuffleNet 中仍然采用了残差网络结构,将重排通道单元的前后3 层加入到一个残差单元中。ShuffleNet将残差网络密集逐点卷积换成逐点分组卷积,通过组卷及可以获得更高效的网络。在第一个分组卷积后增加了一个通道重排操作,并删除3×3 卷积后的激活函数。在shortcut 连接中,如果卷积步长为1,输入与输出特征的空间尺寸相等,两侧特征图直接相加。当卷积步长为2,输出特征尺度大小为原图1/2,对原输入采用步长为2 的3×3 均值池化以缩小特征图,接下来将得到的特征图与输出进行拼接,而不是相加,使通道数加倍,这样做的目的主要是降低计算复杂度与参数量。其核心模块的结构如图2 所示。
图2 ShuffleNet 核心模块
2.3 MobileNet
MobileNet 由谷歌的团队提出,设计该网络的初衷是让卷积网络可以在移动端设备运行。在MobileNet 中引入了深度可分离的卷积模块替代传统卷积操作。该网络中的核心模块也可以分为两部分即深度卷积与逐点卷积。第一部分深度卷积,对输入H×W×N 的特征图分离通道,对每个通道进行普通卷积操作,该步卷积核尺寸一般为3 或5 的一维卷积核,共有N个K×K 的一维卷积核。分别使用一维卷积核对特征图的N 个通道卷积,得到和原始尺度大小一样的特征图。第二部分的逐点卷积,对上层特征图采用M 个1×1×N 的逐点卷积,输出M 个H×W 的特征图。通过计算传统卷积核深度可分离卷积的计算复杂度,该模型将复杂度减少了8-9 倍。图3 所示为MobileNet 的深度可分离卷积模块。
图3 深度可分离卷积模块
MobileNet v1 的创新之处是设计了深度可分离卷积。在第一层使用普通卷积提取图像特征图,后面的网络全部使用该模块进行特征提取。全网络仅在全连接层前使用均值池化操作,前层结构通过设置深度卷积的不同步长完成数据降维,大大减小了模型的规模。在改进版本的MobileNet v2 中,考虑到神经网络会产生梯度消失的问题,借鉴了残差网络的残差单元结构解决该问题,保证数据能够在各层之间流通,重用特征。V2 版本中采用了反向残差结构,该结构的特征图通道维度先增加后减少,与残差单元中特征图通道维度先减少后增加相反。
3 实验结果
本文使用ImageNet2012 数据集测试文中的三种六个轻量化网络模型,在该数据及上的分类准确率、复杂度和模型参数量,复杂度采用大于500MFLOPs 来模拟大型复杂数据,结果如表1 所示。在同等的计算预算下,ShuffleNet v2 的分类准精确度大于其他五个轻量型网络。SqueezeNet 和SqueezeNext 由于其参数量小,在模型占用系统资源上有较大的优势。与传统卷积网络AlexNet、VGG、GoogleNet 对比,轻量化模型在占用较少计算资源的基础上,同时计算复杂度也降低,准确度方面也与传统网络持平甚至有所超越,MobileNet、ShuffleNet 在降低了计算复杂度的基础上,在精确度上与VGG-16 持平。这说明在进行简化神经网络的同时并不需要一味追求模型精度,减少参数、优化模型以降低计算复杂度也能够让模型准确度得到改善。
表1 轻量化网络分类结果
4 总结
本文介绍了三种轻量化卷积神经网络以及其后续的优化和变种网络模型。当前研究轻量型网络的研究热点是使用残差网络,复用前一层或者前几层特征图进行下层特征融合,同时在卷积核中使用点卷积来减少网络参数和规模。轻量化卷积神经网络的缺点如下:不能处理大量的图像和分辨率、维度较高的图像,如何处理大规模图像也是需要解决的问题。但是轻量型网络的出现,对传统网络的改进起到了一定的补充作用,轻量型网络占用较少资源处理同样的数据,减少处理器计算负荷,对于传统网络效率的优化来说未尝不是一种有益的方法,通过轻量化的优化以后的网络能够更高效的运行,同时轻量化网络将技术运用到实际生产生活中。