原文链接:
https://arxiv.org/abs/1612.01064
摘要
提供一个三值网络的训练方法。对AlexNet在ImageNet的表现,相比32全精度的提升0.3%。
方法
对于每一层网络,三个值是32bit浮点的,、是可训练的参数。另外32bit浮点的模型也是训练的对象,但是阈值是不可训练的。
由公式(6)从32bit浮点的到量化的三值:
由(7)算出、的梯度
其中
由(8)算出32bit浮点模型的梯度
由(9)给出阈值,这种方法在CIFAR-10的实验中使用阈值t=0.05。而在ImageNet的实验中,并不是由通过钦定阈值的方式进行量化的划分,而是钦定0值的比率r,即稀疏度。
整个流程如Figure 1所示
实验效果
ResNets on CIFAR-10
AlexNet on ImageNet,第一层卷积和最后一层FC用的32bit浮点权重,其它用的三值权重。
ResNet-18 on ImageNet
讨论
稀疏度为0(即二值网络)不好,稀疏度太大也不好,30%~50%最好,如Figure 5。用阈值t比稀疏度r更好,这样各层可以找到自己合适的稀疏度。
最后看一下三值的AlexNet的卷积核