CNN模型压缩总结

CNN模型压缩总结

总结综述

参考:https://blog.csdn.net/shentanyue/article/details/83508497

模型裁剪/剪枝(Pruning)

单个权重(Weight)剪枝——非结构化
  • 定义:任意权重被看作是单个参数并进行随机非结构化剪枝。

缺点:

  • 导致网络连接不规整,需要通过稀疏表达来减少内存占用,进而导致在前向传播时,需要大量条件判断和额外空间来标明0或非0参数位置,因此不适合并行计算。
  • 非结构化的稀疏性需要使用专门的软件计算库或者硬件。
核内权重(Intra Kernel Weight)剪枝/核的稀疏化——结构化
  • 对权重的更新加以正则项进行限制,使其更加稀疏,使大部分的权值都为0。
卷积核(Kernel)/特征图(Feature Map)/通道(Channel/ Filter)剪枝——结构化
  • 定义:减去第i层的filter,进而减去第i层产生的部分特征图和第i+1层的部分kernel。
  • kernel粒度的显著性度量可以采用kernel的权重和来判断
    • 采用Filter的权重和来判断
    • 其他
  • FeatureMap粒度的显著性度量确定:
    • 采用Filter权重和来判断
    • 其他

优点:

  • 不依赖任何稀疏卷积计算库及专用软件
  • 能大大减少测试的计算时间。
中间隐层(Layer)剪枝
  • 定义:删除一些层,即改变网络结构

网络分解(张量分解)

  • 方法:
    • 将三维张量铺展成二维张量,使用标准SVD方法
    • 使用多个一维张量外积求和逼近(用三个一维张量外积求和进行K次累加来逼近一个秩为K的三维张量)
  • 目的:降低模型的时间复杂度
  • 通常基于张量的低秩近似理论和方法,将原始的权重张量分解为两个或者多个张量,并对分解张量进行优化调整
  • 优缺点:
    • 低秩方法很适合模型压缩和加速。
    • 低秩方法的实现并不容易,因为它涉及计算成本高昂的分解操作。
    • 目前的方法逐层执行低秩近似,无法执行非常重要的全局参数压缩,因为不同的层具备不同的信息。
    • 分解需要大量的重新训练来达到收敛。
CP分解
  • [2014,JADERBER]Speeding up convolutional neural networks using fine-tuned CP-decomposition
    • 思想:采用CP分解法将一层网络分解为五层低复杂度的网络层,但在基于随机梯度下降法的模型权重微调过程中难以获取张量分解的优化解.作者利用两个卷积神经网络模 型对该方法进行评估,结果表明该方法以较低的性能损失实现更高的计算速度
  • [2014,Denton,NIPS]Exploiting linear structure within convolutional netowrks for efficient evalution
    • 思想:探索多种张量分解方法,例如二维张量分解可采用奇异值分解法,三维张量可转化为二维张量进行分解,以及单色卷积分解和聚类法低秩分解等.作者利用 卷 积 参 数 的冗余性获得 近似计算过程,较大的减少所需的计算量,在保持原始模型浮动1%精度的条件下,基于 CPU和GPU的计算过程均取得近2倍的加速。
SVD分解
  • [2016,Zhang]Accelerating very deep convolutional networks for classification and detection
    • 思想:对参数矩阵进行张量SVD分解进行非线性问题的求解,同时不需要通过随机梯度下降过程进行优化,并在非对称重构中考虑前一网络层的累计重构误差,在不需要随机梯度下降(SGD)的情况下,开发了一种有效的非线性优化问题求解方法
  • [2015,Jaderberg,BMVC]Speeding up convolutional neural networks with low rank expansions
    • 思想:使用秩为1(可以分解为行向量与列向量乘积)的卷积核作用在输入图上产生相互独立的M个基本特征图,卷积神经网络大小为k×k 的卷积核分解为1×k 和k×1的卷积核, 然后通过学习到的字典权重利用线性组合重构出输出特征图。
  • [2017,Tai]Convolutional neural networks with low-rank regularization. (Princeton University, etc.)
    • 思想:提出从零开始训练低秩约束卷积神经网络模型的方法,不仅速度得到提升,而且在一些情况下模型性能也有所提高.作者提出一种低阶张量分解的新算法,用于消除卷积核中的冗余.该算法找 到 矩阵分解 的精神的全局优化器,比迭代方法更有效。
Tucker分解

张量分解知识(含CP分解,Tucker分解)
https://blog.csdn.net/Flying_sfeng/article/details/82109439
_________________________________________________________________

[2015,Kim,Computer science]Compression of deep convolutional neural networks for fast and l

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值