论文地址:https://arxiv.org/abs/1512.06473
源码地址:https://github.com/jiaxiang-wu/quantized-cnn

1. 主要思想

  • 这篇文章的主要思想其实就是权值共享,也是用聚类的方法(k-means)做共享,只不过不是单个权值共享了,而是分块权值共享(用一个掩码矩阵表示共享的情况),因此可以较少存储空间。 再加上因为共享,所以有些点乘计算只需要计算一次,因为对应的权值块都一样,输入一样的话,输出也一样。所以将部门的点乘转换成了加法操作。 因此也可以做到加速。

2. 性能

  1. ILSVRC-12上4~6x speed-up.
  2. 15~20x compression.
  3. one percentage loss of classification accuracy.

3. 量化原理

  1. Weighting Matrix 被划分成很多块,然后通过聚类(k-means)得到codebook,聚类操作优化的目标函数是:

也就是说codebook乘上掩码矩阵是可以大致恢复到Weighting Matrix。

4. 量化全连接层

网络量化——Quantized Convolutional Neural Networks for Mobile Devices-LMLPHP
网络量化——Quantized Convolutional Neural Networks for Mobile Devices-LMLPHP

  • 就是聚类的目标函数,以及参数的还原。

    5. 量化卷积层

    网络量化——Quantized Convolutional Neural Networks for Mobile Devices-LMLPHP
    网络量化——Quantized Convolutional Neural Networks for Mobile Devices-LMLPHP

  • 就是聚类的目标函数,以及参数的还原。

    6. 优化目标

  • 定义损失函数,用于更新聚类得到的codebook

7. 参数更新方法

网络量化——Quantized Convolutional Neural Networks for Mobile Devices-LMLPHP
网络量化——Quantized Convolutional Neural Networks for Mobile Devices-LMLPHP

  • 迭代更新的过程。

8. 计算量

网络量化——Quantized Convolutional Neural Networks for Mobile Devices-LMLPHP

9. 实验结果

网络量化——Quantized Convolutional Neural Networks for Mobile Devices-LMLPHP

10. 结论

  • 实践表明聚类在实际应用中的效果还是很明显的,尤其是在全连接层,因为参数非常的冗余,所以几乎不用做fine-tuning,就可以恢复到原来的性能,卷积层可能需要做fine-tuning。
05-21 20:01