论文部分内容阅读
近年来,深度学习已经成为机器学习领域一个重要的研究方向。深度模型通过特有的深层结构从输入数据中挖掘更加抽象的具有良好泛化能力的特征来解决浅层模型提取特征不足和特征维度过多等问题。卷积神经网络(Convolutional Neural Networks,CNN)作为深度学习一个重要的研究领域,也获得越来越多的关注。 相较于仅拥有全连接层的深度神经网络,卷积神经网络的时间和空间复杂度均得到有效降低。但随着计算机视觉领域对机器智能化需求的提高,卷积神经网络的结构设计得愈加复杂,所需的计算量和存储空间也随之大大增加。这使得卷积神经网络在资源有限的移动终端和嵌入式设备上的应用存在很多困难,因此压缩卷积神经网络,减小其占用的存储空间和计算资源成为一个重要的研究方向。 论文从三个方面研究卷积神经网络的压缩算法:分解权重参数、模型减枝、可学习参数(权重参数、偏置参数)共享。针对权重参数分解,本文研究了三种算法,第一种是基于奇异值(SVD)对通过正则项约束得到的低秩权重参数矩阵进行分解,第二种是通过Kronecker积分解全连接层权重参数矩阵,然后在反向传播模型误差时更新Kronecker积分解得到多个参数较少的小权重参数矩阵。由于Canonical polydic(CP)分解可用来分解卷积层权重参数,在此基础上,受可通过反向传播模型误差更新Kronecker积分解得到小矩阵的启发,本文提出了一种通过反向传播模型误差来更新CP分解卷积层权重参数得到的向量,再由向量外积和作为卷积层权重参数的方法。 针对模型减枝,本文根据裁剪粒度不同探讨了两种减枝算法,第一种对模型局部减枝,裁剪对象是模型神经元之间的连接、特征图像素点之间的连接,算法关键在于将裁剪和拼接融合在一起,动态衡量连接的重要性,裁剪不重要的连接。第二种对模型整体减枝,裁剪对象是神经元和特征图,算法将神经元和特征图的组参数作为正则项,作为目标函数的一部分,实现对神经元和特征图的裁剪。 针对可学习参数共享,本文研究了两种共享算法,第一种是将模型所有可学习参数聚类至2的幂次方或0值(某连接被裁剪),在此基础上,本文提出了一种通过更新最后一部分聚类的可学习参数的梯度的方法,从而弥补由于聚类比特数过少导致模型性能的剧烈下降。此外,本文还提出了一种共享权重参数的算法,该算法实现全连接层和卷积层权重参数共享,针对全连接层,该算法通过Toeplitz矩阵对模型全连接层权重参数实现共享,针对卷积层,该算法利用循环共享的思想,提出可基于输入和输出两个角度对模型的卷积层权重参数实现共享。