【AutoML】如何使用强化学习进行模型剪枝?
- 2019 年 11 月 14 日
- 笔记
大家好,欢迎来到专栏《AutoML》,在这个专栏中我们会讲述AutoML技术在深度学习中的应用,这一期讲述在模型剪枝中的应用。
作者&编辑 | 言有三
我们往期的文章中介绍了各种各样的模型压缩技巧,那么是否也可以使用AutoML技术来用于模型压缩,比如剪枝呢。
1 AMC
AutoML for Model Compression(AMC)是一个利用强化学习自动搜索并提高模型剪枝算法质量的框架,其完整的流程如下:
在一般的剪枝算法中,我们通常遵循一些基本策略:比如在提取低级特征的参数较少的第一层中剪掉更少的参数,对冗余性更高的FC层剪掉更多的参数。然而,由于深度神经网络中的层不是孤立的,这些基于规则的剪枝策略并不是最优的,也不能从一个模型迁移到另一个模型。
AMC方法便是在该背景下,利用强化学习自动搜索并提高模型压缩的质量,该框架是每一层进行独立压缩,前一层压缩完之后再往后层进行传播,t层接受该层的输入特征s_t,输出稀疏比率a_t,按照a_t对该层进行压缩后,智能体移动到下一层L_t+1,使用验证集精度作为评估,伪代码如下:
作者们对两类场景进行了实验,第一类是受延迟影响较大的应用如移动APP,使用的是资源受限的压缩,这样就可以在满足低FLOP和延迟,小模型的情况下实现最好的准确率;这一类场景作者通过限制搜索空间来实现,在搜索空间中,动作空间(剪枝率)受到限制,使得被智能体压缩的模型总是低于资源预算。
另一类是追求精度的应用如Google Photos,就需要在保证准确率的情况下压缩得到更小的模型。对于这一类场景,作者定义了一个奖励,它是准确率和硬件资源的函数。基于这个奖励函数,智能体在不损害模型准确率的前提下探索压缩极限。
每一层的状态空间为(t, n, c, h, w, stride, k, FLOP s[t], reduced, rest, at−1),t是层指数,输入维度是n×c×k×k,输入大小是c×h×w,reduces就是前一层减掉的flops,rest是剩下的flops。
因为剪枝对通道数特别敏感,所以这里不再是使用离散的空间,如{128,256},而是使用连续的空间,使用deep deterministic policy gradient (DDPG)来控制压缩比率,完整的算法流程如下:
对于细粒度的剪枝,可以使用权重的最小幅度作为阈值,对于通道级别的压缩,可以使用最大响应值。
在谷歌Pixel-1 CPU和MobileNet模型上,AMC实现了1.95 倍的加速,批大小为1,节省了34%的内存。在英伟达Titan XP GPU 上,AMC实现了1.53 倍的加速,批大小为50。
2 关于模型优化的推荐资料
如果说要我在深度学习这么多方向里选择一个的话,我会毫不犹豫地选择模型优化,这也是我一直在做的事情。
公众号写过很多的模型解读了,如下是一些总结:
知识星球也有一个模型结构1000变板块,是比公众号的内容更深更广。如果感兴趣的话这周加入最合适,双十一优惠还在。
之前在阿里天池也做了几场直播,往期视频如下:
模型的优化技术包括设计更高效的模型结构,模型剪枝,量化技术等,如今随着AutoML技术的发展,也有了更广阔的空间,下面提供了一些参考资料大家可有阅读。
[1] He Y, Lin J, Liu Z, et al. Amc: Automl for model compression and acceleration on mobile devices[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 784-800.
[2] Luo J H, Wu J. Autopruner: An end-to-end trainable filter pruning method for efficient deep model inference[J]. arXiv preprint arXiv:1805.08941, 2018.
[3] Zhou D, Jin X, Wang K, et al. Deep Model Compression via Filter Auto-sampling[J]. arXiv preprint arXiv:1907.05642, 2019.
[4] Carreira-Perpinán M A, Idelbayev Y. “Learning-Compression” Algorithms for Neural Net Pruning[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 8532-8541.
总结
这次我们介绍了AutoML在模型剪枝中的一个经典案例,实际上还有更多的内容,感兴趣的欢迎后续到有三AI知识星球中获取。
下期预告:AutoML在模型量化中的应用。
有三AI秋季划
有三AI秋季划已经正式启动报名,模型优化,人脸算法,图像质量共24个项目,助力提升深度学习计算机视觉算法和工程项目能力。
有三AI秋季划出炉,模型优化,人脸算法,图像质量等24个项目等你来拿
转载文章请后台联系
侵权必究
往期文章
- 【AutoML】如何选择最合适的数据增强操作
- 【AutoML】激活函数如何进行自动学习和配置
- 【AutoML】归一化(Normalization)方法如何进行自动学习和配置
- 【AutoML】优化方法可以进行自动搜索学习吗?
- 【AutoML】损失函数也可以进行自动搜索学习吗?