原文链接:https://arxiv.org/abs/1510.03009 发表:ICLR 2016
code:https://github.com/hantek/BinaryConnect
编辑:Daniel
本文提出的量化方法分为两步,第一步在前向传播中,对权重进行随即二值化或三值化,第二步在反向传播中将每层的输入x量化成2的N次方,将乘法操作转换为位移操作。
其中w'为网络中原始的全精度权重,W为随机二值化后的权重。为了使W为1的概率在合理的区间内,原始权重w'将被强制限制在[-1,1]之间。
三值化允许权重为0,具体操作与二值化类似。
上图是反向传播中权重w,偏置b和误差符号δ的更新过程(这里δ写的挺奇怪的,但在下面的伪代码里面就是普通求梯度的过程,不太懂。)
h‘(Wx + b)和x引入了矩阵乘法,为了消除乘法,需要将这两个中的一个量化为2的整数幂,转换成移位操作。由于h‘(Wx + b)由损失函数和网络中的参数决定,很难量化,所以文中对x进行量化。
伪代码