Rethinking the Smaller-Norm-Less-Informative Assumption in Channel Pruning of Convolution Layers简记

Rethinking the Smaller-Norm-Less-Informative Assumption in Channel Pruning of Convolution Layers简记

参考
简记
  • 摘自参考1:

    • 作者主要的思想是:把 CNN 视为一个网络流,通过不同层的不同通道将信息从输入传递到输出,而非把 CNN 的计算当作不同层的单独计算的集合。作者认为CNN 的算力减少不仅要减少在单个层中计算的内容,更重要的是探索计算图中的每个通道如何对信息流做出的贡献,同时删除那些贡献较少的通道。
  • 上面的这段话来自章节4.1介绍ISTA之前的比喻,我觉得还是比较形象的。

基本流程
Importance Score的选择 γ \gamma γ
  • 本文采用对BN做评价,一个CBR(conv bn relu)组合的表示为:

    • 在这里插入图片描述
  • 分为以下两种情况:

    • 当Conv后没有BN,表示为
      • 在这里插入图片描述
      • 那他的偏差b应当被重写为(当 γ = 0 \gamma=0 γ=0,的时候将 β \beta β和权重和吸收到偏置中):
      • 在这里插入图片描述
      • 这里的sum_reduced表示:
      • 在这里插入图片描述
      • 原有卷积可以近似成:
      • 在这里插入图片描述
      • 其中 ∗ γ *\gamma γ也表示卷积,只不过 γ \gamma γ非0,这么做我想是为了和有BN的情况对应
    • 当Conv后面有BN,表示为
      • image-20220502193548156
      • 此时我们需要更新BN里面的均值(当 γ = 0 \gamma=0 γ=0,的时候将 β \beta β和权重和吸收到均值中)
      • image-20220502193702866
      • 于是原有的卷积可以近似成
      • image-20220502195045821
  • ​ 理解:个人感觉其实是利用了BN中的 γ \gamma γ参数(我的意思是这个 γ \gamma γ本身就是存在于BN中的可学习参数),然后利用某些方法去正则化 γ \gamma γ,而上面的没有BN的卷积只是为了统一情况。

  • 而在第三方的Torch实现中,是类似learning Efficient Convolutional Networks through Network Slimming那样先正常反向传播,然后再更新BN层的参数,只不过更新参数的方式有所区别,所以感觉这两篇论文在思想上有些相似~

更新方式——ISTA
  • 更新公式为:

    • image-20220502202358466

    • 其中 ∇ γ l t ∇γl_t γlt是导数,从一个mini-batch中估计出来的, μ t \mu_t μt是学习率, λ \lambda λ是惩罚力度

    • 然后它可以近似为:

    • image-20220502203639377

    • image-20220502203708300

Scaling effect
  • 假设 γ 和 W \gamma 和 W γW以特定的倍数放缩,可以保证输出不变,但是这种放缩可以控制参数反向传播的速度(整体值越大反向传播的速度越快,反之越慢)
  • image-20220502204038287
算法流程
  • 算法按照以下流程执行:

    1、计算惩罚力度 λ \lambda λ,这个在代码中是每个epoch都会更新一次

    2、 γ − W \gamma-W γW放缩,用以控制参数更新速度

    3、train,并在正常反向传播之后再对BN进行一次ISTA参数更新

    4、Prune

    5、后处理,移除const channel

    6、 γ − W \gamma-W γW放缩回来,恢复原状

    7、fine-tune

  • 超参数设置:

    1、 μ \mu μ,学习率

    2、 ρ , 即 λ ρ,即\lambda ρ,λ,惩罚力度

    3、 α \alpha α,参数放缩倍数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

椰子奶糖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值