来自北京邮电大学的研究人员开发了一种AI模型压缩算法,可以让深度学习的运算不再依赖高昂的计算和存储设备,保持模型的识别精度无损的前提下,显著降低模型的计算复杂度,本文带来技术解读。
人工智能在众多计算机视觉领域都取得了很大的成功,然而深度学习(Deep Learning)因其计算复杂度或参数冗余,在一些场景和设备上限制了相应的模型部署,需要借助模型压缩、优化加速、异构计算等方法突破瓶颈。
研究人员称,模型压缩算法能够有效降低参数冗余,从而减少存储占用、通信带宽和计算复杂度,有助于深度学习的应用部署。通道剪枝(Channel Pruning)通过移除神经网络中冗余通道,达到加速神经网络推理过程和压缩模型体积的效果,还可以获得实际的加速效果,然而当前基于结构正则化的通道剪枝方法忽略了神经网络中连续层之间的关联关系。
人工智能领域顶会CVPR于2019年6月在美国加利福利亚州召开,在这篇由北京邮电大学网络智能研究中心、东信北邮EB Lab合作完成的论文中,作者考虑了网络中连续层之间的关联关系,提出了OICSR方法,将结构正则化同时运用于连续网络层中相互对应的out-channels和in-channels,从而可以在更小的精度损失下,移除更多的冗余通道。在对指标影响较小的情况下,极大地提升深度学习模型的运行效率。以下为论文详细解读。
基于Out-In-Channel结构稀疏正则化的神经网络通道剪枝
李家仕,戚琦,王敬宇+,戈策,李钰剑,岳章章,孙海峰
1,网络与交换国家重点实验室,北京邮电大学
一种新的结构正则化形式
人工智能在众多计算机视觉领域都取得了很大的成功,然而深度学习高昂的计算和存储需求严重阻碍了其被大规模地部署于移动设备和嵌入式装置。通道剪枝(Channel Pruning)是一类很经典的网络轻量化方法,通过移除神经网络中冗余通道的全部可训练参数和激活值,可以同时达到加速神经网络推理过程和压缩模型体积的效果。由于对神经网络进行通道剪枝后获得的是结构化稀疏的网络,因此不需要特殊的硬件支持就可以获得实际的加速效果。
目前很多网络轻量化的工作[1,2,3]利用结构稀疏正则化(下文简称为结构正则化)来对神经网络进行通道剪枝。如公式1所示,这类方法通过在训练过程中加入结构正则化来对网络权重进行结构化约束,使得训练过程中神经网络不同通道的重要性分离开来。在剪枝过程中,网络中重要的通道得以继续保存,而更多冗余的通道可以在不损失网络精度的情况下被安全的移除。
然而当前基于结构正则化的通道剪枝方法将结构正则化分离地应用于神经网络中的各个层的out-channels,忽略了神经网络中连续层之间的关联关系,本研究称之为分离式的结构正则化。
本研究提出了一种新的结构正则化形式Out-In-Channel Sparsity Regularization (OICSR)来克服分离式结构正则化的缺陷。OICSR充分考虑了网络中连续层之间的关联关系,将结构正则化同时运用于连续网络层中相互对应的out-channels和in-channels,从而可以在更小的精度损失下移除更多的冗余通道。
Out-In-Channel结构稀疏正则化
连续两层网络的关联关系如图1所示,本研究用相同的颜色来标识连续层之间相互对应的out-channel和in-channel。
连续两层网络中相互对应的输入输出通道在网络运行过程中是相互合作相互依赖的,第l层的输入与第l层中第i个out-channel的权重向量共同生成第l层的第i个输出特征图,紧接着第l层的第i个输出特征图和第l+1层中第i个in-channel的权重向量共同生成第l+1层的输出。
除此之外,在网络通道剪枝过程中连续层之间对应的out-channel和in-channel会被共同保留或者移除。所以,有理由认为在剪枝工作中,连续层之间对应的out-channels和in-channels应该被共同且平等地考虑。
图1 连续层网络的关联关系及Out-In-Channel的定义
分离式结构正则化的缺陷在于仅仅使得第l层网络的out-channels维度的重要程度分离开来,然而第l+1层中对应的in-channels却被忽略了。存在这样的情况,第l层网络的第i个out-channel因为分离式结构正则化,在训练过程变得冗余,因此在通道剪枝过程中被移除。然而被同时移除的l+1层网络中对应的第i个in-channel可能还是相对重要的,这时网络的能力和精度就被严重的破坏了。
本研究因此提出在应用结构正则化进行剪枝时,应将连续层之间对应的out-channel和in-channel当成一个正则化组out-in-channel来进行结构化约束。在网络训练过程中,带有OICSR的优化目标如公式2和公式3所示:
其中的符号‘+’表示对第l层和第l+1层中对应输入输出通道的权重向量进行拼接,从而可以对同一个out-in-channel正则化组内的权重向量进行结构化约束。不同于分离式结构正则化,OICSR可以使得神经网络中out-in-channels的重要性分离开来,也就是说,对于连续网络层中共同作用相互对应的out-channels和in-channels,它们将会同时变得重要或者同时变得冗余。因此在对网络进行剪枝时,可以在更小的精度损失下,移除更多冗余的out-in-channels.
OICSR是一种通用的结构正则化形式,很多结构正则化项GroupLasso [4], GrOWL regularization [5]等都可以拓展OICSR的形式。例如Group Lasso拓展成OICSR的形式如公式4所示:
通道剪枝框架
图2 迭代剪枝流程
本研究的迭代剪枝流程如图2所示。在通道剪枝过程中,涉及到冗余通道选取的问题。当前的很多工作仅仅使用第l层的统计信息来选择第l层和第l+1层之间的冗余通道,然而第l+1层中的统计信息又被忽略了。沿用out-in-channel的思想,认为应当同时利用连续两层网络的统计信息来选取两层网络间冗余的out-in-channels。为了简洁性表示,本研究使用了通道能量(当然也很有效果)作为通道重要性的评判标准,通道重要性准则如公式5所示:
实际上神经网络中每一层的冗余程度都不同,当前的很多工作为每一层网络设定均等的剪枝比例或者根据经验人为地设定剪枝比例是不够合理的。因此本研究提出一个全局贪婪剪枝算法(Algorithm 1),来全局地决定每一层网络的剪枝比例。首先根据公式8计算出网络中全部out-in-channels的通道能量,接着对这些通道能量进行全局排序,最后根据预先设定的全局目标剪枝比例,来贪婪地选取网络中的冗余通道,最后每层的剪枝比例因此也被确定下来。
全局贪婪剪枝算法
实验结果
在实验阶段将Group Lasso拓展为OICSR的形式(OICSR-GL),并使用AlexNet, ResNet, DenseNet 与 SeNet等网络架构在CIFAR-10/100和ImageNet-1K数据集上验证OICSR的有效性。OICSR-GL将和一下的baseline作对比:
(1)L2. 在网络训练过程中只使用L2正则项,而不适用结构正则项
(2)GL. Group Lasso的原始形式,分离地被应用于网络各层的out-channels.
(3)L1-BN [3]. L1-BN使用L1 regularization对BN层的scale因子进行约束,是另一种形式的结构正则化。
图3 使用不同正则化约束进行网络训练后的通道能量分布图
首先可视化了使用不同正则化约束进行训练后神经网络内通道能量 (通道能量定义为公式5) 的分布图。ResNet-56网络 (on CIFAR-100 dataset) 内layer4.2.conv1和layer4.2.conv2之间的通道能量分布如图3所示,纵轴表示通道能量的高低,横轴表示通道的坐标。相比于非结构正则化L2和分离式结构正则化GL, OICSR-GL显然能更大程度的分离通道间的重要程度,故更多的冗余通道能被安全的移除。
图4 通道剪枝后,重训练前的网络精度对比
接着论文展示了使用OICSR-GL及其baselines对网络进行通道剪枝后,进行重训练之前的网络精度。剪枝后剩余的网络参数/精度可以看成网络重训练的初始点,好的网络初始点可以使得网络重训练后的精度更高。如图3所示,在相同的FLOPs剪枝比例下,OICSR-GL在不同的网络架构上下均能保存更多的网络精度。
最后和其他的state-of-the-art通道剪枝方法在ResNet-50 ImageNet-1K上做了对比,如表1所示,在不同的FLOPs剪枝比例下,本研究的方法均优于目前最好的工作。
表1 在ResNet-50(ImageNet-1K dataset)和当前state-of-the-art
通道剪枝方法的对比结果
-
神经网络
+关注
关注
42文章
4762浏览量
100523 -
算法
+关注
关注
23文章
4599浏览量
92621 -
AI
+关注
关注
87文章
30095浏览量
268363
原文标题:CVPR 2019:北邮提出新AI模型压缩算法,显著降低计算复杂度
文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论