27.深度学习模型压缩方法-1

  • 目前深度学习模型压缩方法主要分为更精细化模型设计、模型裁剪、核的稀疏化、量化、低秩分解、迁移学习等方法,而这些方法又可分为前端压缩和后端压缩

27.1 前端压缩和后端压缩对比

对比项目 前端压缩 后端压缩
含义 不会改变原始网络结构的压缩技术 会大程度上改变原始网络结构的压缩技术
主要方法 知识蒸馏、紧凑的模型结构设计、滤波器层面的剪枝 低秩近似、未加限制的剪枝、参数量化、二值网络
实现难度 较简单 较难
是否可逆 可逆 不可逆
成熟应用 剪枝 低秩近似、参数量化
待发展应用 知识蒸馏 二值网络

27.2 网络剪枝

深度学习模型因其稀疏性,可以被裁剪为结构精简的网络模型,具体包括结构性剪枝与非结构性剪枝。

事项 特点 举例
非结构化剪枝 通常是连接级、细粒度的剪枝方法,精度相对较高,但依赖于特定算法库或硬件平台的支持 Deep Compression, Sparse-Winograd算法等;
结构化剪枝 是filter级或layer级、粗粒度的剪枝方法,精度相对较低,但剪枝策略更为有效,不需要特定算法库或硬件平台的支持,能够直接在成熟深度学习框架上运行。 如局部方式的、通过layer by layer方式的、最小化输出FM重建误差的Channel Pruning, ThiNet, Discrimination-aware Channel Pruning ;全局方式的、通过训练期间对BN层Gamma系数施加L1正则约束的Network Slimming;全局方式的、按Taylor准则对Filter作重要性排序的Neuron Pruning ;全局方式的、可动态重新更新pruned filters参数的剪枝方法
  • 如果按剪枝粒度分,从粗到细,可分为中间隐含层剪枝、通道剪枝、卷积核剪枝、核内剪枝、单个权重剪枝。下面按照剪枝粒度的分类从粗(左)到细(右)。



    (a)层间剪枝 (b)特征图剪枝 (c)k*k核剪枝 (d)核内剪枝

事项 特点
单个权重粒度 早期 Le Cun[16]提出的 OBD(optimal brain damage)将网络中的任意权重参数都看作单个参数,能够有效地提高预测准确率,却不能减小运行时间;同时,剪枝代价过高,只适用于小网络
核内权重粒度 网络中的任意权重被看作是单个参数并进行随机非结构化剪枝,该粒度的剪枝导致网络连接不规整,需要通过稀疏表达来减少内存占用,进而导致在前向传播预测时,需要大量的条件判断和额外空间来标明零或非零参数的位置,因此不适用于并行计算
卷积核粒度与通道粒度 卷积核粒度与通道粒度属于粗粒度剪枝,不依赖任何稀疏卷积计算库及专用硬件;同时,能够在获得高压缩率的同时大量减小测试阶段的计算时间.由
  • 从剪枝目标上分类,可分为减少参数/网络复杂度、减少过拟合/增加泛化能力/提高准确率、减小部署运行时间/提高网络效率及减小训练时间等。

大数据视频推荐:
网易云课堂
CSDN
人工智能算法竞赛实战
AIops智能运维机器学习算法实战
ELK7 stack开发运维实战
PySpark机器学习从入门到精通
AIOps智能运维实战
腾讯课堂
大数据语音推荐:
ELK7 stack开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通

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