李宏毅机器学习课程笔记-13.3模型压缩之参数量化

参数量化就是Parameter Quantization。

  1. 用更少的bit表示一个value

    比如说本来用32位表示一个weight,现在用16位表示一个weight,这样就缩小了一半。

  2. Weight Clustering

    根据weight的值对weight进行聚类,每个类中的weight都用同一个value(比如该类中所有weight的平均值)表示。每个类有个id,2个bit就可以表示4个类的id(再进一步还可以使用哈夫曼编码),在存储时只需要存储每个weight所属的类的id以及每个类对应的value即可。

    因为每个类中的weight都用了同一个value表示,所以模型会有一些精度损失。

  3. Binary Weights

    weight的值只有±1。

    有不少研究者提出直接训练一个Binary Network,最早的是Binary Connect(http://arxiv.org/abs/1511.00363),其它的还有Binary Network(https://arxiv.org/abs/1602.02830)、XNOR-Net(https://arxiv.org/abs/1603.05279)。

    Binary Connect在训练中有2个分别使用real value和binary value的model,暂称为R和B。首先初始化R的参数,然后找到和R最接近的B,再使用B的梯度更新R的参数,然后再找到和R最接近的B,循环该过程直到停止,最后就使用最终的B。

    Binary Connect其实像是一种Regularization,它约束weight的值必须是±1。


Github(github.com):@chouxianyu

Github Pages(github.io):@臭咸鱼

知乎(zhihu.com):@臭咸鱼

博客园(cnblogs.com):@臭咸鱼

B站(bilibili.com):@绝版臭咸鱼

微信公众号:@臭咸鱼

转载请注明出处,欢迎讨论和交流!