卷积神经网络通道剪枝裁剪

论文来自旷视科技2017年的论文Channel Pruning for Accelerating Very Deep Neural Network

论文地址:https://arxiv.org/abs/1707.06168

代码地址:https://github.com/yihui-he/channel-pruning(还没跑过)

 

卷积通道剪枝

论文的主要思想是,通过最小化裁剪后特征图和裁剪前特征图之间的误差,尽可能的减少卷积核的通道数。

                                                                                               图1

图1中B、W和C分别为输入特征图、卷积核和输出特征图。c和n为输入特征图的通道数和输出特征图的通道数。

在卷积计算中,我们使用im2col来表示输入特征图、卷积核以及输出特征图,分别为:

(H*W)*(C_{in}*k_{h}*k_{w})的输入特征图,(C_{in}*k_{h}*k_{w})*(C_{out})的卷积核,(H*W)*(C_{out})的输出特征图。

其中H和W分别为输出特征图的高和宽。

由矩阵乘法可知,卷积核中对应的行只和输入特征图矩阵中特定的列相乘,如图1所示,当我们裁剪了卷积核中的通道数后,相对应的输入特征图中的通道数亦可裁去,而输出当前输入特征图的对应上层的卷积核亦可裁去。

如何选取裁剪的通道,是本文的重点。

公式1中的Y为原始输出特征图,而后半部为裁剪后的输出特征图。我们将两者之间的距离作为误差,目的就是在尽可能剪枝的情况下,保持剪枝后特征图和原始特征图的差距最小。式中beta为0时,对应的输入层失效,达到剪枝的效果。公式中的限制项为beta的0范数,c'为一个超参数,表示我们希望剪枝的最小剪枝数。由于优化一个带0范数的损失函数是一个NP难问题,作者引入lasso来代替原始损失函数,尽可能的使beta向量稀疏。

优化过程可以分为两步:

1.  固定W参数,迭代的方法,使beta向量尽可能稀疏,达到预先设定的剪枝数。

2. 固定迭代好的beta,输入X变为X',X'即为beta迭代后与原始输入X的乘积。

 

多通道网络卷积通道剪枝

对于多通道网络,例如ResNet中的残差块,作者提出了一种解决方法。

block的输入

上图左中可知,残差块的输入和shortcut是相同的,若对残差块中第一个卷积操作进行剪枝,会影响到shortcut,因此作者提出了在残差块输入后添加一层sampler,进行通道采样,避免残差块中第一层卷积的剪枝对shortcut的影响。

block的输出

对于输出,原始残差块中,shortcut和残差块输出是相同通道数的,若对最后一层1x1卷积剪枝,会影响到残差块输出Y2和shortcut的Y1的组合。因此作者提出,最后一层卷积层拟合的特征图,从原始的输出特征图Y2,变为Y1-Y1'+Y2,Y1为未裁剪的残差块输入特征图,Y1'为残差块之前卷积裁剪后的特征图,Y2为残差块未裁剪的输出特征图。

 

这篇论文提出的通道裁剪在对指标影响较小的情况下,极大的提升了网络的性能。

在VGG中,达到4倍的速度情况下,仅仅增加了1%的top-5误差。

ResNet达到2倍速度的情况下,增加了1.4%的误差。

Faster-RCNN在达到2倍速度的情况下,仅降低了0.4mAP。

随着深度学习的发展,卷积神经网络作为其重要算法被广泛应用到计算机视觉、自然语言处理及语音处理等各个领域,并取得了比传统算法更为优秀的成绩。但是,卷积神经网络结构复杂,参数量和计算量巨大,使得很多算法必须在GPU上实现,导致卷积神经网络难以应用在资源不足且实时性要求很高的移动端。为了解决上述问题,文中提出通过同时优化卷积神经网络的结构和参数来对卷积神经网络进行压缩,以使网络模型尺寸变小。首先,根据权重对网络模型结果的影响程度来对权重进行剪枝,保证在去除网络结构冗余信息的冋时保留模型的重要连接;然后通过量化感知( quanTIκaτion- awareτraining)对卷积神经网络的浮点型权重和激活值进行完全量化,将浮点运算转换成定点运算,在降低网络模型计算量的冋时减少网络模型的尺寸。文中选用 tensorflow深度学习框架,在 Ubuntu16.04操作系统中使用 Spyder编译器对所提算法进行验证实验结果表眀,该算法使结枃简单的 Lenet模型从l.64M压缩至θ.36M,压缩比达到η8%,准确率只下降了了0.016;使轻量级网络 Mobilenet模型从16.9M压缩至3.1M,压缩比达到81%,准确率下降0.03。实验数据说明,在对卷积神经网络权重剪枝与参数量化辶后,该算法可以做到在准确率损失较小的情况下,对模型进行冇α压缩,解决了卷积神经网络模型难以部署到移动端的问题。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值