Page 115 - 《软件学报》2021年第8期
P. 115
龚成 等:一种超低损失的深度神经网络量化压缩方法 2397
λ=2 时,数据只能被量化为 4 个定点数{−1.5,−0.5,0.5,1.5}.当 k>2,将出现位宽空闲,未能表示有效数据的比特位
将会造成位宽浪费.因此,需要更紧致的量化间隔,比如λ=1 或者λ=0.5.
Fig.3 λ can scale the standard normal distribution to different ranges
图 3 标准正态分布由λ放缩到不同范围
μL2Q 的量化值择优目标是获得式(8)中量化损失为最小的值,可表示为
∗
λ = argmin( ) J (13)
λ
*
其中,λ 是使得量化损失最小的缩放参数 与穷举求解的方法 [31] 不同,本文探索在已知的权值数据分布下,求解λ *
的最优解析解.量化损失可进一步表示为
n n
2
2
J = || w − w || ∝ 2 ||ϕ − w′ || = 2 d ∑ tR ∫ (t − q ) p ( )dt t ∝ ∑ i s ∫ i s (t − q ) p ( )dt t (14)
q f 2 q 2 ∈ i i
i= 1 i i= 1 1 −
其中,d 是ϕ的维度,s i 是分割边界,q i 是每个量化区域 R i 中的量化值,p(t)=N(t;0,1).为了求解式(13),还需要定义式
(14)中 s i 和 q i 的具体值,它们只依赖于λ.
⎧ −∞ , i = 0
⎪
s = i ⎪⎛ i − ⎨⎜ n ⎞ ⎟ λ , others, q = i ⎛ ⎜ i − n + 1 ⎞ ⎟ λ ,i = 1,2,...,n (15)
⎝ 2 ⎠ ⎪ ⎝ 2 2 ⎠
⎪ +∞ , i = n
⎩
k
其中,n=2 ,k 为量化位宽.
至此,式(14)中的量化损失 J 只与参数λ相关,并且分析可知,J 是关于λ的可导凸函数.因此,通过求解量化损
失的极值即可得到量化损失的最小值.μL2Q 的量化损失 J,在不同量化位宽 k 下关于λ的变化曲线如图 4 所示,
红色五角星代表相应曲线的极值点.
Fig.4 Curve of quantization loss J with different λ
图 4 量化损失 J 关于λ值的曲线
由图 4 可知,在各种位宽条件下,J 都存在最小值,即λ都存在最优解.通过上述方法可计算 1~8 比特位宽下的
λ的最优解,并能够获得相应的最小量化损失,其结果见表 1.