重训练量化·可微量化参数

本文探讨了深度学习模型压缩中的可微量化参数技术,包括PACT、QIL和LSQ+。这些方法通过训练量化参数来优化模型性能,例如PACT通过训练激活的截断范围,QIL同时训练权重和输入数据的量化参数,而LSQ+则引入了偏移和更好的初始化策略,尤其适用于Swish等激活函数的网络。实验结果显示,这些方法在降低模型精度的同时保持了较好的性能。
摘要由CSDN通过智能技术生成

原文链接:https://www.yuque.com/yahei/hey-yahei/quantization-retrain_differentiable
欢迎引用&转载,但烦请注明出处~

在传统的QAT中,训练的只有权重,而量化参数是根据权重的分布所确定的。有研究者就想,为什么不把量化参数也作为训练对象呢?既然量化参数是可训练的,那么它能被求导,也就是可微的,所以我们可以称这类方法为“可微量化参数”。

PACT

论文:《PACT: Parameterized Clipping Activation for Quantized Neural Networks (ICLR2018)
PArameterized Clipping acTivation(PACT)——这字母缩写取的还真是奇葩……

PACT讨论了ReLU激活下,如何直接训练输入数据的截断范围 α \alpha α
y = P A C T ( x ) = C l a m p ( x , 0 , α ) = { 0 x ∈ ( − ∞ , 0 ) x x ∈ [ 0 , α ) α x ∈ [ α , + ∞ ) y = PACT(x) = Clamp(x, 0, \alpha) = \begin{cases} 0 & x \in (- \infty, 0) \\ x & x \in [0, \alpha) \\ \alpha & x \in [\alpha, +\infty) \end{cases} y=PACT(x)=Clamp(x,0,α)=0xαx(,0)x[0,α)x[α,+)
y ˉ = R o u n d ( y ⋅ 2 N − 1 α ) \bar{y} = Round(y \cdot \frac{2^N - 1}{\alpha}) yˉ=Round(yα2N1)
y ~ = α 2 N − 1 y ˉ \tilde{y} = \frac{\alpha}{2^N-1} \bar{y} y~=2N1αyˉ
跟ReLU6有点像,ReLU6用的是一个固定的 α = 6 \alpha=6 α=6,而PACT让 α \alpha α作为一个可训练参数,直接用目标任务的loss来训练。思路比较简单,求导也不复杂
∂ y ~ ∂ α = ∂ y ~ ∂ y ∂ y ∂ α ≈ S T E ∂ y ∂ α = { 0 x ∈ ( − ∞ , α ) 1 x ∈ [ α , ∞ ) \frac{\partial \tilde{y}}{\partial \alpha} = \frac{\partial \tilde{y}}{\partial y} \frac{\partial y}{\partial \alpha} \mathop{\approx} \limits_{STE} \frac{\partial y}{\partial \alpha} = \begin{cases} 0 & x \in (-\infty, \alpha) \\ 1 & x \in [\alpha, \infty) \end{cases} αy~=yy~αySTEαy={ 01x(,α)x[α,)
众所周知,量化时动态范围越小,那么分辨率就越高。为了避免截断范围 α \alpha α太大,论文里为 α \alpha α引入了L2正则化。并建议,惩罚参数 λ α \lambda_\alpha λα跟权重的惩罚参数 λ \lambda λ保持一致,并且随着量化位宽的增加而减小——直观理解,量化位宽越大,则可以保证有更大的分辨率,那么与之对立的动态范围也应该有更大的增长空间。

QIL

论文:《Learning to Quantize Deep Networks by Optimizing Quantization Intervals with Task Loss (CVPR2019)
Quantization Interval Learning(QIL)

在PACT的基础上,QIL除了训练输入数据的量化参数外,还训练权重的量化参数,并且使用了带offset的量化,实际操作中用一个区间中心 c Δ c_{\Delta} cΔ和区间半宽 d Δ d_\Delta dΔ来表示( Δ \Delta Δ可以是权重 W W W,也可以是输入数据 X X X)。
![image.png](https://img-blog.csdnimg.cn/img_convert/b6093a049a8fd7b69fdb48b8a66765a6.png#align=left&display=inline&height=208&margin=[object Object]&name=image.png&originHeight=284&originWidth=703&size=56409&status=done&style=none&width=515)
$$\begin{aligned}

\hat{w} &= \begin{cases}
0 & |w| < c_W - d_W \
sign(w) \cdot (\alpha_W |w| + \beta_W)^\gamma & c_W - d_W \leq |w| \leq c_W + d_W \
sign(w) & |w| > c_W + d_W
\end{cases}
\
\hat{x} &= \begin{cases}
0 & x < c_X - d_X \
\alpha_X x + \beta_X & c_X - d_X \leq x \leq c_X + d_X \
1 & c_X + d_X
\end{cases}
\end{aligned}
\bar{\Delta} = Round(\hat{\Delta} \cdot q_D)
其 中 , 区 间 宽 度 其中, 区间宽度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值