【论文阅读笔记】Training Quantized Nets:A Deeper Understanding

本文对比分析了三种量化网络训练方法:确定性舍入、随机舍入和BinaryConnect结合ADAM优化器的效果。研究发现BC-ADAM在训练精度上表现最佳,SR-ADAM虽优于R-ADAM,但在性能上仍落后于BC-ADAM。实验还指出SR-ADAM和BC-ADAM在权重更新、batch_size选择上的显著差异。
摘要由CSDN通过智能技术生成

全文概括

  本文目的在于了解各种训练量化网络的方法的行为差异,成功或失败的原因。

  本文证明了BC (用二进制权值进行 forward backward 更新权重由 full-precision )长期训练的行为具有非凸优化所需的重要退火特性,而经典的舍入算法缺乏这种特性。

  本文证明了,对于非凸优化问题,SR(Stochastic Rounding)不会随着 lr 的衰减而稳定,即不会随着 lr 的衰减而变成低损失迭代 (SR优化方式的变化范围较大,即振荡幅度大)。SR 不同于传统随机方法的地方在于:它无法利用贪婪的局部搜索方法来寻找最优解。

  ADAM 比调整良好的 SGD 要好用。

  BC-ADAM 效果是在三种优化 (R-ADAM、SR-ADAM)算法中最好的


简介

更新权重有两种方式

  1. 全精度权重副本,进行权重更新
  2. 保留全精度权重副本,用 low-precision 权重直接进行权重更新。

三种训练量化网络的方式

1. Deterministic Rounding(R)
  量化权重的方式: Q d ( w ) = s i g n ( w ) ∗ Δ ∗ ⌊ ∣ x ∣ Δ + 1 2 ⌋ Q_d(w)=sign(w) * \Delta * \lfloor \frac {|x|} \Delta + \frac12 \rfloor Qd(w)=sign(w)ΔΔx+21
    其中, Δ \Delta Δ step-size ⌊ ∗ ⌋ \lfloor * \rfloor 为舍入到最接近的量化数
  更新权重的方式: w b t + 1 = Q d ( w b t − α ▽ ∂ f ∂ w b ) w_b^{t+1}=Q_d(w_b^t-\alpha \triangledown \frac {\partial f} {\partial w_b}) wbt+1=Qd(wbtαwbf) forward、backward、parameters update 都在量化数上进行的
2. Stochastic Rounding(SR)
  量化权重的方式: Q s ( w ) = { ⌊ w Δ ⌋ + 1 i f    p ≤ w Δ − ⌊ w Δ ⌋ ⌊ w Δ ⌋ o t h e r w i s e Q_s(w)=\begin{cases} \lfloor \frac w \Delta \rfloor + 1 & if\ \ p \leq \frac w \Delta - \lfloor \frac w \Delta \rfloor \\ \lfloor \frac w \Delta \rfloor & otherwise \end{cases} Qs(w)={Δw+1Δwif  pΔwΔwotherwise
  更新权重的方式: w b t + 1 = Q s ( w b t − α ▽ ∂ f ∂ w b ) w_b^{t+1}=Q_s(w_b^t-\alpha \triangledown \frac {\partial f} {\partial w_b}) wbt+1=Qs(wbtαwbf)
3. BinaryConnect(BC)
  更新权重的方式: w r t + 1 = w r t − α ▽ ∂ f ∂ Q ( w r t ) w_r^{t+1}=w_r^t-\alpha \triangledown \frac {\partial f} {\partial Q(w_r^t)} wrt+1=wrtαQ(wrt)f 即先对权重进行量化,再进行 forward、backward,计算的梯度用于在 full-precision 上进行权重更新。


实验结果

  BC-ADAM 可达 ADAM 训练的模型的精度。

  SR-ADAM 要优于 R-ADAM ,但仍与 BC-ADAM 存在一定的性能差距。

  SR-ADAM 在更新参数时,会改变更多的权重(如果权重和原始权重的符号不同,视为改变),而 BC-ADAM 的改变不超过 20 % 20\% 20% R-ADAM 更新权重时不改变 conv layer 的参数。
在这里插入图片描述

  SR-ADAM 使用大的 batch_size 要好一些(SR-ADAM 1024 要优于 SR-ADAM 128);而 BC 和 传统的经典的 SGC 一样,使用较小的 batch_size 要好一些(BC-ADAM 128 要优于 BC-ADAM 1024)
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值