李宏毅机器学习笔记第18周_神经网络压缩(Network Compression)

文章目录

  • 一、Network Pruning
    • 1.Network can be pruned
    • 2.Weight pruning
    • 3.Neuron pruning
    • 4.Why Pruning?
  • 二、Knowledge Distillation
  • 三、Parameter Quantization
  • 四、Architecture Design
    • 1.Depthwise Separable Convolution
    • 2.Low rank approximation
  • 五、Dynamic Computation
    • 1.Dynamic Depth
    • 2.Dynamic Width
    • 3.Computation based on Sample Difficulty


一、Network Pruning

1.Network can be pruned

1) 神经网络的参数是非常多的,但并非所有的参数都是非常重要的,因此我们可以把这些多余的、不那么重要参数给删除掉,这样可以减小模型大小,加快运算速度。
李宏毅机器学习笔记第18周_神经网络压缩(Network Compression)_第1张图片
2) 现在的问题是我们如何去评估参数是否重要?有两个方向,第一个是评估权重的重要性,可以计算它的绝对值去判断,第二个是评估神经元的重要性,我们可以去记录在数据集中神经元出现的次数去判断。在进行Network Pruning操作后,我们可以进行微调,并且也可以反复进行上述过程,就会得到比较小的Network。
李宏毅机器学习笔记第18周_神经网络压缩(Network Compression)_第2张图片

2.Weight pruning

在实际操作中,我们进行Weight pruning后,会把我们的Network变得不规则,这样的Network是难以进行implement和GPU加速,于是我们会把删掉的weight补0,但是这样没有真正地减小Network。
李宏毅机器学习笔记第18周_神经网络压缩(Network Compression)_第3张图片

3.Neuron pruning

在实际操作中,我们进行Neuron pruning后,我们的Network还会保持一定的规则,它会比较容易implement和进行GPU加速。
李宏毅机器学习笔记第18周_神经网络压缩(Network Compression)_第4张图片

4.Why Pruning?

1) 现在有一个问题是我们先要训练一个大的Network,然后再去把它变小,为什么不直接训练一个小的Network呢?因为一个大的Network比较容易训练。
2) 为什么大的Network比较容易训练呢?有一个假说是Lottery Ticket Hypothesis,我们在训练一个大的Network的同时,相当于训练许多小的Network,只要其中一个小的Network训练成功,就相当于大的Network训练成功。

二、Knowledge Distillation

1. 如下图所示,Knowledge Distillation需要两个Network,一个是大的模型Teacher Net,另一个是小的模型Student Net。过程是先让Teacher Net学习,学习结束后让Student Net把Teacher Net当作一个标准,让Student Net的输出与Teacher Net的输出越接近越好。
李宏毅机器学习笔记第18周_神经网络压缩(Network Compression)_第5张图片
2. 在Knowledge Distillation的计算过程中,会对softmax进行改写,这样的好处是把比较集中的分布变得更加平滑。
李宏毅机器学习笔记第18周_神经网络压缩(Network Compression)_第6张图片

三、Parameter Quantization

1. Parameter Quantization的方法:用更少的bit去储存数据;用Weight clustering的方法可以节省空间,但这样的结果是会导致误差变大;Huffman encoding,具体做法是对于常出现的clusters用少量的bit表示,不常出现的clusters用较多一点的bit表示。
李宏毅机器学习笔记第18周_神经网络压缩(Network Compression)_第7张图片
2. Binary Weight的做法是可以只用一个bit去储存数据。
李宏毅机器学习笔记第18周_神经网络压缩(Network Compression)_第8张图片

四、Architecture Design

1.Depthwise Separable Convolution

1) Depthwise Convolution
如下图所示,一个filter对应一个channel,然后做卷积得到feature map。
李宏毅机器学习笔记第18周_神经网络压缩(Network Compression)_第9张图片
2) Pointwise Convolution
在Depthwise Convolution中,channel与channel之间是没有联系的,于是就要加上Pointwise Convolution,这里filter的大小限制是必须是1 * 1。
李宏毅机器学习笔记第18周_神经网络压缩(Network Compression)_第10张图片

2.Low rank approximation

如下图所示,在中间添加一层大小为k的linear,可以减少训练需要的参数。
李宏毅机器学习笔记第18周_神经网络压缩(Network Compression)_第11张图片

五、Dynamic Computation

Network可以自由地调整需要的运算资源。
李宏毅机器学习笔记第18周_神经网络压缩(Network Compression)_第12张图片

1.Dynamic Depth

Network可以自由地调整自己的深度。
李宏毅机器学习笔记第18周_神经网络压缩(Network Compression)_第13张图片

2.Dynamic Width

Network可以自由地调整自己的宽度。
李宏毅机器学习笔记第18周_神经网络压缩(Network Compression)_第14张图片

3.Computation based on Sample Difficulty

如下图所示,遇到一个简单的问题,一层Layer就会结束;遇到一个复杂的问题,需要很多层Layer才会结束;因此需要机器视情况自由地调整。
李宏毅机器学习笔记第18周_神经网络压缩(Network Compression)_第15张图片


你可能感兴趣的:(机器学习,深度学习)