这篇论文是发表在CVPR2019的《Fully Quantized network for Object Detection》,作者是上海科技大学的Rundong Li和商汤的闫俊杰,闫俊杰是商汤智能城市商业组的CTO,15年从中科大博士毕业、17年从清华博士后毕业。
这篇论文提出了一些物体检测模型进行了4bit量化(将检测模型的所有层全部量化)的优化算法。具体来说,通过在finetune过程中减少batch normalization的不稳定性、去掉activation的outlier、channel-wise的quantization来增加量化网络的性能。
方法
均匀量化到k比特
- $$X^Q=Quant_k(X^R)=\Delta(X^I-z)\in \{q_0,q_1,\dots q_{2^k-1}\}$$
- 其中$X^I=$是整数的indices,z是偏差的index
- $\Delta=\frac{ub-lb}{2^k-1}$
- 把$[lb, ub]$作为量化的范围
- 计算$y=Quant_k(W)Quant_k(x)=\Delta_W\Delta_x(W^Ix^I)$
- 忽略z
- Weight量化
- lb和ub都是channel-wise到W的最小和最大
- channel-wise:直方图统计分析了channel的ub的分布
- BN的folding
- $W_{fold}=\frac{\alpha}{\sqrt{\sigma^2+\epsilon}}W$
- batch norm的parameters和在训练时会变化很大,会对量化造成很大影响
- 由于detection网络的小batch size,均值/方差变化很大,量化造成很大影响
- 固定$\sigma, \mu$
- Activation量化
- 不稳定性: Activation会有一些outlier、之前方法动态统计的会变化很大
- 使用一个子数据集统计,在$γ$和$1-γ$分位数来求ub和lb对activation进行量化
- 不稳定性: Activation会有一些outlier、之前方法动态统计的会变化很大
- 反向传播使用STE
实验
- BN不稳定 AP 0.20->0.24
- Activation分位数 AP 0.20->0.22
- Channel-Wise AP 0.20->0.25
- 总体 0.20->0.29,原始0.32
总结
简单的改进也能取得很大的进步,但在Object Detection上面还是离恢复精度有一定的距离。