模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享

栏目: 数据库 · 发布时间: 5年前

内容简介:信道裁剪是深度模型压缩的主要领域之一。现存的裁剪方法有的用信道的稀疏约束来训练模型,有的用最小化预训练模型和压缩模型间的特征图重建误差。两种策略都有一些限制:前者计算代价高而且难以收敛,后者优化重建误差但忽视了信道的识别能力。本文介绍的方法是开源模型压缩框架PocketFlow的裁剪方法之一。相关研究

信道裁剪是深度模型压缩的主要领域之一。现存的裁剪方法有的用信道的稀疏约束来训练模型,有的用最小化预训练模型和压缩模型间的特征图重建误差。两种策略都有一些限制:前者计算代价高而且难以收敛,后者优化重建误差但忽视了信道的识别能力。 本文提出了一个简单而有效的方法,称作识别感知信道裁剪,用于选择真正对识别能力有贡献的信道。

本文介绍的方法是开源模型压缩框架PocketFlow的裁剪方法之一。

相关研究

网络量化

Rastegari等人提出将网络中的参数量化为+1/-1。所提出的BWN和XNOR-Net可以在大规模数据集上达到能和对应全精度相媲美的准确度。在Dorefa-net中,CNN的高精度权重,激活和梯度被量化为低比特位版本,带来了资源和硬件能力需求的大量减少。通过引入0作为第三个量化值,三元权重网络TWNs能达到比二元神经网络更高的精度。

稀疏或低等级连接 

为了减少神经网络存储需求。Han等人提出零输入或输出连接的神经元能从神经网络中安全的移除。通过L1/L2正则化的帮助,权重在训练中被推向0。随后AlexNet的压缩率通过剪枝、量化、哈夫曼编码能达到1/35。考虑到参数重要性在剪枝过程中被改变,Guo等人提出动态网络手术。通过之后提出的使用稀疏约束训练能达到更高的压缩率。 

信道裁剪

对比网络量化和稀疏连接,信道裁剪同时从网络中移除信道和相关过滤器。因此只需要一点工作就能很好地被现存深度学习库支持。 信道裁剪的关键问题是评估信道重要性。 Li等人提出通过计算权重绝对值之和来测量信道重要性。Hu等人定义APoZ测量神经元的激活。通过目标函数的稀疏正则化,基于训练的方法能在训练阶段学习到压缩模型。考虑到效率,重建方法将信道选择问题转换为重建损失的优化问题,并通过贪婪策略或LASSO回归来解决。

方法

使 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享 为训练样本,N代表样本数量。给定一个L层CNN模型M,使 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享 为模型第l卷积层的参数。 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享 为过滤器的高和宽;c和n代表输入和输出的信道数。 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享 代表输入的特征图和相应输出特征图。 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享 为第i个样本第k个信道的特征图。 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享 记为第k个输入信道和第j个输出信道对应的参数。第i个样本第j个信道对应的特征图 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享 为: 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享 给定预训练模型M,信道裁剪的任务是裁剪W的冗余信道,从而减少模型大小,加速运算。

为了选择信道,本文介绍 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享 的变体:

模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享

如果 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享 。||·||F代表Frobenius正则化。

动机

给定一个预训练模型M,现存方法最小化M和裁剪模型的重建误差:

模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享

为了增加中间层的识别能力,介绍对于深度网络中间层的额外损失。在本文中,我们均匀地插入P个识别感知损失 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享 。使 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享 为插入损失的层。

LP+1为最后一层L。对于第p个损失,我们在 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享 层中做信道裁剪,当p=1时 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享

构建识别感知损失

模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享

如图1所示,每一个损失使用 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享 的输出作为输入特征。为了使损失的计算更容易,本文在特征图上使用平均池化,为了加速收敛,在平均池化前使用batchnorm和ReLU,最终计算对于在 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享 层输入特征图的损失 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享 。 

模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享 代表 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享 层的输出特征图, 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享 为第i个样本的特征图。关于第p个loss的识别感知损失为:

模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享

I{·}是指示器函数。通过同时考虑交叉熵损失和重建损失,我们得到联合损失函数:

模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享

最后对于识别感知的信道裁剪优化问题描述为:

模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享

识别感知的信道裁剪

通过在中间层加入P个损失 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享 ,被提出的识别感知信道裁剪算法如算法1所示。从预训练模型M开始,执行P+1个阶段的信道裁剪。

模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享

用于信道选择的贪婪算法:

模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享

直接优化问题(7)是非常困难的,本文提出贪婪算法解决。具体而言,首先移除所有信道,然后选择真正对深度网络识别能力有贡献的信道。使 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享 为被选择信道的索引,期初未空集。如算法2所示,一旦A被决定,根据被选择的信道优化W,通过最小化如下问题:

模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享

通过 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享 优化 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享

停止条件

由于L是凸函数,L(Wt)将随着算法2中的迭代索引t单调下降。因此可以采取如下停止条件: 模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享

实验

这一部分,本文经验性的评价识别感知的信道裁剪。使用几个state-of-the-art方法来作为基准,包括ThiNet、Channel pruning和Slimming。此外,对于提出的方法其他几个变体也做了比较,包括DCP(使用裁剪率n的识别感知信道裁减),DCP-Adapt(使用停止条件的DCP),Random DCP(随机选择信道代替基于梯度测策略)。

本文在Pytorch上实现提出的方法。基于预训练模型,应用本文方法选择信道。在实践中,通过网络深度选择额外损失的数量P。具体的,在ResNet-50中插入3个损失,在VGG和ResNet-18中插入2个损失。

使用添加nesterov的SGD作为优化器,momentum和权重衰减设置为0.9和0.0001。设置为1.0。在CIFAR-10,使用大小为128的mini-batch微调400个epochs。学习率初始化为0.1,在epoch160和240处除以10。在ILSVRC-12我们微调60个epochs,mini-batch为256,学习率从0.01开始,在epoch36,48,54处除以10。

在CIFAR-10上的比较:

模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享

本文提出的方法在相同加速率上有最好的表现,DCP-Adapt裁剪的VGG网络比原与训练模型降低了0.58%的测试误差,并获得了15.58倍的尺寸减少。

模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享

在ILSVRC-12上的比较:

模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享

为了验证再大型数据集的有效性,本文使用该方法在ILSVRC-12数据集ResNet-50网络中实现2倍加速。本文方法比ThiNet在top-1中低0.81%误差,在top-5中低0.51%误差。对比channel pruning,降低了0.79%的top-5误差。

本文地址: https://arxiv.org/pdf/1810.11809.pdf


以上所述就是小编给大家介绍的《模型压缩:识别感知的深度神经网络信道裁剪 | 论文分享》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Python高性能编程

Python高性能编程

【美】 戈雷利克 (Micha Gorelick)、【美】 欧日沃尔德(Ian Ozsvald) / 人民邮电出版社 / 2017-7-1 / 79

本书共有12章,围绕如何进行代码优化和加快实际应用的运行速度进行详细讲解。本书主要包含以下主题:计算机内部结构的背景知识、列表和元组、字典和集合、迭代器和生成器、矩阵和矢量计算、并发、集群和工作队列等。最后,通过一系列真实案例展现了在应用场景中需要注意的问题。 本书适合初级和中级Python程序员、有一定Python语言基础想要得到进阶和提高的读者阅读。一起来看看 《Python高性能编程》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试