基于Dropout的改进卷积神经网络模型平均方法
2019-08-27程俊华曾国辉鲁敦科黄勃
程俊华 曾国辉 鲁敦科 黄勃
摘 要:针对深度卷积神经网络(CNN)中的过拟合问题,提出一种基于Dropout改进CNN的模型预测平均方法。首先,训练阶段在池化层引入Dropout,使得池化层单元值具有稀疏性;然后,在测试阶段将训练时池化层Dropout选择单元值的概率与池化区域各单元值所占概率相乘作为双重概率;最后,将提出的双重概率加权的模型平均方法应用于测试阶段,使得训练阶段池化层Dropout的稀疏效果能够更好地反映到测试阶段池化层上,从而使测试错误率达到与训练的较低错误率相近的结果。在给定大小的网络中所提方法在MNIST和CIFAR-10数据集上的测试错误率分别为0.31%和11.23%。实验结果表明:仅考虑池化層对结果的影响,所提方法与Prob.weighted pooling和Stochastic Pooling方法相比具有更低的错误率,表明池化层Dropout使得模型更具泛化性,并且池化单元值对于模型泛化具有一定帮助,能够更有效避免过拟合。
关键词:深度学习;卷积神经网络;Dropout正则化;过拟合;模型平均
中图分类号: TP183(人工神经网络与计算)
文献标志码:A
Abstract: In order to effectively solve the overfitting problem in deep Convolutional Neural Network (CNN), a model prediction averaging method based on Dropout improved CNN was proposed. Firstly, Dropout was employed in the pooling layers to sparse the unit values of pooling layers in the training phase. Then, in the testing phase, the probability of selecting unit value according to pooling layer Dropout was multiplied by the probability of each unit value in the pooling area as a double probability. Finally, the proposed double-probability weighted model averaging method was applied to the testing phase, so that the sparse effect of the pooling layer Dropout in the training phase was able to be better reflected on the pooling layer in the testing phase, thus achieving the low testing error as training result. The testing error rates of the proposed method in the given size network on MNIST and CIFAR-10 data sets were 0.31% and 11.23% respectively. The experimental results show that the improved method has lower error rate than Prob. weighted pooling and Stochastic Pooling method with only the impact of pooling layer on the results considered. It can be seen that the pooling layer Dropout makes the model more generalized and the pooling unit value is helpful for model generalization and can effectively avoid overfitting.
Key words: deep learning; Convolution Neural Network (CNN); Dropout regularization; overfitting; model averaging
0 引言
近年来,随着人工智能的快速发展,深度学习在各领域的应用越来越广泛[1-4 ]。其中,卷积神经网络(Convolutional Neural Network, CNN)在机器学习和计算机视觉等领域拥有的出色表现,使得它被应用到更多问题的解决方案中。卷积神经网络的优势在于其能够自动提取特征,从而能够避免人工提取特征的困难和麻烦,但不可避免地会出现由于数据集较小或者训练次数过多等原因出现的过度学习现象,又称“过拟合”。对于分类任务,过拟合问题体现在在训练集上错误率较低,而在测试集上错误率却偏高。过度学习将训练集某类数据的特殊特征当作该类数据的一般特征进行学习,使得学习的模型在测试集数据上进行测试时,将该类数据的特殊特征当作一般特征进行判断,不能够对数据进行准确分类,错误率较高。这是监督学习中一个普遍存在且相当棘手的问题,本文致力于对卷积神经网络的过拟合问题提供解决方法。
目前,很多科研机构和高校对于有效解决过拟合问题均进行了深入研究。Dropout方法最早由Hinton等[5]提出用于解决过拟合问题。在训练时加入Dropout,一部分激活单元随机受到抑制,每一次训练的网络结构均不同,训练结果可看作是不同神经元子集的模型的组合,而在测试时保留所有神经元,采用模型平均的方法来对训练过的所有可能模型求取平均近似值。Dropout刚开始被用于卷积神经网络的全连接层,全连接层占据卷积神经网络的大部分参数,对于小型网络表现较好,但在稍复杂的中大型网络上,其他层的参数增多,表现不明显。之后,Srivastava等[6]又尝试在卷积层使用Dropout,但卷积层本身具有的参数共享和稀疏连接特性减少了参数的数量,从而降低了卷积层过拟合的可能性,因此Dropout在卷积层的优势并不明显。随后,Goodfellow等[7]采用一组线性函数中取最大值作为神经单元激活值的方法,该方法基于Dropout建立了Maxout network。然而文献[7]并没有通过Dropout对修正对应模型进行训练,而是直接将其与Maxout network进行比较,因此,对于是什么因素对取得的显著成果产生的影响并不清楚。Wan等[8] 将Dropout用于抑制平坦层神经元之间连接权重,提出了DropConnect方法,提升了特征学习的细腻度,从而更有效避免过拟合;但该方法只适用于全连接层,对于其他层具有局限性。Lambert等[9]提出了异方差Dropout,使Dropout方差成为特权信息函数,显著提高了学习过程的样本效率,但对于过拟合并没有显著影响。Zeiler 等[10] 提出了随机池化,从池化方法入手来进一步解决过拟合问题。与最大值池化选取池化区域最具代表性特征作为池化激活值不同,随机池化在池化区域内随机选取池化激活值,在测试时以池化区域内各单元值概率加权到激活值上进行模型平均,该方法类似于最大值池化Dropout方法,但最大值池化Dropout方法可能训练的模型数量更多,抑制过拟合效果更好。Wu等[11]在最大值池化中引入Dropout,随机抑制池化值再利用最大值池化选取池化激活值,在测试阶段采用Prob.weighted pooling模型预测平均方法作用于池化层得到模型平均,但Prob.weighted pooling方法仅考虑了池化激活值选择概率。
受文献[10-11]研究启发,本文针对最大值池化Dropout解决过拟合问题给出了一种更优的模型平均方法,训练时在池化层采用最大值池化Dropout,在测试阶段模型平均时,与Prob.weighted pooling方法相比将单元值在池化区域中的概率考虑在内,结合池化激活值选择概率共同加权到被选择单元值的激活值上,得到遍历所有可能模型近似平均的池化结果。相比于随机池化,训练模型更具泛化性。实验结果表明,在同样网络结构的卷积神经网络下,本文提出的方法具有更好的抑制过拟合效果。
1 传统卷积神经网络结构
一般的CNN由卷积层、池化层和全连接层组成。卷积层和池化层交替连接用于特征提取,全连接层最后用于对提取特征进行分类。CNN的局部连接和权值共享等特点,使其比一般神经网络具有更少的参数,具有平移不变性、特征降维以及强大的表征能力等优点,并且由于神经元之间的稀疏连接,使得其具有良好的泛化性。
1.1 卷积层
在卷积层中输入图像与相应的卷积核进行卷积操作,用于对图像进行特征提取,一个二维步长为1、无填充卷积操作过程可如图1所示。
假设yli为输入数据在第l层中的第i(i=1,2,…,nl)个feature map,yli与相应的卷积核Wl+1,k卷积得到的卷积矩阵求和加上相对应的偏置bl+1,k,即可得到第l+1层的输入zl+1,k,经过非线性激活函数处理即可得到数据在第l+1层的第k个输出矩阵,即yl+1,k。其过程可表述为:
1.2 池化层
在卷积神经网络中,卷积層之后一般为池化层,池化层对卷积层得到的特征进行下采样,从而减小计算量,降低网络复杂度,提高计算效率。通常的池化操作可表示为:
其中:alm, j表示Rlm区域内第j(j=1,2,…,n)个池化单元值,l为第l层;n表示Rlm区域池化单元的数目;pool(·)表示池化操作。通常采用的池化方法为平均池化和最大值池化,平均池化方法在卷积神经网络刚提出时应用较多;最大值池化因其能够将最具代表性的特征保留的特点,受到广泛应用,以2×2池化大小为例,最大值池化过程如图2所示。
2 改进CNN结构
本文在CNN池化层引入Dropout,在训练阶段池化层引入Dropout,在测试时使用双重概率加权模型平均来代替采样,将训练时池化层Dropout的可能训练的所有模型进行有效的平均,实现模型预测。
2.1 训练阶段最大值池化Dropout
在池化层引入Dropout后,在进行池化操作之前,首先进行掩模处理,使得池化区域中的部分神经元激活值以一定概率被置为0,在保留下来的神经元中再进行最大值池化操作,其过程可表示为:
cx其中:rlm表示一个二进制掩模,服从Bernoulli分布;lm表示对输入alm掩模处理后的feature map, lm输入到最大值池化中得到池化结果,即为最大值池化Dropout方法。该池化方法具有随机性,以2×2池化为例,如图3所示。
2.2 测试阶段双重概率加权模型平均
训练时在池化层引入Dropout,则池化单元值被随机抑制,但在测试时,整个网络包括所有池化层的单元值都应该参与网络运作,因此需要通过模型平均的方式将训练时池化层引入Dropout的效果体现到测试阶段。文献[11]在测试阶段采用的模型平均方法利用式(7)得到池化区域输出结果:
本文方法与Prob.weighted pooling相比,除了考虑池化值选择概率外,还将池化区域单元值概率考虑在内,进一步保证了测试阶段池化输出值与训练阶段池化单元值的期望值的一致性。如2.1节所述,本文方法在l层可能训练的模型数量为(t+1)rs/t。就随机池化而言,由于其未使用Dropout,每个池化区域只有t种选择,即其在l层可能训练的模型数量为trs/t。例如,在第l层,s=32×32,r=96,t=2×2,则随机池化方法可能训练的模型数量为4(1/4)×32×32×96,而本文方法最大值池化Dropout可能训练的模型数量为5(1/4)×32×32×96。虽然基数相差较小,但是本文方法可能训练的模型数量是随机池化方法的1.2524576倍,因此本文最大值池化Dropout方法能够比随机池化方法提供更多可能训练的模型,从而能够学习更广泛的特征,使模型更具泛化性,避免过拟合。
这种双重概率加权池化可以理解为模型平均的一种形式,每一个选择的索引j对应一个不同的模型。在训练阶段,服从多项式分布进行采样以选择一个新的索引,为每一个训练样本的每个表示产生一个新的模型,可能的模型数量随传入到最大值池化层的单元值数量呈指数型增长。在测试阶段,使用双重概率加权池化来代替采样,可以有效地得到所有这些可能模型的平均值的近似值,而无需实例化它们。
3 实验参数与数据集
在经过卷积层和全连接层的输出后需要输入到激活函数中进行非线性处理使得神经元更具表达性,常用的非线性激活函数有Tanh函数、Sigmoid函数以及Relu函数[9],前两者为饱和非线性函数,而Relu函数为非饱和非线性函数,在达到相同训练误差的情况下,非饱和激活函数要比饱和激活函数快许多倍,同时由于Relu函数的单侧抑制作用,使得网络具有稀疏激活性,减少网络参数的相互协作,能够更好地学习数据特征,且能够避免梯度消失问题,使模型持续收敛,而不会像饱和激活函数那样导致收敛停滞。本文在卷积层和全连接层均采用Relu函数作为激活函数,网络最后一个全连接层输出连接Softmax层,使得网络输出分类结果,根据Relu函数的表达式,卷积层和全连接层的激活值可表达为:
网络训练使用小批量梯度下降(mini-batch Stochastic Gradient Descent, mini-batch SGD)法,批次大小为100,动量为0.9,学习率设置为0.1。使用均值为0、方差为0.01的正态分布来随机初始化权重,偏置初始化为0,每当误差趋于平缓时就将学习率减小,默认保留概率p为0.5。实验环境为:操作系统Win 10,处理器Intel core i7 CPU @ 3.00GHz,6个内核12线程,RAM 16GB,GPU NVIDIA GTX 1080ti。实验采用MNIST、CIFAR-10数据集进行验证。MNIST、CIFAR-10数据集的部分样本分别如图4(a)、(b)所示。
4 实验结果与分析
4.1 MNIST数据集
MNIST数据集是计算机视觉和机器学习领域广泛使用的基准数据集,可作为方法是否有效的一个衡量标准,其包含60000张训练和10000张测试样本,每个样本为28×28的灰度图像,包含0~9中的一个数字,在输入CNN前将样本归一化到[0,1]。
在训练阶段池化层引入Dropout,测试阶段有与之对应的模型平均方法,本文对文献[11]中测试阶段模型预测平均方法(Prob.weighted pooling)作出改进。将改进后的方法与原方法应用于同一结构CNN模型1×28×28-12C5-2P2-24C5-2P2-1000N-10N,在两种方法中均使用全连接层Dropout,可消除全连接层对于结果的影响,从而关注方法在池化层的效果。对比改进前后,在测试阶段池化层上能够反映训练阶段池化层Dropout效果的优劣性。图5所示为使用三种方法在同一结构下训练迭代300次所得模型的测试错误率变化曲线。
在图5中,使用全连接层Dropout错误率曲线作为参考,可以看出:随着迭代的不断进行,全连接层Dropout方法在收敛到一定程度时,错误率不再下降;本文方法与改进前Prob.weighted pooling曲线能够收敛并不断下降,且本文方法的错误率基本低于改进前方法的错误率,所以本文方法在测试阶段池化层上能够更好地反映出训练阶段池化层引入Dropout后的效果,能更有效避免过拟合问题。
为了比较本文方法与随机池化方法在抑制过拟合性能上的表现,在CNN模型1×28×28-12C5-2P2-24C5-2P2-1000N-10N上对不同保留概率情况下本文方法与随机池化方法进行实验,对于最大值池化Dropout训练的模型,在测试时仅使用提出的双重概率加权的模型平均池化方法。图6所示为使用随机池化和不同保留概率下本文方法迭代300次的错误率变化曲线。
从图6可以看出,随机池化的测试错误率介于本文方法在p=0.7和p=0.9两者之间,与本文方法(p=0.5)相差较多,p较大时(p=0.9),本文方法的抑制过拟合性能不如随机池化,表明保留概率p与本文方法的性能有较大关系。这是因为加权概率受保留概率p的影响,在p较大时相当于大多数神经元都得到保留,Dropout稀疏化效果不明显,因此不能很好抑制过拟合,错误率较高。虽然随机池化没有超参数且不受保留概率p的影响,但具有典型值p(p=0.5)的本文方法在抑制过拟合问题上很大程度优于随机池化。
训练一个不同结构模型采用不同的方法和不同保留概率p,只在池化层使用Dropout,以比较不同的p值对不同方法的影响,实验在1×28×28-20C5-2P2-40C5-2P2-1000N-10N的网络上迭代1000次,图7给出了测试阶段不同池化方法的错误率与保留概率p之间的关系。由图7可以看出,不同的p值下,本文方法表现较好,且在p=0.5时的结果最优;Max pooling方法在较小的p值下,错误率比较高,表现较差;Prob.weighted pooling方法和本文方法,在不同p值下的趋势呈U型,且本文方法错误率低于Prob.weighted pooling方法,在p值较大或较小时,Prob.weighted pooling方法和本文方法错误率均高于随机池化(Stochastic Pooling),与图6内容相对应,再次验证了图6所得结论的正确性。随着p值的增加,不同方法之间的性能差异越来越小,特殊的情况当p=1时,差异将缩减为0。
同样在1×28×28-20C5-2P2-40C5-2P2-1000N-10N结构上,利用MNIST数据集对使用全连接层Dropout的本文方法与其他方法的错误率进行记录比较。在不使用Dropout时的错误率为0.81%,错误率最高,因为受过拟合的影响,在全连接层使用Dropout后的错误率降为0.56%;文献[7] 的Maxout+Dropout方法错误率约为0.45%,文献[10]的 Stochastic Pooling方法错误率又降到0.47%,文献[11]结合全连接层Dropout的最大值池化Dropout(Prob.weighted pooling)方法错误率降为0.39%;同样结合全连接层Dropout,而本文的方法错误率约为0.31%,相比于其他方法在过拟合问题上表现要好,表明了本文方法具有更好的抑制作用。
4.2 CIFAR-10数据集
CIFAR-10数据集[15]是一个包含10类共60000张自然图像的数据集,其中,训练集包含50000个样本,测试集包含10000个样本,每个样本为一个32×32大小的RGB图像。对数据集中的样本像素值归一化在[0,1],并减去每个图像在数据集上计算的每个通道的平均值作为预处理。
相对于MNIST数据集,CIFAR-10数据集在每个类别中的差异更大,因此使用更深更宽的网络结构:3×32×32-96C5-3P2-128C3-3P2-256C3-3P2-2000N-2000N-10N,来对复杂的非线性关系进行建模,同样只在池化层使用Dropout,比较在CIFAR-10数据集上不同方法取不同保留概率p(p=0.3,p=0.5和p=0.7)的影响。在上述CNN网络结构上训练迭代1000次,得到不同池化方法错误率与保留概率p的关系如图8所示。由图8可以看出,本文方法在不同保留概率p下依然表现最好,在p=0.5时依旧最优,并且随着p的增加不同方法之间的性能差异逐渐缩小。
利用CIFAR-10數据集在同一结构的上述CNN模型下,记录使用全连接层Dropout的本文方法与其他方法的错误率:在不使用Dropout时,错误率约为16.50%,在全连接层使用Dropout、文献[7] 的Maxout+Dropout、文献[10] 的Stochastic Pooling、文献[11] 结合全连接层Dropout的最大池化Dropout(Prob.weighted pooling)、结合全连接层Dropout的本文方法错误率分别为14.24%、11.68%、15.14%、11.29%、11.23%,可以看出本文方法在较大型数据集上依然具有不错的抑制过拟合表现。
5 结语
本文利用Dropout,提出了一种双重概率加权池化的模型预测平均方法,用于解决CNN中的过拟合问题。通过将池化区域内各单元值概率引入到Prob.weighted pooling方法,并探索合适的保留概率p使算法具有更强的泛化性,能够有效抑制过拟合,从而能够将测试阶段的错误率向训练阶段靠拢,使得错误率更低。可见选择池化激活值时,考虑池化值对整个池化区域的影响有助于降低网络的错误率。通过对本文改进的方法与同样解决过拟合问题的方法进行实验对比,结果表明本文所提方法相较于其他已有解决过拟合方法的错误率更低,且保留概率为0.5时效果较好,能够有效降低错误率,抑制过拟合,应用于图像分类任务可使识别率得到提升。但是在引入Dropout机制后的一个普遍现象是收敛速度变慢,考虑到不同目标函数优化器的收敛速度不同,下一步研究可在本文方法中加入不同目标优化函数,使得模型训练测试时收敛速度更快。
参考文献 (References)
[1] BISHOP C. Pattern Recognition and Machine Learning[M]. Berlin: Springer, 2006: 560-571.
[2] SCHMIDHUBER J. Deep learning in neural networks: an overview[J]. Neural Networks, 2015, 61: 85-117.
[3] LECUN Y, BENGIO Y, HINTON G. Deep learning [J]. Nature, 2015, 521: 436-444.
[4] 周飞燕,金林鹏,董军.卷积神经网络研究综述[J].计算机学报,2017,40(6):1229-1251.(ZHOU F Y, JIN L P, DONG J. Review of convolutional neural network [J]. Chinese Journal of Computers, 2017, 40(6): 1229-1251.)
[5] HINTON G E, SRIVASTAVA N, KRIZHEVSKY A, et al. Improving neural networks by preventing co-adaptation of feature detector [J]. arXiv Preprint, 2012, 2012: arXiv.1207.0580.
Computer Science, 2012, 3(4): 212-223.
[6] SRIVASTAVA N, HINTON G, KRIZHEVSKY A,et al. Dropout: a simple way to prevent neural networks from overfitting [J]. The Journal of Machine Learning Research, 2014, 15(1): 1929-1958.
[7] GOOGFELLOW I, WARDE-FARLEY D, MIRZA M, et al. Maxout networks [C]// Proceedings of the 30th International Conference on Machine Learning. Atlanta, Georgia: JMLR W&CP, 2013: 1319-1327.
[8] WAN L, ZEILER M D, ZHANG S,et al. Regularization of neural networks using dropconnect [C]// Proceeding of the 30th International Conference on Machine Learning. Atlanta, Georgia: JMLR W&CP, 2013: 1058-1066.
[9] LAMBERT J, SENER O, SAVARESE S. Deep learning under privileged information using heteroscedastic dropout [EB/OL]. [2018-08-29]. https://arxiv.org/pdf/1805.11614.pdf.
[10] ZEILER M D, FERGUS R. Stochastic pooling for regularization of deep convolutional neural networks [EB/OL]. [2018-09-17]. https://arxiv.org/pdf/1301.3557.pdf.
[11] WU H, GU X. Towards dropout training for convolutional neural networks [J]. Neural Networks, 2015, 71: 1-10.
[12] LIN M, CHEN Q, YAN S. Network in network [J/OL]. arXiv Preprint, [2018-09-17]. https://arxiv.org/pdf/1312.4400.pdf.
[13] 趙慧珍,刘付显,李龙跃,等.基于混合maxout单元的卷积神经网络性能优化[J].通信学报,2017,38(7):105-114.(ZHAO H Z, LIU F X, LI L Y, et al. Improving deep convolutional neural networks with mixed maxout units [J]. Journal on Communications, 2017, 38(7): 105-114.)
[14] KRIZHEVSKY A, SUTSKEVER I, HINTON G E. ImageNet classification with deep convolutional neural networks [C]// Proceedings of the 25th International Conference on Neural Information Processing Systems. New York: Curran Associates Inc., 2012: 1097-1105.
[15] KRIZHEVSKY A. Learning multiple layers of features from tiny images [D]. Toronto: University of Toronto, 2009: 16-22.
[16] AL-SAFFAR A A M, TAO H, TALAB M A. Review of deep convolution neural network in image classification [C]// Proceedings of the 2017 International Conference on Radar, Antenna, Microwave, Electronics, and Telecommunications. Piscataway, NJ: IEEE, 2017: 26-31.
[17] XIE L, WANG J, LIN W, et al. Towards reversal-invariant image representation [J]. International Journal of Computer Vision, 2017, 123 (2): 226-250.
[18] GOODFELLOW I, BENGIO Y, COURVILLE A, et al. Deep Learning [M]. Cambridge, MA: MIT Press, 2016: 11-12.
[19] FENG Y, ZENG S, YANG Y, et al. Study on the optimization of CNN based on image identification [C]// Proceedings of the 17th International Symposium on Distributed Computing and Applications for Business Engineering and Science. Piscataway, NJ: IEEE, 2018: 123-126.