28.深度学习模型压缩方法-2

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开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通

你可能感兴趣的:(28.深度学习模型压缩方法-2)