1.简介

由于未来我们的模型有可能要运行在很多类似手机,手表,智能眼镜,无人机上,这些移动终端的算力和存储空间有限,因此要对模型进行压缩(变小)。本节内容从五个方面进行展开。当然也可以根据具体的硬件平台定制专门的模型架构.We will not talk about hard-ware solution today.

2.方法总结

Network Pruning
Knowledge Distillation
Parameter Quantization
Architecture Design
Dynamic Computation

2.1 Network Pruning(修剪)(90年代就有了)

模型通常是过参数的,即很多参数或者neuron是冗余的(例如非常接近0),因此我们可以移除这些参数来对模型进行压缩。很多权重、神经元在计算的过程中输出总是0,或者输出总是很小,对结果基本没有影响,因此:prun

比如说:
人脑就有类似的东西:随着慢慢变老,很多神经连接就消失了
2020李宏毅学习笔记——32.Network Compression(1_6)
1.重要性判断:怎么判断哪些参数是冗余或者不重要的呢?

  • 重(weight)而言,我们可以通过计算它的 l1,l2值来判断重要程度
  • 对neuron而言,我们可以给出一定的数据集,然后查看在计算这些数据集的过程中neuron参数为0次数,如果次数过多,则说明该neuron对数据的预测结果并没有起到什么作用,因此可以去除。

2.简要说一下怎么Prun
先要训练一个很大的模型
然后评估出重要的权重或神经元
对于权重可以用L1或者L2等方法来评估)
对于神经元可以根据输出是否接近于0来评估
移除不重要的权重或神经元
After pruning, the accuracy will drop (hopefully not too much)
要对处理后的模型进行微调,进行recovery把移除的损伤拿回来。
注意:Don’t prune too much at once, or the network won’t recover.
循环到第一步。不要remove太多的东西,不然recoveer不回来
2020李宏毅学习笔记——32.Network Compression(1_6)

相关文章:

  • 2021-04-30
  • 2021-08-28
  • 2021-05-19
  • 2021-04-11
  • 2021-07-03
  • 2021-06-19
  • 2021-05-22
  • 2021-05-18
猜你喜欢
  • 2021-10-14
  • 2021-05-08
  • 2021-04-30
  • 2021-09-14
  • 2021-03-29
  • 2022-01-06
  • 2021-12-08
相关资源
相似解决方案