论文部分内容阅读
近年来,深度学习技术获得了飞速的发展,并逐渐应用在计算自视觉、自然语言处理等诸多领域。卷积神经网络作为深度学习的一个主要研究分支,在很多的分类、检测和分割等任务上都取得了优于传统方法的表现效果。然而,卷积神经网络的成功是通过庞大的参数组合形成的,多种多样的卷积核相堆叠保证其能提取出丰富多样的有代表性的特征。这也就表明了卷积神经网络的运行需要很好的硬件条件做支撑,这种硬件限制使得神经网络只能停留在实验室中,无法运行在存储量和运算能力较低的移动设备上。实际上网络存在大量的参数冗余,本文针对深度神经网络的模型压缩与优化加速展开研究,主要工作有:针对迭代剪枝容易产生累积误差的问题,提出了一种基于敏感度的逐层剪枝算法。我们首先考虑单个卷积层对整体网络性能的影响程度,定义了卷积层敏感度的概念,定量衡量每个卷积层的敏感度。基于此,不同剪枝率下的剪枝次序将会按照当前状态下的低敏感度卷积层到高敏感度卷积层进行,并且跨层剪枝之间采用了贪心剪枝的方法。该算法能够大大减少单层剪枝之后对网络的损耗,并且后序迭代剪枝也能在一个较高水平的网络性能上进行,避免了迭代剪枝误差放大的问题。在LeNet-5和AlexNet网络模型上,我们的算法在压缩率和加速比等相关指标上都有所提升。针对剪枝在致密网络模型上容易产生滤波器误删的问题,我们提出了一种基于二维图像熵的多级滤波器剪枝算法。我们从滤波器的物理意义出发,定义了基于输出特征图二维图像熵的滤波器重要性评价标准,定量的衡量了每个滤波器的特征提取能力。相比于滤波器范数和参数稀疏度等评价标准,输出熵的评价标准衡量更为准确,且得到的评价指数更有区分性。另外,为避免冗余度较低的致密网络误删现象的产生,我们采用了柔性剪枝的算法,使得迭代之后误删的滤波器能够在模型重构阶段恢复其关键性的参数,保证模型可复原性。最后,我们在典型网络模型上验证了多级剪枝算法与相关算法的实验对比,在LeNet-5上能够达到60%以上的剪枝率,且识别率下降不超过1.00%,在VGG-16上能够达到78.5%的参数缩减和54.5%的浮点运算缩减,并且能够有效减少32.1%的显存占用。另外作为模型剪枝算法的补充,我们采用K-means聚类的后端量化算法对剪枝后的模型进行压缩,进一步减少了75.0%的本地存储空间。