原文链接:

https://arxiv.org/abs/1612.01064

摘要

提供一个三值网络的训练方法。对AlexNet在ImageNet的表现,相比32全精度的提升0.3%。

方法

对于每一层网络,三个值是32bit浮点的{Wln,0,Wlp}WlnWlp是可训练的参数。另外32bit浮点的模型也是训练的对象,但是阈值Δl是不可训练的。
由公式(6)从32bit浮点的到量化的三值:
(笔记)网络压缩量化,训练三值量化TRAINED TERNARY QUANTIZATION
由(7)算出WlnWlp的梯度
(笔记)网络压缩量化,训练三值量化TRAINED TERNARY QUANTIZATION
其中
(笔记)网络压缩量化,训练三值量化TRAINED TERNARY QUANTIZATION
由(8)算出32bit浮点模型的梯度
(笔记)网络压缩量化,训练三值量化TRAINED TERNARY QUANTIZATION
由(9)给出阈值,这种方法在CIFAR-10的实验中使用阈值t=0.05。而在ImageNet的实验中,并不是由通过钦定阈值的方式进行量化的划分,而是钦定0值的比率r,即稀疏度。
(笔记)网络压缩量化,训练三值量化TRAINED TERNARY QUANTIZATION

整个流程如Figure 1所示
(笔记)网络压缩量化,训练三值量化TRAINED TERNARY QUANTIZATION

实验效果

ResNets on CIFAR-10
(笔记)网络压缩量化,训练三值量化TRAINED TERNARY QUANTIZATION
AlexNet on ImageNet,第一层卷积和最后一层FC用的32bit浮点权重,其它用的三值权重。
(笔记)网络压缩量化,训练三值量化TRAINED TERNARY QUANTIZATION
ResNet-18 on ImageNet
(笔记)网络压缩量化,训练三值量化TRAINED TERNARY QUANTIZATION

讨论

稀疏度为0(即二值网络)不好,稀疏度太大也不好,30%~50%最好,如Figure 5。用阈值t比稀疏度r更好,这样各层可以找到自己合适的稀疏度。
(笔记)网络压缩量化,训练三值量化TRAINED TERNARY QUANTIZATION
最后看一下三值的AlexNet的卷积核
(笔记)网络压缩量化,训练三值量化TRAINED TERNARY QUANTIZATION

相关文章: