Network Pruning
前提:
步骤:
问题
- 为什么不直接训练一个小的网络,而先训练一个larger的再去Prune呢?
* Larger network is easier to optimize.
* 大的network甚至可以直接找到global minimum- The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks
- 如下图,如果直接重新random init一个pruned network的同样结构,train不动;但如果把original network的random init的值拿来,可以train
- Rethinking the Value of Network Pruning
- 而这篇得出的结论却又相反:小的network是可以直接train的,而且效果还不一定比大的差。(Scratch-B相比Scratch-E train了更多的epoch)
- 而这篇得出的结论却又相反:小的network是可以直接train的,而且效果还不一定比大的差。(Scratch-B相比Scratch-E train了更多的epoch)
- 如下图,如果直接重新random init一个pruned network的同样结构,train不动;但如果把original network的random init的值拿来,可以train
- Hard to implement: Weight Pruning实际上把weight设成0相当于Prune,但实际model的大小并没有减小。但如果不这样做,GPU加速不了,因为你的权重不是规则的矩阵了。所以其实是裁剪neuron更方便,直接把连接到neuron的weight都拿掉就ok。
- The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks