Note_ Differentiable Soft Quantization: Bridging Full-Precision and Low-Bit Neural Networks

本文提出了一种名为DSQ的可微量化方法,解决了传统二元和均匀量化函数在训练中导致的梯度消失问题,从而改善模型训练的效率和精度。DSQ通过引入可微对称函数模拟量化过程,能够在保持训练可控性的同时,有效平衡剪枝误差和近似误差,减少整体量化误差。
摘要由CSDN通过智能技术生成

Ruihao Gong 1,2 Xianglong Liu 1∗ Shenghu Jiang 1,2 Tianxiang Li2,3 Peng Hu 2Jiazhen Lin 2 Fengwei Yu 2Junjie Yan2

IEEE/CVF International Conference on Computer Vision (ICCV)
CCF A
2019

一、动机和贡献

动机:
由于量化函数(均匀量化和二元量化)的导数大多数情况下都是 0 0 0,因此,使用这些方法进行量化,往往会导致训练的困难,以及模型精度的下降。
贡献:
本文提出一种“可微的”软量化方法(DSQ)来解决上述问题,其主要优势为:

  • DSQ函数可以较为精确地模拟二元/均匀量化函数,同时保持训练过程中的可控性;
  • 由于DSQ函数处处可微(相对于之前量化函数导数处处为0的情况),因此可以很容易且精确地应用于实际的网络训练中;
  • 根据DSQ,可以平衡“剪枝误差”和“近似误差”(量化误差包含的两种形式),从而减少整体误差。

二、主要算法

2.1 可微对称函数

