How GEMM works for Convolutions
-
Mobilenet-v1“MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications,” Apr. 2017.
一般而言,神经网络模型的参数都是用的32bit长度的浮点型数表示,实际上不需要保留那么高的精度,可以通过量化,比如用0-255表示原来32个bit所表示的精度,通过牺牲精度来降低每一个权值所需要占用的空间。此外,SGD(Stochastic Gradient Descent)所需要的精度仅为6-8bit,因此合理的量化网络也可保证精度的情况下减小模型的存储体积。
根据量化方法不同,大致可以分为二值量化、三值量化和多值量化。
对网络网络进行量化要解决三个基本问题:
- 如何对权重进行量化
- 如何计算二值权重的梯度
- 如何确保准确率
思想是将权值矩阵中的单精度浮点数用两个值来表示,一般考虑使用符号函数或者加入线性化的符号函数来近似。
-
“Binaryconnect: Training deep neural networks with binary weights during propagations,” 2015.
-
XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks