【李宏毅DL笔记】Network Compression

1 Resource limited Devices: Limited memory space, limited computing power, etc.

2 Network Pruning(网络剪枝).
1)为什么神经网络可以进行剪枝?
神经网络中有大量的冗余的参数、神经元(over-parametered)。
2)网络剪枝:将不重要的参数或神经元进行移除,在对剪枝后的网络用原来的训练集进行微调,得到剪枝后的网络,并且可以进行迭代剪枝。具体如下:

3)为什么要进行网络剪枝?
① 因为小的网络很难进行训练,大的网络较容易进行优化。
② Lottery Ticket Hypothesis.
主要思路,对剪枝后的网络,使用原来的随机初始化的参数进行重新训练,而不是重新对参数随机初始化再训练,得到的网络效果不错。原因是原来随机初始化的网络,进行训练达到预期效果后,在进行剪枝后,所保留的网络对原来随机初始化的参数也同样有效。

③ Rethinking the Value of Network Pruning.
主要思路,对于剪枝后的模型,重新进行随机初始化参数并且增加训练周期,模型的效果更好。

4)剪枝对象:
① Weight pruning.
问题:对神经网络模型进行参数修剪,可能得到不规则的模型。解决:实际上对神经网络进行参数修剪是将相关参数设置为0,保留神经网络的整体结构,但神经网络模型的文件大小并没有改变。

实验结果:并没有做到真正的网络剪枝,即GPU速度没有明显提升。

② Neuron pruning.
特点:容易实现并且效果更好,做到真正GPU加速。


3 Knowledge Distillation(知识蒸馏).
1)知识蒸馏:
主要思路,先训练一个大的Teacher模型,再将该模型在测试集的输入输出作为小的Student模型的训练集,即使Student模型往Teacher模型的方向去训练。

2)知识蒸馏作用:Ensemble Models.

3)Tricks.
主要思路,将Teacher模型的输出转换为概率分布,使得Student模型学习到更多的信息。


4 Parameter Quantization(量化参数).
1)实现:
① 使用更小的比特位表达参数值。
② 对参数进行聚类。
③ 用小的比特位表示频率高的参数簇,用大的比特位表示频率低的参数簇。(哈夫曼编码)

2)Binary Weights(权重二值化): Binary Connect.
① 实现:
主要思想,在前向传播和反向传播的过程中对参数和激活值进行二值化,加快传播速度,而模型的参数在进行更新,并不是将模型的参数进行二值化更新。效果相当于进行正则化,但没有Dropout好。

② 实验结果:


5 Architecture Design(架构设计).
1)Low rank approximation.
主要思路,在上下两层神经网络结构中间增加一层全连接层来减少参数。

2)Review: Standard CNN.

3)Depthwise Separable Convolution(深度可分卷积).
① 实现:

② 总结:


6 Dynamic Computation(动态计算).
1)实现:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值