李宏毅机器学习19—Network compression(第五周)

本文探讨了深度学习网络压缩的几种方法,包括网络剪枝、知识蒸馏、参数量化、结构设计和动态计算,旨在解决移动设备上存储空间有限的问题。网络剪枝通过删除不重要的权重和神经元实现模型瘦身;知识蒸馏利用大模型指导小模型学习;参数量化通过减少存储空间来压缩模型;结构设计如深度可分离卷积降低参数数量;动态计算则根据设备资源灵活调整计算需求。
摘要由CSDN通过智能技术生成

Network compression 网络压缩

 

摘要:

实践背景:想要将深度模型放到移动设备上,例如智能手机,无人机,机器人等等,但是移动设备上的存储空间是有限的,这就需要进行网络压缩。

理论基础:现在的模型中,多数参数和神经元对于输出结果没有影响,也就是没用到。这样可以将这些参数和神经元剪掉,得到一个更小的网络。

这节课主要讲的是网络压缩的几种方法,分别是网络剪枝,知识蒸馏,参数量化,结构设计和动态计算。(这节课只考虑软件方向)

网络剪枝是指评估weight和neuron的重要性,然后把不重要的删除掉。

知识蒸馏是指让small network去拟合多个big network的结果,达到网络压缩的目的。

参数量化主要是从参数的存储空间角度考虑,尽可能让参数占用更少的空间。

结构设计是在cnn中两个layer中添加中间层,虽然层数变多了,但是参数的个数却神奇的变少了。

动态计算是对cnn中间层的输出进行分类并使用。

 

目录

一、network pruning网络剪枝

1.network pruning的做法:

2.为什么要进行修剪?

3.实践时的注意事项

二、knowledge distillation 知识蒸馏

1.什么是knowledge distillation

2.原理:

3.做法:

三、parameter quantization 参数量化

1.参数量化的几种做法

2.binary weights

四、architecture design结构设计

优化后的cnn卷积:

优化前后的参数对比

优化前后的过程分析:

优化前后参数量的对比

五、dynamic computation(动态计算)

做法及优缺点

总结:


 

 

一、network pruning网络剪枝

1.network pruning的做法:

1.首先有一个训练好的network

2.评估weight和neuron的重要性:

对于weight来说,可以通过计算l1,l2

对于neuron来说,根据给定的数据集,得到的输出都是0,那这个neuron就是不重要的。

3.删除不重要的weight和neuron

4.用之前的训练数据进行训练

5.观察调整后的结果

注意:可以进行多次,小幅度的调整。一次调整不要删除太多,不然会导致fine-tune的结果有很大的偏差。

 

问题:为什么不直接训练一个比较小的network

因为小的network比较难训练。

只要网络足够大,就可以找到全局最小点。

 

2.为什么要进行修剪?

两种观点:

1.对一个随机初始化的网络,进行训练,修剪得到的模型,如果使用新的random init的weight进行训练,没法得到结果,但是用之前的random init的weight进行训练,是可以训练成功的。

解释:

首先,一个random small network是不一定可以训练出来的。

大的network中包含很多small network,network越大,其中包含small network越多。其中的small network有的可以训练起来,有的不可以。想要big network可以训练起来,只需要其中某一个small network可以训练起来就足够了,这就是big network容易训练成功的原因。。

图中的修剪过程就是找到big network中可以训练的small network。对这个small network使用之前的weight,结果当然是可以训练成功的。

 

2.在这个paper中,得到了不同的观点,作者认为不需要进行修剪,可以直接进行训练,scratch-E和scratch-B的数据表明,直接训练的结果是优于修剪后的结果。

 

3.实践时的注意事项

 

1.weight pruning

对weight进行修剪时,得到不规则的network。Keras实现起来不方便,gpu也没办法加速。(无法进行矩阵计算)

实际操作时,没有删除这些weight,只是把它们设成0。(这样network的大小并没有改变)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值