随着人工智能技术的不断发展,未来将出现大量廉价、便携以及功耗低的智能设备。机器通过不断学习会变得更加智能,而深度神经网络(Deep Neural Networks, DNN)是机器学习的主要技术之一[1-2]。虽然深度学习(Deep Learning, DL)在学术界的发展速度较快,但在产业界并未取得重大进展。例如,深度学习技术在自动驾驶中应用发展多年,但并未达到商业化要求[3]。这是因为深度学习算法及模型复杂度高、计算量大,较难部署在硬件资源有限的嵌入式设备中[4]。工艺的发展进步是解决该问题的一个途径,但减小模型参数量和计算量是更为有效的方法。
文献[5]提出深度压缩(Deep Compression, DC)技术, 通过对神经网络模型进行剪枝操作, 将模型权重参数丢弃, 在剪枝操作完成后, 这些参数固定为0。由于在剪枝过程中减小了模型容量, 因此需重新调整Dropout率。
剪枝操作能够降低模型容量, 防止过拟合[6-7], 但Dropout率降低会导致多模型融合效率降低, 使模型的泛化能力和可拓展性能变差[8-9]。为此, 本文建立一种基于剪枝的神经网络模型。描述神经网络剪枝操作过程, 并探究其泛化能力, 在此基础上, 以MNIST数据集上的lenet-5[10]为模型, 设计Dropout和剪枝操作的对比实验。
1 模型剪枝后泛化能力 1.1 模型剪枝操作随着数据的快速增长, 神经网络训练数据成倍增加。研究人员需要数天甚至数周的时间来训练大型神经网络模型, 如Alexnet的训练时间长达6天(基于2块GTX 580 3 GB GPU)[11]。根据模型的移值性要求, 在不影响模型精度的情况下, 通过减少参数量来提高训练效率。文献[5]的神经网络剪枝过程如图 1所示。
|
Download:
|
| 图 1 神经网络剪枝过程 | |
剪枝操作不仅减少了连接权重(图 1箭头所示), 而且神经元节点也会减少(图 1圆圈所示)。剪枝操作使网络变稀疏, 能够简化网络的复杂性。模型复杂性降低会减少过拟合情况的发生, 提升模型泛化能力。同时, 网络中需要确定的参数量减少。根据训练数据确定模型参数, 以进一步降低训练数据的数量。在剪枝后, 对稀疏网络进行重新训练, 否则模型会有精度损失。重新训练和模型最开始的训练过程类似, 已经裁剪掉的不用训练, 根据文献[5], 剪枝比例一般超过50%, 重新训练的剩余部分只占少数, 若继续保持最开始训练时的Dropout率, 训练出来的模型精度会下降, 因此可减少Dropout率。
Dropout层一般放置在全连接层后。在训练过程中, Dropout层会丢弃一定数量的信息, 只有部分数据发挥作用。在预测过程中, Dropout层将使用所有参数。具体来说, Dropout将隐含层输出以一定的概率置0, 此神经元不参与前向和后向传播。由于采用随机丢弃的方式, 每一次进行前向后向计算时, 丢弃掉的数据不同, 模型每一次的前向后向计算的表现也不同。Dropout可以看成是一种组合模型, 每个样本训练出不一样的网络结构。Dropout减少了神经元之间的共适应关系, 一个神经元不会依赖另一个神经元, 使网络学习到更加鲁棒的特征表示[12]。改变Dropout率具有如下优点:在一定程度上减轻过拟合的情况; 使模型具有多模型融合的效果, 即提高模型的拓展性和泛化能力。
1.2 泛化能力神经网络的泛化能力是训练好的网络对于不在训练集内数据的拟合能力[13-14]。目前, 神经网络被广泛应用于计算机视觉, 本文以视觉领域最基础的分类任务来探究其泛化能力。分类问题中存在一个十分经典的问题, 即遮挡问题[15]。本文研究基于遮挡问题的神经网络模型泛化能力。人类具有利用部分信息进行分析推断的能力。对于人类来说, 如果遮挡物体的一部分, 只要不是遮挡住最关键的信息, 就可以通过局部信息识别一个完整的物体。计算机如果有人类的分析推理能力, 其应具有较好的泛化能力。神经网络中最简单的手写数字体识别是一个分类问题, 本文结合遮挡问题来探究其泛化能力。
手写数字体识别的数据集是0~9的数字, 以灰度图形式表示。灰度图的每个像素点用0~255的数字表示灰度值, 值越大越接近纯白色。图 2所示为数字1的灰度图和像素点矩阵形式。
|
Download:
|
| 图 2 数字1的灰度图和矩阵形式 | |
如果将图 2(a)中数字1的上半部分全置0, 就达到了遮挡的效果, 如图 3所示。
|
Download:
|
| 图 3 遮挡上半部分的数字1 | |
在图 3中, 数字1较容易确认。图 4所示为另外一种形式的数字1, 可以看出, 若遮挡上半部分, 无法确认是数字1还是数字7。基于图 2~图 4所描述的遮挡过程, 本文研究训练集和测试集有差异时神经网络表现出的泛化能力。
|
Download:
|
| 图 4 数字1的另一种形式 | |
为探究剪枝后泛化能力的变化, 本文在未剪枝模型上测试Dropout率变化对泛化能力的影响, 对重新训练好的模型进行泛化能力实验, 通过对比分析验证剪枝对泛化能力的影响。
2 实验结果与分析 2.1 实验设置本文实验基于Caffe深度学习框架, 使用MNIST数据集, 包含60 000张训练数据和10 000张测试数据, 采用lenet-5手写数字体识别卷积神经网络。Caffe官网文件库(Model Zoo)没有经过训练的lenet-5模型权重文件, 本文根据下载的MNIST数据集训练得到模型权重文件(Caffe中以caffemodel形式存储)。实验计算机配置为:Intel© Core i5-4210M双核处理器, 内存8 GB RAM, Ubuntu16.04, 利用Python脚本实现数据集的处理和剪枝操作。从官网下载的MNIST数据集转换为图片格式, 然后对图片进行遮挡操作, 再构建txt标签, 生成可供训练(mnist_train_lmdb)和测试(mnist_test_lmdb)的lmdb格式的数据集。遮挡操作遮挡数字图上半部分, Dropout层加在lenet-5的第一个全连接层后面, Dropout率从0.0~0.9间隔0.1变化, 剪枝操作逐层进行, 剪枝极限依据文献[5]提供的数据。所有实验都进行10次, 计算平均值作为最终结果。
2.2 结果分析实验1 Caffe自带的lenet-5网络模型中没有Dropout层, 在完整的MNIST训练集和测试集上lenet-5模型的准确率acc=0.991 1(Dropout=0.0), 在第一个全连接层加Dropout层, 调节Dropout率大小, 实验结果如表 1所示。
|
下载CSV 表 1 不同Dropout下的准确率对比 |
从表 1可以看出, 不同Dropout的准确率变化程度较小, 因此, 调整Dropout对准确率影响较小。这可能由于Caffe自带改进的lenet-5模型文件中不含Dropout层。
实验2 训练集保持完整, 测试集遮挡上半部分, 未加Dropout层的准确率acc=0.459 3。将Dropout层加在第一个全连接层后, 以3种模式进行训练, 具体分析如下:
1) 以随机初始化的方式进行训练, 由于分类结果有10个, 准确率会从10%逐渐提升。
2) 以完整训练测试集训练出一个caffemodel, 再在caffemodel的基础上进行微调, 即将预先训练好的模型参数作为初始化参数。
3) 在训练测试集遮挡上半部分的数据集上训练出一个caffemodel, 然后进行微调。前2种模式效果一样, 因为训练过程是基于训练集进行调参, 参数的确定由训练集决定, 测试集给出模型准确率, 模式1和模式2根据同一个训练集而来, 模式2在模式1的基础上多训了一遍, 相当于同一种类型。改变Dropout率的结果如表 2和表 3所示。
|
下载CSV 表 2 完整训练集不同Dropout下的准确率对比1 |
|
下载CSV 表 3 遮挡训练集不同Dropout下的准确率对比1 |
从表 2可以看出, 未加Dropout层的准确率acc=0.459 3, 比实验1的准确率低。在训练的过程中, 根据终端的快照, 某些轮次的测试集准确率比0.459 3要高一些, 但是会出现越训练效果不升反降的情况。这是由于训练集和测试集的数据分布和信息容量不同。在训练时, 使用了全部的数据信息, 在识别时每个位置都会被当作识别的特征加以提取。在测试时, 被遮挡后只有一半的数据, 有确定的特征突然消失, 导致神经网络模型准确率下降。此外, 表 2中准确率呈上升趋势, 说明Dropout能够使模型具有较高的泛化能力。
实验3 训练集遮挡上半部分, 测试集完整, Dropout层加在第一个全连接层后。在2种不同的caffemodel基础上进行微调, 结果如表 4和表 5所示。
|
下载CSV 表 4 完整训练集不同Dropout下的准确率对比2 |
|
下载CSV 表 5 遮挡训练集不同Dropout下的准确率对比2 |
从表 5可以看出, 随着Dropout率上升, 准确率逐渐下降。表 5和表 2表示结果相反, 2个实验的测试集和训练集都不同, 实验3的测试数据比实验2测试数据多1倍。可以看出, 测试数据较多时, 提高Dropout率会放弃更多的特征, 使模型的准确率变差。如果实验3对应的测试集遮挡3/4, 则Dropout率越高准确率越高。表 5和表 2对比也可以说明Dropout的泛化能力提升仅针对测试集变小的情况。
表 2~表 5实验具体情况如图 5所示。表 3和表 4两者初始的caffemodel和测试集保持一致, 训练过程以增大(减少)一半的训练集进行调参, 调参的越多就会和测试集偏差越多, 因此增大Dropout率会放弃更多和测试集相同的特征, 导致准确率一直下降。
实验4 不加Dropout层, 同时遮挡训练和测试集上半部分后的模型准确率acc=0.912 4。加入Dropout并改变其大小, 准确率基本维持不变。测试集被遮挡一半, 如果把训练数据也变成只有一半, 与表 2中Dropout为0的情况相比, 不加Dropout层, 训练测试集同时遮挡上半部分后的模型准确率acc=0.912 4。
实验5 对于剪枝后的模型, 本文实验均未加Dropout层。剪枝极限参考文献[5], 本文稍有改动, 剪枝率的参数值设置如下:第1个卷积层为33%, 第2个卷积层为80%, 第1个全连接层为90%及第2个全连接层为80%。根据完整的MNIST训练集和测试集出来的lenet-5剪枝模型准确率acc=0.988 9。向下调整剪枝比例后准确率变化不大, 保持在0.99附近。加入Dropout层准确率基本没有变化。实验结果表明, 适当剪枝不会影响准确率。
实验6 训练集保持完整, 测试集遮挡上半部分, 在2种不同的caffemodel基础上进行微调, 并调整剪枝比例, 得到的结果如表 6和表 7所示。剪枝模型在一个固定剪枝比例的基础上改变Dropout后的准确率和表 2、表 3情况类似, 不再赘述(以33%、80%、90%、80%比例剪枝的模型逐渐增大Dropout率, 模型准确率呈上升趋势)。
|
下载CSV 表 6 完整训练集不同剪枝比例下的准确率对比1 |
|
下载CSV 表 7 遮挡训练集不同剪枝比例下的准确率对比1 |
从表 6可以看出, 经过剪枝的准确率小于未剪枝时的准确率(表 2中的0.459 3), 说明剪枝过程本身会降低模型的泛化能力。这是由于剪枝模型权重参数减少, 放弃了更多的细微特征, 虽然不是主要特征, 但在识别阶段提取特征时, 很多微小特征也有可能具有明显的相同特征, 导致模型准确率降低。加上Dropout后和表 2情况一样, 则对于本来有Dropout层的网络模型, 剪枝必然伴随Dropout率的下调, 剪枝后模型的泛化能力还会进一步降低。另外, 各层剪枝后的泛化能力稍有区别, 例如对单个层不进行剪枝, 模型准确率有较大区别, 对比表 6中第2行~第7行数据, 可以得出全连接层比卷积层敏感的结论。
实验7 训练集遮挡上半部分, 测试集完整, 在2种不同的caffemodel基础上进行微调, 并调整剪枝比例, 得到的结果如表 8和表 9所示。剪枝模型固定剪枝率后调节Dropout后情况和表 4、表 5情况类似, 不再赘述。
|
下载CSV 表 8 完整训练集不同剪枝比例下的准确率对比2 |
|
下载CSV 表 9 遮挡训练集不同剪枝比例下的准确率对比2 |
从表 9可以看出, 经过剪枝的准确率小于未剪枝时的准确率(表 5中的0.851 9)。说明模型剪枝后泛化能力减弱不仅发生在测试集缩小的情况, 放大测试集后其泛化能力也会减弱。另外, 各层剪枝后的泛化能力稍有区别, 与表 6结论一致, 不再赘述。
实验8 训练集和测试集都遮挡上半部分, 模型准确率acc=0.910 2。往下调整剪枝比例后准确率变化不大, 保持在0.91附近, 加入Dropout层准确率也基本没有变化。实验8的结论同实验5的结论。
表 7和表 8与表 3和表 4中Dropout为0的情况相比, 准确率都降低。准确率下降的原因同实验6, 不再赘述。
综上, 通过对比表 2、表 5、表 6和表 9, 可以得到模型的泛化能力:Dropout提升泛化能力仅对测试集变小的情况有效; 对于模型剪枝, 所有情况的准确率比未剪枝的低, 泛化能力比未剪枝的弱。因此, 如果模型有Dropout层, 在剪枝操作中下调Dropout率, 能够进一步降低泛化能力。
3 结束语剪枝操作中Dropout率下调会给模型带来负面影响。为此, 本文提出一种神经网络模型泛化能力的验证方法。在lenet-5模型上的实验结果表明, 剪枝后的模型泛化能力减弱与Dropout率下调和参数量减少有关。下一步将在神经网络模型上研究Dropout层的位置对剪枝模型泛化能力的影响。
| [1] |
周飞燕, 金林鹏, 董军. 卷积神经网络研究综述[J]. 计算机学报, 2017, 40(6): 1229-1251. ( 0)
|
| [2] |
HAN Song.Efficient methods and hardware for deep learning[D].San Francisco, USA: Stanford University, 2017.
( 0)
|
| [3] |
张新钰, 高洪波, 赵建辉, 等. 基于深度学习的自动驾驶技术综述[J]. 清华大学学报(自然科学版), 2018, 58(4): 438-444. ( 0)
|
| [4] |
HAN Song, JEFF P, JOHN T, et al.Learning both weights and connections for efficient neural networks[C]//Proceedings of the 28th International Conference on Neural Information Processing Systems.Cambridge, USA: MIT Press, 2015: 1135-1143. https://www.researchgate.net/publication/277959043_Learning_both_Weights_and_Connections_for_Efficient_Neural_Networks
( 0)
|
| [5] |
HAN Song, MAO Huizi, DALLY W J.Deep compression: compressing deep neural networks with pruning, trained quantization and Huffman coding[EB/OL].[2018-06-18].https://arxiv.org/pdf/1510.00149.pdf.
( 0)
|
| [6] |
ROSA G H D, PAPA J P, YANG X S. Handling dropout probability estimation in convolution neural networks using meta-heuristics[J]. Soft Computing, 2017, 22(18): 6147-6156. ( 0)
|
| [7] |
POERNOMO A, KANG D K. Biased dropout and crossmap dropout:learning towards effective dropout regularization in convolutional neural network[J]. Neural Networks, 2018, 104: 60-67. DOI:10.1016/j.neunet.2018.03.016 ( 0)
|
| [8] |
MESHGI K, MAEDA S I, OBA S, et al. Constructing a meta-tracker using Dropout to imitate the behavior of an arbitrary black-box tracker[J]. Neural Networks, 2017, 87: 132-148. DOI:10.1016/j.neunet.2016.12.009 ( 0)
|
| [9] |
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. ( 0)
|
| [10] |
LECUN Y, BOTTOU L, BENGIO Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11): 2278-2324. DOI:10.1109/5.726791 ( 0)
|
| [11] |
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.[S.l.]: Curran Associates Inc., 2012: 1097-1105. https://www.researchgate.net/publication/267960550_ImageNet_Classification_with_Deep_Convolutional_Neural_Networks
( 0)
|
| [12] |
HINTON G E, SRIVASTAVA N, KRIZHEVSKY A, et al. Improving neural networks by preventing co-adaptation of feature detectors[J]. Computer Science, 2012, 3(4): 212-223. ( 0)
|
| [13] |
ZHANG Chiyuan, BENGIO S, HARDT M, et al.Understanding deep learning requires rethinking generalization[EB/OL].[2018-06-18].https://arxiv.org/pdf/1611.03530.pdf.
( 0)
|
| [14] |
CHEN Binghui, DENG Weihong, DU Junping.Noisy softmax: improving the generalization ability of DCNN via postponing the early softmax saturation[EB/OL].[2018-06-18].https://arxiv.org/pdf/1708.03769.pdf.
( 0)
|
| [15] |
李小薪, 梁荣华. 有遮挡人脸识别综述:从子空间回归到深度学习[J]. 计算机学报, 2018, 41(1): 177-207. ( 0)
|
2019, Vol. 45

0)