提出了一种用于图像分类的卷积神经网络,将不同池化方式对图像分类的影响进行了分析对比,采用重叠池化和 dropout 技术,较好地解决过拟合问题。与传统神经网络相比,该方法在 CIFAR-10 数据集上获得了较好的结果,在测试集上准确率比训练集上准确率高 9%左右。

 

0 引言

随着互联网和多媒体技术的快速发展,图像数据呈现出爆发式的增长,如何对海量图像进行高效的分类和检索成了一项新的挑战。图像分类是图像检索、物体检测和识别等应用的基础,也是模式识别和机器学习中的研究热点。

 

深度学习是一种对数据进行表征学习的方法[1],起源于神经网络,已有几十年之久,但是一度发展缓慢。直至 2012 年,HOMTPM G 和他的团队在 ImageNet 大型图像识别竞赛中取得极其优异的成绩,将 top-5 的错误率由 26%降到 15%,从此,深度学习引起了越来越多研究者的关注,进入快速发展时期。

 

 深度学习技术在神经网络模型训练过程中常常会引起过拟合的问题。所谓过拟合(Overfitting),是指模型对训练集的数据拟合得很好,而对它未学习过的数据集拟合并不好,泛化能力较弱,即对学习过的样本效果很好,推广到更一般、更具普适性的样本上表现并不好。

 

本文针对神经网络模型中常见的过拟合问题,将不同池化方式对图像分类的影响进行了分析对比,提出了一种采用重叠池化和 dropout 技术的卷积神经网络,在一定程度上缓解了过拟合问题,能够应对更加复杂多变的数据环境。

 

1 卷积神经网络

卷积神经网络(Convolutional Neural Network,CNN)是深度学习最常用的网络模型之一,在语音分析、图像识别等领域广泛应用。传统的神经网络是全连接的,参数数量巨大,训练耗时甚至难以训练,而卷积神经网络受到现代生物神经网络的启发,通过局部连接、权值共享等方式降低了模型复杂度,减少权重数量,降低了训练的难度。

 

1.1 卷积特征提取

图像卷积实际上是对图像的空间线性滤波,滤波本是频域分析常用的方法,图像中也经常使用空间滤波进行图像增强。滤波所用的滤波器也就是卷积中的卷积核,通常是一个邻域,比如一个 3×3 大小的矩阵。

   

卷积过程是把卷积核中的元素依次和图像中对应的像素相乘求和作为卷积后新的像素值,然后把该卷积核沿着原图像平移,继续计算新的像素值,直至覆盖整个图像。卷积过程如图 1 所示。

 

   

图 1 是忽略了偏置项的卷积过程,输入图像大小是 5×5,卷积核大小是 3×3,卷积后的输出大小也是 3×3。具体运算过程是卷积核从输入图像的左上角开始进行线性求和运算,然后每次向右移动一个像素的距离,直至最右侧,再向下移动一个像素,依次进行,便可得到卷积输出。如果想让输出和输入大小相同,可以在原图像周围补一圈“0”变成 7×7 的大小,然后再进行卷积运算即可。

   

卷积的作用过程虽然很简单,但却能根据不同的卷积核对图像产生很多不同的效果。上述卷积过程实质上是一种相关作用,与严格的图像处理中的卷积稍有不同,严格的卷积需要把卷积核先旋转 180°再进行相关运算。

   

对图像进行卷积操作,实际上是在对图像进行特征提取,卷积可以消除图像旋转、平移和尺度变换带来的影响[2]。卷积层特别擅长在图像数据中提取特征,并且不同层能提取不同的特征。

   

卷积神经网络的特点是逐层提取特征,第一层提取的特征较为低级,第二层在第一层的基础上继续提取更高级别的特征,同样,第三层在第二层的基础上提取的特征也更为复杂。越高级的特征越能体现出图像的类别属性,卷积神经网络正是通过逐层卷积的方式提取图像的优良特征。

 

1.2 池化下采样

图像经过卷积之后会产生多个特征图,但是特征图的大小与原始图像相比并没有改变,数据量仍然很大,计算量也会很大,为了简化运算,常常会把特征图进行下采样。卷积神经网络采取池化(Pooling)的方式进行下采样,常见的池化方法有两种:最大值池化(MaxPooling)和平均值池化(AvgPooling),两种池化过程如图 2 所示。

 

   

图 2 中,窗口大小是 2×2,步长是 2。最大值池化是在窗口覆盖的 4 个像素内选择最大的像素值作为采样值;平均值池化是计算窗口内 4 个像素的平均值,每次把窗口向右或者向下移动 2 个像素的距离,所以 4×4 的特征图池化后大小变为 2×2。

 

2 用于图像分类的 CNN 模型设计

本文参考 VGGNet 中卷积块[3]思想设计了一种卷积神经网络模型,在卷积层和全连接层加入了 dropout 层,一定程度上缓解了过拟合问题,还对不同池化方式和池化窗口对分类效果的影响进行了分析对比。

 

