Binarized Neural Networks:Training Deep Neural Networks with Weights and Activations -1,1

文章链接:Binarized Neural Networks: Training Deep Neural Networks with Weights and Activations Constrained to +1 or -1

这是2016年的一篇关于模型量化的文章。

1、背景:

在网络量化中,有一种极为诱惑的量化方式:1bit量化——极致的压缩!但是1bit的网络在训练时有诸多细节需要完善。

2、方法:

2.1 Binarization Function

权值的量化有两种方式:sign和随机量化,虽然理论上随机要好一点,但实践中为了计算方便一般用sign

Binarized Neural Networks:Training Deep Neural Networks with Weights and Activations -1,1_第1张图片

但是sign函数其没有不为0的梯度,所以用tanh来代替。

Binarized Neural Networks:Training Deep Neural Networks with Weights and Activations -1,1_第2张图片

 2.2 网络的传播

Binarized Neural Networks:Training Deep Neural Networks with Weights and Activations -1,1_第3张图片

  • 前向传播中权值都会与一个权重系数a相乘

反向传播中权值更新并不是二值的,都是在原32bit精度上进行更新再量化成2bit

2.3对输入图像的处理:

输入图像不是二值化的,但是由于图像像素值分布在[0,255]之间(8bit时),所以可以用8比特来表示,这样就能将输入的实值像素值变成二值化的编码了。

Binarized Neural Networks:Training Deep Neural Networks with Weights and Activations -1,1_第4张图片

2.4 shift -based BN and Adamax

因为二值化后,BN操作和优化方式中的乘法计算都能用位移操作来代替,所以速度会快很多,具体算法如下:

 

Binarized Neural Networks:Training Deep Neural Networks with Weights and Activations -1,1_第5张图片

2.5 将这种方法推广到 m bit

 

3、结果

 

Binarized Neural Networks:Training Deep Neural Networks with Weights and Activations -1,1_第6张图片

只能说,作者尽力了,2bit的准确度方面确实不能和全精度的DNN作对比,特别是在大型的数据集上。后续的研究应该往优化量化更新方式或者是选择性量化的方面去。 

你可能感兴趣的:(模型压缩)