文档介绍:结合Inception模块的卷积神经网络图像分类方法
摘 要:针对现有卷积神经网络模型参数量大、训练时间长的问题,提出了一种结合VGG模型和Inception模块特点的网络模型。该模型通过结合两种经典模型的特点,增加网络模型的,CNN模型的深度、特征数、卷积核等因素平衡问题。通过增加卷积层数量增加网络深度,使得模型在分类任务上更有优势;文献[5]、文献[6]的研究表明,CNN模型中从卷积层到全连接层存在大量冗余参数,并且全连接层的参数量约占90%。剔除不重要的参数节点以及卷积核,可以达到精简网络结构的目的,减少参数进而有效缓解过拟合现象[7]的发生,同时减少网络训练时间,提升网络模型的健壮性;文献[8]提出了Inception模块,利用3种类型的卷积操作(1×1,3×3,5×5),增加了CNN深度,同时减少了参数,提升了计算资源利用率。
基于以上背景,本文提出结合Inception模块的卷积神经网络图像分类方法,利用若干个较小的卷积核替代一个较大的卷积核,通过增加卷积层获取深层次信息,同时让几种类型的卷积核并联提取图像特征,增加了网络深度、宽度并减少了参数,同时提升了算法效率。本文利用全局平均池化层(Global Average Pooling[9])替换全连接层以防止过拟合,采用批归一化[10](Batch Normalization,BN)操作加速收敛过程,增强模型学习能力。 1 卷积神经网络模型
VGG-Net
VGG-Net在 ILSVRC-2014中的优秀表现,证明增加网络深度可以影响网络模型最终性能。VGG-Net的一个改进是利用几个连续的小卷积核替代AlexNet中的较大卷积核。在给定的相同感受野[11]下,由于小卷积核的代价较小,卷积核的堆叠也增加了非线性激活次数,以进行更深层的特征学习,因此利用连续的小卷积核[12]是更优选择。例如在VGG中使用3个3×3卷积核代替1个7×7卷积核,7×7的参数为49个,3个3×3的参数是27个。这样保证在具有相同感受野的条件下,提升网络深度,同时使用3次非线性函数而不是1次,这样增加了函数判别能力,减少了参数数量,在一定程度上提升了神经网络效果。
Inception模块
VGG-Net的泛化性能非常好,常用于图像特征抽取和目标检测候选框生成等。VGG的最大问题就在于参数数量,简单地堆叠较大卷积层非常消耗计算资源,VGG-19 基本上是参数量最多的卷积网络架构。由于信息位置的巨大差异,为卷积操作选择合适的卷积核大小较为困难。信息分布全局性好的图像偏好较大的卷积核,信息分布比较局部的图像偏好较小的卷积核。非常深的网络更容易过拟合,将梯度更新传输到整个网络很困难。为了使网络变宽,而不是更深,Inception模块由此而生。它没有像 VGG-Net 那样大量使用全连接网络,因此参数量非常小。
GoogLeNet最大的特点是使用了Inception模块,如图1所示,利用 1×1、3×3 或 5×5 等不同的卷积运算与池化操作获得输入图像的不同信息,并行处理这些运算并结合所有结果将获得更好的图像特征。同时,为了降低计算成本,在3×3和5×5卷积层之前添加相较于3×3和5×5卷积廉价很多的 1×1 卷积层,以限制输入信道数量。
2 卷积神经网络改进方法
模型宽度与深度
使用VGG16模型的前三層卷积,即3×3卷积核和2×2池化层的组合,卷积层使用大小相同的卷积核对图像进行特征提取,紧跟的池化层将处理过的图像进行高度和宽度压缩,达到缩小图像的目的。通过增加卷积池化层不断加深网络结构,进而增强图像特征提取能力。
利用Inception模块,设计一种具有优良局部拓扑结构的网络,即对输入图像并行地执行多个卷积运算或池化操作,并将所有输出结果拼接为一个非常深的特征图。由于1×1、3×3 或 5×5 等不同的卷积运算与池化操作可以获得输入图像的不同信息,并行处理这些运算并结合所有结果以获得更好的图像表征。在同一层级上运行该具备多个尺寸的滤波器,增加了网络宽度。
GAP
在卷积神经网络初期,通过卷积池化层后总是需要接一个或几个全连接层,最后输入到Softmax层进行分类。其特征是全连接层的参数非常多,使模型本身变得非常臃肿。Lin等[8]提出使用GAP替代全连接层的思路,该方法取代了拥有大量参数的全连接层,直接实现了参数降维。GAP在结构上对整个网络作正则化进而防止过拟合,允许输入任意大小的图像,重新整合空间特征信息,进而使算法拥有更强的鲁棒性。
自适应学习率
在机器学习中,为了得到最优权值,需要构建利用代价损失函数,并选用合适的