BNN和异或网将权重和卷积层的值进行量化,进而将在前向传播过程中花费最多的卷积操作转化为了两个bit向量的逐比特的点积:
这里bitcount计算比特向量中比特的数量。
之前的网络都没能在反向传播保持8比特以下的精度的同时,能够拥有可接受的精度。
dorefa-net的创新点在于:
1、它能够以任意的精度量化权重、激活层和梯度。
2、由于比特卷积可以高效地在各种设备上实现,因此他为在各种软件上实现神经网络提供了方法。
3、实验证明,为了尽可能地保持模型精度,对量化精度的要求的降序排列是梯度、激活层和权重。
4、实验证明了dorefa-net的有效性。
作者强调了一点,在量化权重和激活层时,要用确定的函数来做,但梯度要进行随机量化。
上面提到的x·y是当它们是1比特时的,若它们是多比特的数字,则乘法规则变为:
其复杂度为O(MK)。
STE
因为我们要用量化的方式来表示数据,那么在计算梯度时就会出现问题:因为量化后的数值的表达能力是有限的,这使得导数并不总是能够正确地表示。