量化神经网络对权重和激活值采用低精度表示,这一量化过程显著降低了网络的内存需求和计算复杂度。二值神经网络(Binary Neural Networks, BNNs)是量化的极端情形,仅用一位来表示数值。由于通常使用符号函数(sign function)将实数值映射为二值,因此在误差反向传播过程中需要引入平滑近似来模拟梯度。这样一来,前向模型与反向模型之间的不匹配会破坏梯度方向,导致训练不一致问题以及性能下降。
与现有 BNN 方法不同,本文提出在二值化过程中采用一种二值周期函数(BiPer)。具体而言:在前向传播中使用方波(square wave)以获得二值数值;在反向传播中,采用与方波具有相同周期的三角正弦函数作为可微替代函数。作者证明,该方法可以通过周期函数的频率来控制量化误差,从而提升网络性能。
大量实验验证了 BiPer 在基准数据集和网络架构上的有效性:在 CIFAR-10 和 ImageNet 分类任务上,相较于当前最先进方法分别取得了最高 1% 和 0.69% 的提升。