TRAINED TERNARY QUANTIZATION
2017 ICLR
清华 斯坦福
摘要
提出一种将神经网络进行三值量化的方法,该方法精度下降很小,甚至可以提高某些模型的精度,32、44、56层ResNet在CIFAR-10上和ImageNet上的AlexNet。在推理过程中,只需要三元值(2bit权值)和比例因子,因此我们的模型比全精度模型小将近16倍。三元模型也可以看作是稀疏的二元权值网络,可以通过自定义电路来加速。CIFAR-10上的实验结果表明,经过该量化方法得到的三元模型分别比全精度模型(ResNet-32、44、56)的精度高0.04%、0.16%、0.36%。在ImageNet上,我们的模型比全精度AlexNet模型在Top-1上精度高0.3%,比先前的三值模型的精度高3%。。
1 实现方法
1.1 以前的三值网络(TWN)
三值网络 TWN (Ternary weight networks)
阈值的计算公式为:
1.2 该方法的三值网络(TTQ)
将权重W量化为 {−Wl ,0,+Wl },尺度因子不是某层权重元素绝对值的均值,而是设定为参数Wl,通过反向传播学习获得。
计算出权重的梯度为:
其中:
从而计算的32bit的全精度的梯度为:
阈值的设定有两种方法:
(1)与TWN不同的是,阈值设置为:
这种方法在CIFAR-10的实验中使用阈值t=0.05。
(2)在ImageNet的实验中,并不是由通过钦定阈值的方式进行量化的划分,而是钦定0值的比率r,即稀疏度。
整个过程如下图:
2 实验
2.1 准确度
2.2 在ImageNet上最佳的稀疏度的确定
稀疏度为0(即二值网络)不好,稀疏度太大也不好,30%~50%最好,如Figure 5。
3 结论
在文章是对三值网络TWN的改进,量化值量化了权重没有量化激活,加速效果应该不明显。和一般的二值化网络和三值网络一样,在较小的网络上精度的损失还比较小 ,较大的网络损失还是比较大。提出的将尺度因子通过反向传播进行学习,和通过将最大值的t(0-1)倍,作为判断稀疏的阈值,有一定的借鉴意义。