神经网络压缩(7)Soft weight-sharing for neural network compression

Soft weight-sharing for neural network compression

Abstract

  1. soft weight-sharing
  2. achieves both quantization and pruning in one simple (re-)training procedure
  3. the relation between compression and the minimum description length (MDL) principle

Intro

  1. compression直接相关:(variational) Bayesian inference and
    the minimum description principle
  2. Hinton1992,soft weight sharing 这个是作为一种正则化的方法用于降低网络的复杂性,防止过拟合
  3. 他主要的构想也是quant的思想,文章中提到,对比韩松的方法,需要一步一步的进行prune和quant然后在retrain,这篇文章引入soft weight sharing的方法说可以在retain的过程中一起实现prune和quant;

Method

  • 需要优化的目标函数:
    这里写图片描述

损失函数:Le是error cost;Lc是complexity cost;
然后先验概率p(w)分布引入了高斯混合分布,最终的目的是通过训练让weight聚集在cluster周围,让权重形成几个不同的组,优化这些cluster中心使网络得到比较高的预测精度。最后的compresssion是通过对这K个cluster的均值(中心)编码实现。(所以觉得还是quant的思想,聚焦点在于如何寻找quant的分组)

  • 不同高斯成分的中心和方差还有混合系数都作为学习的一部分,为了最小化误差函数,需要计算各个不同参数的导数。为了最小化最终的误差函数,我们必须要把误差函数能够对各种可进行调整的参数进行求导,我们首先需要把{πj}看作先验概率然后引入一个相应的后验概率,就是这个公式,然后分别对各个参数求导:
    这里写图片描述

1.正则化项的影响就是将每个权重拉向第 j 个高斯的中心
2.它是将ui推向权值的均值方向
3.这会驱使delta朝着对应中心附近的权重的平方偏差的权重化均值方向移动
4.pi会被推向成分 j 的平均后验概率的方向。

  • 整个算法流程
    tao是正则化系数,文章设定0.005,给定lr等参数;mean初始化是在pretrain的weights的大小范围内进行均匀初始化;方差:weight decay rate the original network has been trained on;
    最后的结果是每个weights被对应的归为比例最高的那个组件的mean值
    这里写图片描述

  • 细节
    为了保证有一定的prune ratio,文章设定:
    这里写图片描述
    -Weights会分布在聚类中心的附近,然后weights和means之间,means和means之间都是会相互影响的,文章说在这种情况下quant成多少部分是网络 自己学出来的,太相近的聚类之间,如果KL散度小于一定阈值,需要合并,这是合并的规则:
    这里写图片描述

最终的存储格式也是借鉴了韩松的deepcompression的方式

Experiments

Weight值在retrain之前和之后的变化,在0处达到一个很高的峰值。

这里写图片描述
学习过程中,高斯混合模型的一个变化过程,y轴是高斯分布的中心值,可以看到从最初的初始化为17个部分,慢慢互相吸收靠近变成最后6个;散点图也显示了retrain前的weights到最后分布在各个高斯中心点附近的weights
这里写图片描述

和popular network的比较:
这里写图片描述

阅读更多
换一批

没有更多推荐了,返回首页