28.1 典型剪枝方法对比
剪枝方法 | 修剪对象 | 修剪方式 | 效果 |
---|---|---|---|
Deep Compression | 权重 | 随机修剪 | 50倍压缩 |
Structured Pruning | 权重 | 组稀疏+排他性稀疏 | 性能提升 |
Network Slimming | 特征图通道 | 根据尺度因子修剪 | 节省计算资源 |
mProp | 梯度 | 修剪幅值小的梯度 | 加速 |
28.2 网络蒸馏
- 网络精馏是指利用大量未标记的迁移数据(transfer data),让小模型去拟合大模型,从而让小模型学到与大模型相似的函数映射
-
网络精馏可以看成在同一个域上迁移学习的一种特例,目的是获得一个比原模型更为精简的网络,整体的框架图
-
28.3 前端压缩
- 知识蒸馏
- 一个复杂模型可由多个简单模型或者强约束条件训练得到
- 复杂模型特点是性能好,但其参数量大,计算效率低
- 小模型特点是计算效率高,但是其性能较差
- 知识蒸馏是让复杂模型学习到的知识迁移到小模型当中,使其保持其快速的计算速度前提下,同时拥有复杂模型的性能,达到模型压缩的目的
- 紧凑的模型结构设计
- 紧凑的模型结构设计主要是对神经网络卷积的方式进行改进,比如使用两个3x3的卷积替换一个5x5的卷积、使用深度可分离卷积等等方式降低计算参数量
- 目前很多网络基于模块化设计思想,在深度和宽度两个维度上都很大,导致参数冗余
- 因此有很多关于模型设计的研究,如SqueezeNet、MobileNet等,使用更加细致、高效的模型设计,能够很大程度的减少模型尺寸,并且也具有不错的性能
- 滤波器层面的剪枝
- 滤波器层面的剪枝属于非结构花剪枝,主要是对较小的权重矩阵整个剔除,然后对整个神经网络进行微调
- 此方式由于剪枝过于粗放,容易导致精度损失较大,而且部分权重矩阵中会存留一些较小的权重造成冗余,剪枝不彻底
- 具体操作是在训练时使用稀疏约束(加入权重的稀疏正则项,引导模型的大部分权重趋向于0)
- 完成训练后,剪去滤波器上的这些 0
- 优点是简单,缺点是剪得不干净,非结构化剪枝会增加内存访问成本
大数据视频推荐:
网易云课堂
CSDN
人工智能算法竞赛实战
AIops智能运维机器学习算法实战
ELK7 stack开发运维实战
PySpark机器学习从入门到精通
AIOps智能运维实战
腾讯课堂
大数据语音推荐:
ELK7 stack开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通
网友评论