神经网络模型的压缩加速之权值共享(Weight Sharing)

本文探讨了神经网络中的权值共享概念,解释了如何利用这一特性进行模型压缩和加速,通过聚类相似权值并用平均值代替,大幅减少了模型参数数量。以AlexNet为例,展示了通过剪枝和权值共享技术可以显著减小模型大小。

 

[References]:

https://arxiv.org/abs/1510.00149

http://www.cnblogs.com/chenshan-crystal/p/7543780.html

神经网络的权值共享指从一个局部区域学习到的信息应用到图像的其它地方去。例如用一个相同的卷积核去卷积整幅图像,相当于对图像做一个全图滤波,每个卷积核在整个图像上是不断重复的,这些重复的单元共享着相同的参数设定(权值Weight和偏置Bias)。若一个卷积核对应的特征是边缘,用该卷积核去对图像做全图滤波,即将图像各个位置的边缘都提取出来。不同的特征靠多个不同的卷积核实现。图像的局部统计特征在整幅图像上具有重复性(位置无关性),即若图像中存在某个基本图形,该基本图形可能出现在任意位置,则不同位置共享相同权值可实现在数据的不同位置检测相同的模式。在第一个窗口卷积后得到的特征是边缘,则这个卷积核对应的就是边缘特征的提取方式,可以用这个卷积核去提取其它区域的边缘特征。

基于这个思想,权值共享可被用来进行网络模型的压缩加速。若相邻两层之间为全连接,每层有1000个节点,那么这两层之间有1000*1000个权值(参数)。对这一百万个权值进行聚类,权值接近的为一类,可以用每个类的均值替换这一类的权值,这样部分连接(如果他们聚在同一类)将共享相同的权值。如果我们把一百万个数聚成一千类,就可以把参数的个数从一百万降到一千个,模型大小被大幅压缩。

权值共享方案如图所示:

获取为浮点数的权值之后,使用相关聚类方法,按照大小的相近程度分为不同类别(不同颜色块),每个类别只需要保存一个聚类中心的权值,和对应的聚类索引(Index),数据量大幅度减少。在权值更新时进行反向传播,计算每项权值的梯度(Gradient),将之前聚类的同一类别的梯度累加,结合学习率lr(Learning Rate)进行权值更新。

 

 

进行权值共享优化之后的网络模型将会在一定程度上被压缩,例如对于经典网络AlexNet,下表显示出其经过剪枝和权值共享等优化处理之后的压缩效果:</

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值