本文为高通基于LSQ改进的量化工作,论文题目为:LSQ+: Improving low-bit quantization through learnable offsets and better initialization。
与ReLU不同,在流行的高效架构中经常使用的较新的激活函数(如Swish,H-swish,Mish)也可能导致负激活值,正负范围出现偏差。典型的可学习量化方案(PACT,LSQ)假设激活无符号量化,并将所有负激活量化为零,这会导致性能显着下降。简单的使用带符号的量化来容纳这些负值需要一个额外的符号位,这对于低位(2位,3位,4位)量化而言是昂贵的。为了解决这个问题,我们提出了LSQ 的扩展,即LSQ +,该方法引入了一种通用的非对称量化方案,该方案具有可训练的尺度和偏移参数,可以学会适应负激活。基于梯度的可学习量化方案通常会有最终训练性能高度不稳定性的缺点,因此需要大量的超参数调整才能达到令人满意的性能。LSQ+ 通过对量化参数使用基于 MSE 的初始化方案来缓解此问题。本文表明,这种初始化使得在多次训练中最终表现的差异明显降低。总体而言,LSQ+ 显示了 EfficientNet 和 MixNet 的最新结果,并且在具有 Swish 激活的神经网络的低位量化方面也明显优于 LSQ(例如:在ImageNet数据集上,对EfficientNet-B0进行W4A4量化处理,获得了1.8%的增益;对EfficientNet-B0进行W2A2量化处理,获得了5.6%的增益)。
对于权重量化,使用对称符号量化,因为可以凭经验观察到层权重在零附近对称分布。激活采用非对称量化形式。与对称量化相比,激活的非对称量化在推理过程中没有额外的成本,因为可以在编译时预先计算附加的偏移项并将其合并到偏差中:
LSQ+不同配置方案
为权重绝对值的均值
为权重绝对值的方差
通过优化MSE最小化问题来初始化每层的比例和偏移参数
将 s 和 β 的梯度嵌入到 PyTorch 的自动求导功能中,以便在几批数据中优化{
}。
EfficientNet-B0不同配置下的结果对比
MixNet-S不同配置下的结果对比
ResNet18不同配置下的结果对比
初始化结果稳定性分析
非对称偏置的作用
更多内容关注微信公众号【AI异构】