我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。

已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-notes

本节内容综述

  1. 本节课继续由助教Arvin Liu讲解,内容为 Network Pruning 。
  2. 首先来复习一下 Neuron Pruning in DNN 。
  3. Main Question: Prune what? Evaluation. After Evaluation? Prune? Sort? Threshold or Rank?
  4. Evaluate Importance. 以什么为衡量基准。介绍了不少方法。
  5. 接着,复习了一下 Lottery Ticket Hypo 。
  6. Prune what? 考虑到,会不会有个 weight 一开始比较大,其还具有意义吗?而一开始比较小,后来比较的的 weight 会不会更有意义呢?有人做了这个研究。见 Choose which mask?
  7. Wining Tickets property?
  8. Rethink v.s. Lottery. 上节课老师也提过,专门有一篇文章讲到过,还有篇文章与 Lottery 的文章结果正好互相违背。

文章目录

  • 本节内容综述
  • 小细节
    • Neuron Pruning in DNN
    • Main Question: Prune what?
    • Evaluate Importance
      • Eval by weight - sum of L1 norm
      • Eval by weight - FPGM
      • Eval by BN's γ - Network Slimming
      • Eval by 0s after ReLU - APoZ
    • Lottery Ticket Hypo
      • Choose which mask?
      • Wining Tickets property?
      • Conclusion
    • Rethink v.s. Lottery
      • So... what's the result?

小细节

Neuron Pruning in DNN


如上图,减少一个神经元的效果。


如上图,对于CNN也可看出减少一个神经元的效果。

注意上面都没有计算 bias 。

Main Question: Prune what?

Main Question: Prune what?

  • Which is most important?
  • How to evaluate importance?

可以:

  • Evaluate by Weight
  • Evaluate by Activation
  • Evaluate by Gradient

After Evaluation?

  • Sort by importance and prune by rank.
  • Prune by handcrafted threshold.
  • Prune by generated threshold.

Evaluate Importance

Eval by weight - sum of L1 norm


如上图,可以进行权重的累加。

Eval by weight - FPGM


每个神经元对应一个 norm ,即“产生的影响”;之后对 norm 进行统计,绘制出类似直方图的东西;然后我们去掉[V1,T][\mathcal{V}_1,\mathcal{T}][V1​,T]这一部分 norm 对应的神经元,因为其影响力较小。

但是存在问题。

如上,可能分布方差过小,或者,没有 norm 接近0,这样的话,砍掉的神经元会对结果造成不小的影响。

于是,提出 FPGM 。

其思想是:可能会有 Large norm 其对应的几个神经元,这些神经元的 norm 其实在几何上很接近,即其作用是相同的,因此,可以砍掉一些,就保留一个。


可以通过几何中心计算。

Eval by BN’s γ - Network Slimming


如上,可以使用 γ 等参数来衡量神经元的重要性,而且 γ 是可以通过学习得到的。

如上,对 γ 做 L1-penalty ,就可以方便地决定哪些 γ 不重要,可以用来剪枝。

Eval by 0s after ReLU - APoZ


把输出统计一下,加起来求平均。

如果一个 ReLU 为激活函数的神经元,其输出总是为 0 ,说明其可能不重要。


可以看出,对于第 5 层,其 CONV5-3 的 APoZ 指标高达 93% 。

Lottery Ticket Hypo

Choose which mask?


上面这些是不同的 mask ,比如有用于过滤一开始比较大小,后来也比较大的;等等。


发现,magnitude_increaseLarge final效果是比较好的。

Wining Tickets property?


如上,针对“大乐透理论”进行了不同的实验。

发现,还原的值不重要,但是不还原 sign 不可以。

Conclusion


于是,基于以上两个实验,我们可以构造出“最好的”mask。

Rethink v.s. Lottery

上节课老师也提过,专门有一篇文章讲到过,还有篇文章与 Lottery 的文章结果正好互相违背。

实际上,这篇的核心,是想说明剪枝后,重要的是“结构”,而不是“权重”。

So… what’s the result?


在“大乐透”的文章中其实提到了,θ0′\theta_0'θ0′​必须接近于θfinal′\theta_{final}'θfinal′​,也就是说学习率必须要小。

