美文网首页
模型压缩

模型压缩

作者: blackmanba_084b | 来源:发表于2022-02-22 15:11 被阅读0次

这篇文章主要是根据李宏毅老师介绍的知识要点进行总结
【機器學習2021】神經網路壓縮 (Network Compression) (一) - 類神經網路剪枝 (Pruning) 與大樂透假說 (Lottery Ticket Hypothesis)

【機器學習2021】神經網路壓縮 (Network Compression) (二) - 從各種不同的面向來壓縮神經網路
由于很多模型需要移植到硬件设备上,以及对模型运行效率有比较高的要求,所以我们需要对我们的模型进行剪枝以及压缩等操作。 以下将通过5个方面讲解模型压缩知识:

  • Network Pruning(剪枝)
  • Knowledge Distillation(蒸馏)
  • Parameter Quantization(量化)
  • Architecture Design(结构设计)
  • Dynamic Computation (动态计算)

一、Network Purning(剪枝)



通过上图可以看出随着人类成长 ,经过剪枝,我们的神经元连接是越来越少。我们如何对我们的参数进行剪枝呢?我们需要剪枝哪些参数呢?

  • 参数 显而易见的我们可以理解为当我们的参数(权重)的绝对值越大,我们认为该参数(权重)对模型影响越重要。
  • 神经元 当然我们也可以根据神经元不为0的次数判断其重要性

最终我们的希望的是通过剪枝我们的模型的准确率不会下降太大。剪枝完之后,我们再剪枝后的模型进行finetune,接着在评价参数重要性进行剪枝,可以进行多轮,但是切记我们剪枝不要剪枝过多,否则网络很难还原。

weight purning
在进行权重剪枝的时候,我们很难将权重直接干掉如上图所示,这样不仅很难部署,同时也很难做到GPU加速。 neuron pruning
在进行神经元剪枝的时候,我们可以很容易的进行部署及GPU加速。

为什么要从大的网络开始训练然后再剪枝呢?因为小的神经网络不容易训练。大的网络可以认为是很多小的子网络,子网络不一定能训练出来,但是众多子网络只要其中一个人成功,大的网络就能成功。


上图可以得出的结论:

  • 初始绝对值不重要,正负号才重要。


    反大乐透假说

★★★★ Learning Efficient Convolution Network through Network Slimming


分值小的剪枝 对gama做正则

二、 知识蒸馏


先训练大的神经网络(Teacher),进行修剪再训练小的神经网络(Student)。如下图所示:

学生训练的label为老师的预测的soft label继续训练。直接训练小的神经网络不如从大的神经网络输出结果进行训练效果好。这里认为老师不仅学习到本身的label知识,还能学到隐含的知识,比如17很像,老师学习的结果通过soft label 非one-hot label通过概率可以知道很相近,学生更容易去学习到,而让小的神经网络去学习是非常难的事情。

image.png
这里该机制也类似于ensemble的机制,就是组合多个模型输出,接着通过小的网络直接训练,往往再很多比赛的时候使用该机制。

三、 Parameter Quantization


  • using less bits to represent a value(用少bit减少空间存储参数)
  • weight clustering
  • Represent frequent clusters by less bits, represent rare clusters by more bits(e.g Huffman encoding

四、 Architecture Design

(Depthwise Separable Convolustion)


reference可防止overfitting




五、 Dynamic Computation


The network adjusts the computation it need.



不同阶段有输出,根据资源决定在哪里输出端输出

相关文章

  • 模型压缩

    一、算法概述 1.1 svd分解 1.1.1 问题引出:对仿射变换进行降维线性近似 对一个卷积层来说,卷积的输出响...

  • 模型压缩

    2018 CVPR论文:Universal Deep Neural Network Compression htt...

  • 模型压缩

    模型压缩的方法,常见的有剪枝(pruning),量化,蒸馏。 pruning 先分析权重或者神经元的重要性,然后去...

  • 模型压缩

    这篇文章主要是根据李宏毅老师介绍的知识要点进行总结【機器學習2021】神經網路壓縮 (Network Compre...

  • 模型压缩

    模型压缩 对于复杂问题建模时,深度学习模型在容纳更多参数的情况下,效果一般更好,但是模型占内存大,预测时间长的,往...

  • 强化学习应用到模型压缩

    本文介绍几篇自动化模型压缩相关论文的主要思想,包括网络结构搜索及自动化模型压缩压缩 一、强化学习基本思想回顾 (一...

  • Learning Efficient Convolutional

    目标:压缩模型尺寸,降低运行时的内存占用,降低计算复杂度,不损失模型精度 方法:channel-level压缩利用...

  • WebGL 几何压缩

    利用Draco几何压缩库压缩顶点、法线、UV、颜色等数据; Draco提供了对obj、gltf格式的模型进行压缩,...

  • bert 模型压缩原理

    1. 压缩目的: 在基本不影响模型效果的基础上,对bert模型进行同构压缩,将layer 与embedding s...

  • BERT 模型蒸馏 TinyBERT

    BERT 的效果好,但是模型太大且速度慢,因此需要有一些模型压缩的方法。TinyBERT 是一种对 BERT 压缩...

网友评论

      本文标题:模型压缩

      本文链接:https://www.haomeiwen.com/subject/xnowlrtx.html