基于梯度的深度网络剪枝算法
2020-06-07王忠锋徐志远宋纯贺张宏宇蔡颖凯
王忠锋 ,徐志远 ,4*,宋纯贺 ,张宏宇 ,蔡颖凯
(1.机器人学国家重点实验室(中国科学院沈阳自动化研究所),沈阳110016;2.网络化控制系统重点实验室(中国科学院沈阳自动化研究所),沈阳110016;3.中国科学院机器人与智能制造创新研究院,沈阳110169; 4.中国科学院大学,北京100049;5.国网辽宁省电力有限公司,沈阳110016)
(∗通信作者电子邮箱2414065292@qq.com)
0 引言
近年来,深度神经网络已经成为人工智能行业主流的计算模型[1-2]。在图像识别、语音识别和自然语言处理等诸多领域表现出相当优越的性能[3-4]。目前比较流行的高效网络结构有 Res-NET[5]、GoogLeNet[6]、VGG-Net[7]等。但是随着网络性能的提升,网络层数也由最初的几层、十几层到现在的一百多层。在深度神经网络中有很多卷积层,卷积层的计算占据了整个网络的绝大部分计算量,卷积层越多,计算量就越大。例如VGG-Net-16网络结构中卷积层有13层,卷积层占据了大约90%~95%的计算量;全连接(Full Connection,FC)层虽然占据了95%的参数量,但是计算量确只占5%~10%。随着网络层数的加深其计算量和存储资源的占用也越来越大,需要使用高性能的GPU(Graphics Processing Unit)或者GPU集群实现神经网络的计算。嵌入式设备计算能力、存储容量有限,这就限制了深度网络在嵌入式设备中的应用,所以有很多研究人员投入到深度神经网络的压缩与加速工作中,目的是在保持网络性能的同时,减少网络的计算量和模型的存储使其能够部署在嵌入设备中。
关于深度神经网络的压缩与加速目前有很多方法,如矩阵分解[8-10]、低精度权值[11-13]、知识蒸馏[14-15]和剪枝[16-17],其中,绝大部分的方法是基于权值矩阵本身来操作,即权值越小贡献越小,通过尽可能地剔除数值小的权值来达到剔除冗余权值参数的目的。……
