Learning Accurate Low-Bit Deep Neural Networks with Stochastic Quantization
本文提出了一种使用随机算法量化网络的方法。
这种方法与INQ采用相同的方法将权重划分为可量化和全精度部分,并逐步提高可量化权重的比例直至全部量化完成。两者的区别主要体现在对权重的选择上:INQ采用由大到小的选择策略而我们则根据量化误差的程度来选择

这里Wi是某通道权重的全精度值,Qi是其量化后的值。作者定义一个函数:

该作者基于所述函数设计了四种量化策略:第一种策略规定概率值应设为1/m(其中m代表权重通道的数量),第二种策略则采用线性的数学模型进行计算

3:softmax函数

4:sigmoid函数

就这一研究而言,在分析多种算法后发现它们的输出结果大体相当;然而由于线性函数最为简单易懂的原因,在此情况下表现最为出色。就这一现象而言,在评价不同因素后得出结论:核心在于随机划分机制而非指示函数。
概率计算算法确定后,划分算法如下:

整个训练算法如下:

权重更新公式为:

在更新时,分别使用量化后权重和全精度权重的梯度更新对应的权重。
随后作者做了多组对照实验:
单个元素量化与各通道量化之间进行比较时,在表现上会更加突出的是各通道量化的效果。其原因在于,在进行单个元素量化的过程中会对各元素之间的相互作用产生较大的作用
该文采用了基于概率的方法来选择量化的通道,在这一过程中也被称为随机量化技术的原因就在于其采用的是非确定性选择的方式。然而这一方法是否真的是最优的选择呢?为此作者提出了两种不同的优化方案:第一种方案是按照从小到大的顺序依次优化各个通道的量化误差;第二种方案则是在初次训练时就设定好各通道的优化概率,并在此之后始终保持这一设定不变的状态进行后续训练。最终实验结果表明随机化量化策略能够获得最优性能,在这种情况下作者认为这是因为随机算法本质上是一种正则化手段(通过不总是选取性能最优的通道来防止过拟合)。
量化比例的选择:在每次量化过程中, 作者引入了一个超参数r, 用于决定多少权重会被量化, 其值会随着训练过程逐步增加. 为了探索一种合理的增长模式, 作者提出了三个具体策略: 依次包括100%、75%、87.5%和50%, 这些策略被称作指数增长方案(INQ中同样采用了这一策略);另一种则是20%到100%, 被称为平均增长模式. 前两种策略均基于从零开始训练, 因此作者提出了微调策略(fine-tune). 实验结果表明, 指数增长模式表现最优. 不过这可能是因为作者在小型网络上的实验结果如此, 在大型网络上采用微调策略(包括后向量化)可能会取得更好的效果.
