论文部分内容阅读
深度学习近年来一直是人工智能领域的热门研究课题,卷积神经网络(Convolutional Neural Network,CNN)作为深度学习的经典学习模型,在图像分类、目标检测、自然语言处理等领域均取得了一系列重要突破。卷积神经网络模型具有参数量大,计算复杂度高的特点,正是这种复杂的多层次网络结构使得模型具有很强的预测能力。由于智能设备的普及,卷积神经网络移植到嵌入式设备上的需求日益增长,但是其巨大的参数冗余以及计算成本限制了它在嵌入式设备尤其是移动设备上的部署,于是众多的神经网络压缩算法应运而生,其中“深度压缩”算法以其突出的压缩性能被广泛应用于大型神经网络的压缩。本文基于卷积神经网络压缩算法进行深入研究,并针对“深度压缩”算法做出了一些改进,主要内容如下:(1)本文提出了基于“深度压缩”算法的动态剪枝和动态量化算法。“深度压缩”算法对大型卷积神经网络的压缩具有令人瞩目的压缩效果,但是该算法在剪枝以及量化过程中忽略了各层权重的不同数量级以及对输出的贡献度,针对此问题本文提出了动态剪枝和动态量化算法,对不同权重数量级的层进行分类,并分别设置阈值和聚类数目,在设置阈值时将简单的指定一个值改为按比例设定阈值,实验结果表明压缩效果要优于传统的深度压缩算法。(2)本文提出了一种用于压缩复数卷积神经网络的改进的“深度压缩”算法。目前许多研究工作都关注于实数卷积神经网络(Real Convolution Neural Network,Real CNN)的压缩,据我们所知,目前复数卷积神经网络(Complex Convolution Neural Network,Complex CNN)的压缩算法还没有论文涉及。与实数神经网络相比,复数神经网络更容易优化,有更好的泛化能力和学习能力,并且对噪声更加鲁棒。本文将“深度压缩”算法从实数域扩展到了复数域,提出了一种用于压缩复数卷积神经网络的改进的深度压缩算法。由于复数卷积神经网络的权重是复数形式,考虑到其虚数部分和实数部分的相关性,我们在剪枝、量化和哈夫曼编码过程中做出了以下改进:1)剪枝阶段:使用复数的模与阈值进行比较;2)量化阶段:使用二维K均值聚类算法对复数权重进行聚类,聚类中心即为共享权重;3)哈夫曼编码:由于复数权重的虚数部分与实数部分的相关性不影响哈夫曼编码的结果,将权重的实数部分与虚数部分分别进行编码。本文提出的压缩算法可以将适合于CIFAR-10数据集的卷积神经网络的参数量压缩8倍,在没有重新训练的情况下准确率损失在3%以内;将适合于IMAGENET数据集的卷积神经网络的参数量压缩16倍,在没有重新训练的情况下准确率损失在2%以内。