前言
在量化中,常用的量化函数一般的四舍五入函数,即在量化时以0.5为阈值,当超过0.5时,结果为1;不超过0.5时,结果为0.这就是所谓的四舍五入函数。很多时候,直接进行四舍五入量化,结果往往不是最优的。为什么不是最优的,可以通过下面一个简单的例子来进行说明。
对于一个训练好的网络来说,其权重为www,当进行量化时,可以把量化带来的权重的变化Δw\Delta wΔw视为一种扰动,那么由于扰动而带来的任务损失的变化表述为下式:

这里主要用到了二阶泰勒展开。因为网络权重已经训练收敛,一阶项一阶接近0,所以忽略一阶项,只保留二阶项。二阶项中的海森矩阵H(w)H^{(w)}H(w)表征了不同权重之间的相互作用。
以下面的一个简单的例子说明:

对于四舍五入函数来说,其忽略了H(w)H^{(w)}H(w)中的非对角项,即忽略了不同权重之间的相互影响,只考虑每个权重在量化前后的变化。很明显,如果不考虑对角项,只需要考虑Δw\Delta wΔw的幅值即可,因为其取平方之后,一定为正值。但是由于存在非对角项Δw1Δw2\Delta w_1 \Delta w_2Δw1Δw2 ,此时就要考虑Δw1\Delta w_1Δw1和Δw2\Delta w_2Δw2 的正负符号,如果它们的符号相反,会进一步的改善该损失。因此为了最小化该量化损失,就需要在对角项和非对角项之间做一个折衷权衡。四舍五入因为没有考虑非对角项,其解自然是次优的。
Method
上面介绍了四舍五入函数的缺陷,下面该论文提出一种自适应的舍入方法。
量化后的权重表示为:
w^i(ℓ)∈{
wi(ℓ), floor ,wi(ℓ), ceil } \widehat{\mathbf{w}}_{i}^{(\ell)} \in\left\{\mathbf{w}_{i}^{(\ell), \text { floor }}, \mathbf{w}_{i}^{(\ell), \text { ceil }}\right\} w
i(ℓ)∈{
wi(ℓ), floor ,wi(ℓ), ceil }
其中:
wi(ℓ), floor =s(ℓ)⋅clip(⌊wi(ℓ)s(ℓ)⌋,n,p),wi(ℓ), ceil=s(ℓ)⋅clip(⌈wi(ℓ)s(ℓ)⌉,n,p)\mathbf{w}_{i}^{(\ell), \text { floor }}=\mathrm{s}^{(\ell)} \cdot \operatorname{clip}\left(\left\lfloor\frac{\mathbf{w}_{i}^{(\ell)}}{\mathrm{s}^{(\ell)}}\right\rfloor, \mathrm{n}, \mathrm{p}\right), \mathbf{w}_{i}^{(\ell), \text { ceil}}=\mathrm{s}^{(\ell)} \cdot \operatorname{clip}\left(\left\lceil\frac{\mathbf{w}_{i}^{(\ell)}}{\mathrm{s}^{(\ell)}}\right\rceil, \mathrm{n}, \mathrm{p}\right)wi(ℓ), floor =s(ℓ)⋅clip(⌊s(ℓ)wi(ℓ)⌋,n,p),wi(ℓ), ceil=s(ℓ)⋅clip(⌈s(ℓ)wi(ℓ)⌉,n,p),
那么,量化带来的扰动就表示为Δwi(ℓ)=wi(ℓ)−w^i(ℓ)\Delta \mathbf{w}_{i}^{(\ell)}=\mathbf{w}_{i}^{(\ell)}-\widehat{\mathbf{w}}_{i}^{(\ell)}Δwi(ℓ)=wi(ℓ)−w i(ℓ)。
需要注意,在优化舍入函数前,尺缩系数就已经确定下来了。而关于如何确定尺缩系数S,这篇论文后面也进行了相关研究。在此先不对s的确定做太多讨论,还是主要集中在舍入函数的优化。
根据上述讨论,如何获得最佳的舍入函数即可等价于下述的优化目标函数:
argminΔwE[L(x,y,w+Δw)−L(x,y,w)](12) \underset{\Delta \mathbf{w}}{\arg \min } \mathbb{E}[\mathcal{L}(\mathbf{x}, \mathbf{y}, \mathbf{w}+\Delta \mathbf{w})-\mathcal{L}(\mathbf{x}, \mathbf{y}, \mathbf{w})] (12)
自适应舍入策略:改进模型后训练量化

本文探讨了在模型量化中,四舍五入策略的不足,并提出了Adaptive Rounding方法,通过优化权重汉森矩阵来降低量化损失。通过假设简化计算复杂度,进而提出Adaround算法,利用软量化和正则项控制权重向0或1收敛,解决了离散优化难题。
最低0.47元/天 解锁文章
1259

被折叠的 条评论
为什么被折叠?