2.1 基础神经网络结构

该网络模型如表 1 所示,共有 11 层,包括 4 个卷积层,3 个池化层,主要包括 3 个部分。首先第一层是输入层,本文使用的数据集有 10 个种类,是大小为 32×32 的彩色图像,使用 RGB 颜色空间,所以输入层大小是 32×32×3。第一部分包括 2 个卷积层和 2 个池化层,2 个卷积层的特征图数量都是 32;第二部分包括 2 个卷积层和 1 个池化层,2 层卷积的特征图都是 64 个;第三部分是稠密连接层,即全连接层,第 1 层全连接层是 512 个神经元,第 2 层是 10 个,即划分到 10 个种类,然后使用 Softmax 回归进行分类。表 1 中的 Conv(3,3)-32 代表该层是卷积层,且卷积核大小是 3×3 有 32 个特征图;MaxPool(2,2)是指最大值池化,且窗口大小是 2×2;FC-512 是指该层是全连接层,神经元数目是 152 个。

 

2.2 存在问题分析

针对本模型使用 CIFAR-10 数据集进行试验测试,部分样例如图 3 所示。

 

 

使用 CIFAR-10 数据集结合 Rmsprop 优化方法训练该网络,把所有训练集中的图像训练一遍为一个周期(epoch)。在训练 100 个周期后,训练过程准确率变化如图 4 所示。

 

   

在训练过程中每一个周期都会计算训练数据集和测试数据集的准确率,可以看出在 40 个周期之前,测试集的准确率随着训练集的准确率一起上升,在第 40 个周期时达到 0.74;之后训练集的准确率继续上升,而测试集的准确率上升很小,而且有小幅波动;在 70 个周期之后,训练集准确率仍继续上升,而测试集准确率保持平稳,变化很小。本次训练的损失函数如图 5 所示。

 

   

从图 5 也可以看出,开始时测试集随着训练集的损失值一起下降,40 个周期之后测试集的损失值一直在 0.72~0.75 之间波动,而训练集的损失值还一直保持着下降的趋势,第 80 个周期下降到 0.50,最后下降到 0.42。损失函数的变化也从侧面印证了该模型出现了较为严重的过拟合问题。

 

3 本文提案的模型

使用重叠池化可以缓和过拟合问题,使用正则化也可以解决过拟合问题。HINTON G E 于 2012 年提出了 dropout 技术[4],针对神经网络的过拟合问题有了较大改善。dropout 是指在训练网络的过程中按照一定的比例随机丢弃部分神经元,即把某层中的神经元随机选取一部分使其输出值为 0,这样会使得这部分被选中的神经元对下一层与其相连的神经元输出没有贡献,失去作用。

   

多次实验发现,针对该网络模型最大值池化比平均值池化效果相对较好,使用重叠池化也可以改善效果,训练 100 个周期训练集和测试集的准确率如表 2 所示。

 

   

表 2 记录的是针对不同网络结构在 100 个周期内训练集和测试集的最高准确率。第 1 种和第 2 种模型分别采用平均值和最大值的非重叠池化,可以看出最大值池化相对平均值池化效果更好,但是二者都有过拟合问题;第 3 种模型是最大值重叠池化,一定程度上缓解了过拟合问题;第 4 种模型使用了最大值重叠池化和 dropout 技术并加上了适量正则化,可以看出训练集的准确率远低于测试集,其准确率上升还有较大潜力。因此,选择第 4 种作为优化后的网络结构,完整的网络结构如表 3 所示。

 

   

优化后的网络结构与原结构相比分别在第 5 层和第 9 层最大值重叠池化层后加入了 0.25 比例的 dropout 层,在第 11 层全连接层后加入了 0.5 比例的 dropout 层。另外对卷积层和全连接层的网络权重使用了 L2 正则化,正则化因子较小只有 0.000 1,仍然使用 Rmsprop 学习方法训练 300 个周期之后的准确率如图 6 所示。

 

   

从图 6 的训练过程可以看出,dropout 技术较好地解决了过拟合问题,测试集准确率随着训练集的准确率一起上升,而且训练集准确率一直都低于测试集,300 个周期内训练集准确率最高是 73.49%,测试集最高准确率可以达到 82.15%,可见 dropout 技术大大改善了过拟合问题。

   

dropout 在训练过程中随机丢弃部分神经元,每一批次的数据训练的都是一个不同的网络结构,相当于训练了多个网络,把多个不同结构的网络组合在一起,集成多个训练的网络于一体,可以有效防止单一结构网络的过度拟合。

 

4 结束语

本文提出了一种用于图像分类的卷积神经网络模型,针对传统卷积神经网络出现的过拟合问题,使用不同的池化方式和 dropout 技术,优化了网络结构,提高了模型的图像分类性能,在 CIFAR-10 数据集上取得较好的分类效果。