深度学习-模型压缩之Quantization & Binarization方向论文阅读笔记
论文:Binarized Neural Networks: Training Neural Networks with Weights and Activations Constrained to +1 or 1
Weight and Activation
首先,该论文主要把weight和激活函数结果activation在训练时都做了二元化操作。具体来说,文章介绍了两种binarization方法,确定法(deterministic)和随机法(stochastic):- deterministic:给定x,若x > 0,返回+1,反之返回-1。
- stochastic:根据x的值,计算返回+1的概率p,在做二元化操作时,以p为概率返回1,反之返回-1。具体p的计算公式为 σ(x)=clip(x+12,0,1)=max(0,min(1,x+12)))
这里有一个例外,就是input layer,它的输出通常是image信息,文中并没将其binarized。
Gradient
gradient在实现中保留了浮点数的形式,原因应该是为了保证SGD的有效。
在计算gradient时,会对weights和activations加一些noise以增加generalization。(待定,看论文公布的实现再确认)
Propagation
因为前向的时候相当于是对weight和activation求了个sign函数,而sign()的导数几乎处处为0,这显然没法用到后向的计算中,因此需要找到一个sign函数导数的估计。
论文中选择的是 1