2020李宏毅学习笔记——353.Network Compression(4_6)

4.Parameter Quantization(参数量化)

  • less bits
    一个很直观的方法就是使用更少bit来存储数值,例如一般默认是32位,那我们可以用16或者8来存数据。

  • weight clustering(权重聚类)
    最左边表示网络中正常权重矩阵,之后我们对这个权重参数做聚类(可以用kmean),比如最后得到了4个聚类,那么为了表示这4个聚类我们只需要2个bit,即用00,01,10,11来表示不同聚类。之后每个聚类的值就用均值来表示。这样的一个缺点就是误差可能会比较大。每个参数不用保存具体的数值,而是只需要保存参数所属的类别(取均值所得)即可。
    在这里插入图片描述

  • Huffman Encoding
    思路很简单,以上面的图为例,就是对于出现的聚类用一点的bit来表示,而那些很出现的聚类就用一点的bit来表示。

  • Binary Connect(二进制权重)
    Binary Connect是以一种更加极致的思路来对模型进行压缩,即每个节点只有1或-1来表示。比较具有代表性的论文:BInary Connect BInary Network
    XNOR-Net

简单介绍一下Binary Connect的思路:灰色节点表示使用binary weight的神经元,蓝色节点可以是随机初始化的参数,也可以是真实的权重参数。
第一步我们先计算出和蓝色节点最接近的二元节点,找一个离蓝点最近的一个Binary Weight,并计算出其梯度方向(红色剪头)。
第二步,蓝色节点的更新方向则是按照红色箭头方向更新,而不是按照他自身的梯度方向更新。如下图示,梯度下降后,蓝色节点到了一个新的位置。
最后在满足一定条件后(例如训练之最大epoch),蓝色节点会在一个灰色节点附近,那么我们就是该灰色节点的权重。
在这里插入图片描述
结果还不错,可以看到把权重限制为+1或者-1相当于加上了正则化。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值