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

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

全文概括

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

  本文证明了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)
  量化权重的方式:Qd(w)=sign(w)∗Δ∗⌊∣x∣Δ+12⌋Q_d(w)=sign(w) * \Delta * \lfloor \frac {|x|} \Delta + \frac12 \rfloorQd(w)=sign(w)ΔΔx+21
    其中,Δ\DeltaΔ step-size ⌊∗⌋\lfloor * \rfloor为舍入到最接近的量化数
  更新权重的方式:wbt+1=Qd(wbt−α▽∂f∂wb)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)
  量化权重的方式:Qs(w)={⌊wΔ⌋+1if  p≤wΔ−⌊wΔ⌋⌊wΔ⌋otherwiseQ_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
  更新权重的方式:wbt+1=Qs(wbt−α▽∂f∂wb)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)
  更新权重的方式:wrt+1=wrt−α▽∂f∂Q(wrt)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、付费专栏及课程。

余额充值