论文部分内容阅读
深度神经网络由于计算量大和参数存储成本高,使得在计算和功率资源有限的嵌入式系统上部署困难。本文基于参数修剪和共享的方法基础上,针对深度神经网络压缩的问题展开研究,着力于提高深度神经网络的压缩率,降低卷积层中的计算成本。主要研究工作如下:首先,介绍了深度神经网络压缩技术的发展现状,总结了压缩网络的典型方法,即参数修剪和稀疏、权值量化和参数共享、矩阵分解。介绍了深度神经网络的基本原理和基本结构,包括前馈神经网络、反馈神经网络和BP神经网络。对实验所采用的卷积神经网络的卷积层、池化层和非线性层进行了具体研究,以及介绍了典型卷积神经网络模型。其次,对比分析了基于参数修剪的两种主要方法,即非结构化剪枝和结构化剪枝。具体研究了基于非结构化剪枝的迭代剪枝和基于泰勒展开准则的结构化剪枝的两种深度神经网络压缩方法。介绍了神经网络参数共享的四种基本方法,随机化参数共享、基于哈希函数的参数共享、基于结构化矩阵参数共享和基于向量量化的参数共享。对比分析了单次修剪再训练、迭代修剪再训练和密集-稀疏-密集再训练的三种网络再训练策略。然后,将动态修剪网络权重方法和参数共享方法相结合。一方面在参数修剪的基础上,强调了以动态方式修剪网络。具体地,通过在修剪过程中引入剪接操作,最大程度保留网络中重要的权重连接,避免修剪过程中存在的误操作,从而保证了模型的精度和减少了模型的学习时间。为了进一步提升精度,在修剪过程中加入正则化。基于CIFAR-10数据集的AlexNet网络通过L1正则化精度提升了0.4%左右。另一方面,在参数修剪完成后通过K-Means方法量化权重,使得参数共享,加大深度神经网络的压缩。这种方法对基于ImageNet数据集的AlexNet网络实现了52倍的无损压缩。最后,提出了结合深度神经网络滤波器剪枝的混合修剪压缩方法。一方面,通过动态方式修剪滤波器,使得网络中修剪后的滤波器在模型训练过程中继续参与更新,保证了模型在修剪过程中的容量,从而稳定了模型的精度。由于模型修剪和训练步骤同时进行,省略了一般滤波器修剪过程中的微调程序,从而节省了模型的学习时间。该动态滤波器修剪方法对基于CIFAR-10数据集的ResNet-110网络实现了40.8%的卷积运算加速,而且只有0.3%的精度损失。另一方面,对动态滤波器剪枝后的网络进行动态权重修剪和参数共享,进一步删除冗余的参数和降低参数存储成本。该混合修剪压缩方法对基于MNIST数据集的LeNet-5实现了105倍的压缩和70%的卷积运算加速,对基于CIFAR-10数据集的AlexNet网络实现了38倍的压缩和73%的卷积运算加速,并且没有造成精度损失。