Page 112 - 《软件学报》2021年第8期
P. 112
2394 Journal of Software 软件学报 Vol.32, No.8, August 2021
pX y w −
l ( ) w = log( ( , | ) ( )) = pX y w p w log( ( , | )) λ ( ) ,μ ∑ w 2 = 0,σ = 1 (2)
i
λ
其中, λ ∑ ()w 2 是 L2 正则项,通常用于防止模型产生过拟合现象,增强模型泛化能力.在 w 满足正态分布的假设
i
前提下,在模型训练过程中可利用 L2 正则化进行约束,以此得到最终结果.
1.2 典型量化方法
现有的典型量化方法可归纳为 3 种类型,即二值量化、三值量化和定点数量化.
• 二值量化 [15,17,18]
该方法用 1 个比特来代替原始的全精度浮点数.经典的二值量化方法如式(3)所示 [18] .
w q =E(|w f |)×sign(w f ) (3)
其中,E(|w f |)表示全精度权值 w f 的绝对值的平均值,它可被用作缩放参数. sign (w ) = 2I − 1 ,该函数的返回值
f (w ≥ 0)
f
可能为 1 或−1.二值量化方法能够达到 32 倍 [15] 的模型压缩率,并且可通过二进制操作完全代替乘法计算 [18] ,显
著降低存储空间并提高计算效率.但是,二值量化方法往往需要依靠工程经验来选取缩放参数,需要大量的人工
尝试.此外,仅使用 1 比特表示权值将严重降低模型精度.
• 三值量化
受二值量化的启发,三值量化方法利用 3 个值,即{−1,0,+1},并结合缩放参数 [16,26,27] 表示网络模型,即
⎧ α , w > Δ
f
|
⎪ 0, | w ≤ Δ (4)
⎨
f
⎪
⎩ − α , w <− Δ
f
其中缩放参数为
α=E(|w f (i)|), i∈{i||w f (i)|>Δ} (5)
Δ=0.7E(|w f |) [16] 为阈值.三值量化使用 2 个比特来表示原始 DNN 模型的数据,并通过计算 w f 和 w q 之间的最小 L2
距离来获得数据量化后的结果.但是,三值量化模型的推理精度下降仍然十分明显.
• 定点数量化
定点数量化由于实现过程较为简单,因此成为最常用的量化方法 [17,19,28] .该方法的总体思路是,按一定的比
特位数来保留数据中的整数部分和小数部分.将 w f 量化为 k 比特的数据 w q 可表示为
⎧ p = ⎢ ⎣ log (max(| w f |))⎥ ⎦ − (k − 2)
2
⎪ ⎪
⎨ ⎛ w f ⎞ (6)
w = ⎪ q p ⎟ × ⎜ 2 p
⎪ ⎩ ⎝ 2 ⎠
其中,w f 是待量化的输入数据;max(⋅)函数用来计算最大值;p 代表需要进行移位的比特数量,计算 p 的作用在于
有效防止数据溢出.定点数量化方法中,高比特位具有高优先级,所以需要优先保留|w f |中的最大值 max(|w f |),由
i
此计算相应的 p 值,以确保最大的绝对值 max(|w f |)的高位 n=max{i:max(|w f |)>2 }不会被舍去而导致较大的舍入
误差.如式(6)所示,n 可由 log 2 (⋅)函数计算.R(⋅)代表舍入操作,即丢弃浮点数的小数部分.由于符号位占用 1 比特,
对 w f 应用 k 比特的定点数量化方法,则需要保留从第 n 比特开始的连续 k−1 个比特位,即从 n−(k−2)至 n 位的总
共 k−1 个比特,并舍去其他比特位,因此定点数的总比特数量为 k−1 个.
1.3 研究动机
从上文所述可知,以往的量化方法依赖人工选择或经验猜测,需要通过反复实验才能确定相关参数,缺乏行
之有效的理论分析和实践指导,从而导致这些方法难以兼顾量化位宽和模型精度.如上文所述,二值量化和三值
量化会导致模型精度急剧下降;而定点数量化虽在高位宽时表现良好,但针对低位宽量化时也会失效 [17,19] .这些
方法忽视了权值数据的分布规律,缺乏对量化损失的准确评估.由此可见,仅靠减少数据位宽来进行模型量化将
很难保证模型精度.对此,本文在模型量化时充分考虑权值数据的分布规律,并建立相应的定量评估方法来衡量