[论文解读] Training deep neural networks with low precision multiplications
本文表明,通过使用高精度累加器和更高精度的权重更新,即使将乘法器精度降低至9位定点或10位动态定点算术,深度神经网络仍可成功训练,且保持高准确率。在MNIST、CIFAR-10和SVHN数据集上,该方法实现了接近最先进水平的性能,同时仅使用极低的算术精度,从而实现高效的硬件部署。
Multipliers are the most space and power-hungry arithmetic operators of the digital implementation of deep neural networks. We train a set of state-of-the-art neural networks (Maxout networks) on three benchmark datasets: MNIST, CIFAR-10 and SVHN. They are trained with three distinct formats: floating point, fixed point and dynamic fixed point. For each of those datasets and for each of those formats, we assess the impact of the precision of the multiplications on the final error after training. We find that very low precision is sufficient not just for running trained networks but also for training them. For example, it is possible to train Maxout networks with 10 bits multiplications.
研究动机与目标
- 探究是否可不仅用于推理,还可用于端到端训练的极低精度乘法器。
- 评估精度降低对浮点、定点和动态定点格式下训练稳定性和最终测试误差的影响。
- 确定保持模型准确率所需的激活和权重更新的最小位宽。
- 提出并验证一种可按层自适应调整缩放因子的动态定点格式,以提高精度效率。
- 通过最小化乘法器精度而不牺牲性能,实现面向深度学习的节能和面积高效硬件设计。
提出的方法
- 在MNIST、CIFAR-10和SVHN上使用三种算术格式(浮点、定点和动态定点)训练Maxout网络。
- 使用高精度累加器(32位)在低精度乘法器下维持前向和反向传播的数值稳定性。
- 在权重更新中使用更高精度算术(19–20位),相比激活和传播使用的较低精度(9–11位)。
- 采用动态定点格式,通过初始训练学习自适应缩放因子,并每10,000个样本更新一次。
- 使用随机舍入和归一化技术,以减少低精度环境下的量化误差。
- 在多个数据集和精度级别上评估泛化误差,以识别精度阈值。
实验结果
研究问题
- RQ1是否可使用10位或更低精度的乘法运算训练深度神经网络,而不会导致显著的准确率下降?
- RQ2在精度效率和训练稳定性方面,动态定点与定点和浮点相比如何?
- RQ3为保持可接受的测试误差率,激活和权重更新所需的最小位宽是多少?
- RQ4在低精度设置中,使用更高精度算术进行权重更新是否能显著改善训练收敛性?
- RQ5低精度训练是否可有效应用于现代深度学习模型(如Maxout网络)在标准基准上的训练?
主要发现
- 使用10位定点乘法器训练时,准确率下降极小,MNIST、CIFAR-10和SVHN上的测试误差率与全精度训练相当。
- 定点格式下传播的最小位宽为19位(含符号为20位),低于此值时测试误差急剧上升。
- 对于动态定点格式,9位传播和11位权重更新可实现接近最优的性能,仅在SVHN上出现轻微误差增加。
- 使用更高精度累加器和更高精度权重更新,在低精度设置下显著提升了训练稳定性和最终准确率。
- 动态定点优于标准定点格式,因其可按层自适应调整缩放因子,减少量化误差并支持更低的位宽。
- 使用半精度浮点(16位)对训练几乎无影响,表明即使16位浮点也足以支持训练。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。