此外,“大乐透”的文章中只根据 weight 进行了 Pruned ,而没把重点放在结构上的 Pruning 。

【李宏毅2020 ML/DL】P52 Network Compression - Network Pruning相关推荐

  1. 【李宏毅2020 ML/DL】P1 introduction

    [李宏毅2020 ML/DL]P1 introduction 本节主要介绍了 DL 的15个作业 英文大意 Regression: 回归分析 Classification: 分类 RNN: 循环神经网 ...

  2. 【李宏毅2020 ML/DL】P59 Unsupervised Learning - Auto-encoder

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...

  3. 【李宏毅2020 ML/DL】P14 Tips for training DNN | 激活函数、Maxout、正则、剪枝 Dropout

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐): https://github.com/Sakura-gh/ML-not ...

  4. 【李宏毅2020 ML/DL】P86-87 More about Domain Adaptation

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本节内容综述 本节课由助教 Chao Brian 讲解. 首先讲解些领域适配的基础内容,包括名词.定义等. 接 ...

  5. 【李宏毅2020 ML/DL】P58 Unsupervised Learning - Neighbor Embedding | LLE, t-SNE

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...

  6. 【李宏毅2020 ML/DL】P15 Why Deep-

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐): https://github.com/Sakura-gh/ML-not ...

  7. 李宏毅svm_李宏毅2020 ML/DL补充Structured Learning Structured SVM

    李宏毅2020 ML/DL补充Structured Learning Structured SVM [李宏毅2020 ML/DL]补充:Structured Learning: Structured ...

  8. 【李宏毅2020 ML/DL】补充:Meta Learning - Metric-based Approach Train+Test as RNN

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本次笔记补充视频 BV1JE411g7XF 的缺失部分.在油管李老师主页即可找到.本节内容 35 分钟左右. ...

  9. 【李宏毅2020 ML/DL】P97-98 More about Meta Learning

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本节内容综述 本节课由助教 陈建成 讲解. 本节 Outline 见小细节. 首先是 What is meta ...

最新文章

  1. yum挂载ftp上无法安装问题
  2. SunPower光伏组件出货量提高
  3. C++结构体多级排序的三种方法
  4. c++原型模式prototype
  5. 使用dbUnit,JSON,HSQLDB和JUnit规则进行数据库单元测试
  6. 活动合作 | 期待!GMIC北京2018即将拉开大幕
  7. 键盘可以实现向计算机输入数据判断,计算机应用基础—学习指南.docx
  8. Android input keyevent命令
  9. 常见排序算法之选择排序
  10. su vary注册机_vray for sketchup2018下载
  11. Eclipse设置字体大小
  12. 设计模式(三)之生成器模式(Builder Pattern)
  13. 我的世界暮色森林java下载_我的世界暮色森林整合包
  14. 串口通信pyserial
  15. 移动硬盘写入数据报错“MS-DOS功能无效”,或移动硬盘内新建文件夹报错0x8000FFFF灾难性错误
  16. 2021职业技能鉴定2021维修电工证(中级)考试题
  17. oeasy教您玩转vim - 60- # vim选项
  18. 台式计算机M丅BF是什么,台式机主板的 BIOS ID 代码
  19. 汇率实时行情查询接口
  20. 英语听力采用计算机化考试,一图读懂北京高考英语听力机考流程,附特点及应对建议...

热门文章

  1. JAVA异常分类和处理
  2. nodejs连接mysql数据库,报错Client does not support authentication protocol requested by server的解决方法
  3. VS2012在一个解决方案中添加多个项目(工程)
  4. 用Python编写单元测试:如何开始? [关闭]
  5. kali linux卸载lnmp,kali linux 如何安装lnmp 1.2
  6. JQ实现 todolist案例(记事本)
  7. ❤️什么是Java 面向对象《装、继承、多态、抽象》?建议收藏)❤️
  8. 洛谷——P1089 [NOIP2004 提高组] 津津的储蓄计划
  9. 什么是Mybatis配置解析?(源码+图文)
  10. 引用传递(Java)