二元量化可以表示为:
Q B ( x ) = sgn ( x ) = { + 1 , if  x > 0 , − 1 , otherwise . Q_B(x)=\text{sgn}(x)=\begin{cases} +1,&\text{if~} x>0,\\ -1,&\text{otherwise}. \end{cases} QB(x)=sgn(x)={+1,1,if x>0,otherwise.
均匀量化可以表示为:
Q U ( x ) = round ( x Δ ) Δ , Q_U(x)=\text{round}(\frac{x}{\Delta})\Delta, QU(x)=round(Δx)Δ,
其中,范围 ( l , u ) (l,u) (l,u) 分为 2 b − 1   ( b ∈ I + ) 2^b-1~(b\in\mathbb{I}^+) 2b1 (bI+) 个区间 P i \mathcal{P}_i Pi,区间长度定义为 Δ = u − 1 2 b − 1 \Delta=\frac{u-1}{2^b-1} Δ=2b1u1

由于量化函数的导数几乎处处为0,因此引入一种“可微对称函数”来模拟二元/均匀量化器,其形式为:
φ ( x ) = s tanh ⁡ ( k ( x − m i ) ) , if  x ∈ P i , \varphi(x)=s\tanh\left(k(x-m_i)\right),\quad\text{if}~x\in \mathcal{P}_i, φ(x)=stanh(k(xmi)),if xPi,
其中, m i = l + ( i + 0.5 ) Δ m_i=l+(i+0.5)\Delta mi=l+(i+0.5)Δ s = 1 tanh ⁡ ( 0.5 k Δ ) s=\frac{1}{\tanh(0.5k\Delta)} s=tanh(0.5kΔ)1。参数 k k k 控制了函数的形状;当 k ↑ k\uparrow k,函数越接近于阶梯函数(量化可以看成多个阶梯函数叠加的效果)。
在这里插入图片描述

2.2 DSQ

根据可微对称函数,可以得到DSQ为:
Q S ( x ) = { l , x < l , u , x > u , l + Δ ( i + φ ( x ) + 1 2 ) , x ∈ P i . Q_S(x)=\begin{cases} l,&x<l,\\ u,&x>u,\\ l+\Delta\left(i+\frac{\varphi(x)+1}{2}\right),&x\in\mathcal{P} _i. \end{cases} QS(x)= l,u,l+Δ(i+2φ(x)+1),x<l,x>u,xPi.
在这里插入图片描述

因此 ,在实际中,通常利用函数函数 Q S ( ⋅ ) Q_S(\cdot) QS() 在“向前传播”阶段模拟量化,在“向后传播”阶段进行参数更新。

2.3 DSQ的超参数选择

2.3.1 特征变量 α \alpha α 的选择

本文引入“特征变量characteristic variable” α \alpha α 来表征DSQ和标准量化函数的差异。本文定义 α \alpha α 为最大点之间的距离,如下图所示:
在这里插入图片描述

根据上图可以观察到, α \alpha α 越小,DSQ就可以约精确地模拟传统量化函数,因此将 α \alpha α 定义为:
α = 1 − tanh ⁡ ( 0.5 k Δ ) = 1 − 1 s \alpha=1-\tanh(0.5k\Delta)=1-\frac{1}{s} α=1tanh(0.5kΔ)=1s1
那么,DSQ的精度就取决于参数 α \alpha α Δ \Delta Δ。因此,可以将 s , k s,k s,k 表示为 s = 1 1 − α s=\frac{1}{1-\alpha} s=1α1 k = 1 Δ log ⁡ ( 2 α − 1 )   ( Δ = u − l 2 b − 1 , φ ( 0.5 Δ ) = 1 ) k=\frac{1}{\Delta}\log(\frac{2}{\alpha}-1)~\left(\Delta=\frac{u-l}{2^b-1},\varphi(0.5\Delta)=1\right) k=Δ1log(α21) (Δ=2b1ul,φ(0.5Δ)=1)

那么如何对 α \alpha α 进行优化?可以选用对损失函数优化的方式得到,具体优化问题表示为:
min ⁡ α L ( α ; x , y ) s . t . ∥ α ∥ 2 < λ . \min_\alpha \mathcal{L}(\alpha;x,y)\quad s.t.\|\alpha\|_2<\lambda. αminL(α;x,y)s.t.∥α2<λ.
因此,可以通过“向后传播”更新 α \alpha α :
∂ y ∂ α = { 0 , x < l , 0 , x > u , ∂ Q S ( x ) ∂ α , x ∈ P i . \frac{\partial y}{\partial \alpha}=\begin{cases} 0,&x<l,\\ 0,&x>u,\\ \frac{\partial Q_S(x)}{\partial\alpha},&x\in\mathcal{P}_i. \end{cases} αy= 0,0,αQS(x),x<l,x>u,xPi.

2.3.2 参数 l , u l,u l,u 的更新

类似于 α \alpha α 更新,参数 l , u l,u l,u 的更新可以表示为:
∂ y ∂ l = { 1 , x < l , 0 , x > u , 1 + q ∂ Δ ∂ l + Δ 2 ∂ φ ( x ) ∂ l , x ∈ P i , \frac{\partial y}{\partial l}=\begin{cases} 1,&x<l,\\ 0,&x>u,\\ 1+q\frac{\partial \Delta}{\partial l}+\frac{\Delta}{2}\frac{\partial \varphi(x)}{\partial l},&x\in\mathcal{P}_i, \end{cases} ly= 1,0,1+qlΔ+2Δlφ(x),x<l,x>u,xPi,
∂ y ∂ u = { 0 , x < l , 1 , x > u , q ∂ Δ ∂ u + Δ 2 ∂ φ ( x ) ∂ u , x ∈ P i , \frac{\partial y}{\partial u}=\begin{cases} 0,&x<l,\\ 1,&x>u,\\ q\frac{\partial \Delta}{\partial u}+\frac{\Delta}{2}\frac{\partial \varphi(x)}{\partial u},&x\in\mathcal{P}_i, \end{cases} uy= 0,1,quΔ+2Δuφ(x),x<l,x>u,xPi,
其中, q = i + 1 2 ( φ ( x ) + 1 ) q=i+\frac{1}{2}\left(\varphi(x)+1\right) q=i+21(φ(x)+1)

2.4 算法流程

在这里插入图片描述

注意:DSQ需结合 sgn ( ⋅ ) \text{sgn}(\cdot) sgn() 函数才可以模拟传统梁阿器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值