作者:
- Yinpeng Dong ([email protected]) 计算机科学与技术系,清华大学,北京,**
- Renkun Ni ([email protected]) 美国弗吉尼亚大学
- Jianguo Li ([email protected]) 英特尔实验室的**北京,**
- Yurong Chen([email protected]) 英特尔实验室的**北京,**
- Jun Zhu ([email protected]) 计算机科学与技术系,清华大学,北京,**
- Hang Su ([email protected]) 计算机科学与技术系,清华大学,北京,**
由于嵌入式应用对存储需求和计算能力较为苛刻,使得使用较少位数表示深度神经网络势在必行。不过,这样会使得精度有所损失。本文的目的是使用随机量化(SQ)算法来将DNN网络使用低位数表示。我们使用这种量化方式是基于以下的观察。现有的训练算法在将每一次迭代中都近似地将实数值/滤波器汇总在一起,并使用低位表示。有些数值/滤波器的量化损失比较小,但有些却十分大,这会导致训练时梯度指向不合适的方向,这回导致精度显著下降。另外,SQ量化将一部分数值/滤波器量化为低位表示,这里量化误差与随机概率成反比(其他未量化的值保持全精度)。每次迭代中,量化和全精度的部分会根据相关的梯度进行更新。SQ率会随着整个网络的量化而增加。这个过程中会对量化的误差进行补偿,并且使低位表示的DNN获取较好的精度。我们用实验展示了SQ算法,可以在各种数据集和网络结构下保证(并提高)不同位数表示的DNN网络的精度。