這是2016年的一篇關於模型量化的文章。
1、背景:
在網絡量化中,有一種極爲誘惑的量化方式:1bit量化——極致的壓縮!但是1bit的網絡在訓練時有諸多細節需要完善。
2、方法:
2.1 Binarization Function
權值的量化有兩種方式:sign和隨機量化,雖然理論上隨機要好一點,但實踐中爲了計算方便一般用sign
但是sign函數其沒有不爲0的梯度,所以用tanh來代替。
2.2 網絡的傳播
- 前向傳播中權值都會與一個權重係數a相乘
反向傳播中權值更新並不是二值的,都是在原32bit精度上進行更新再量化成2bit
2.3對輸入圖像的處理:
輸入圖像不是二值化的,但是由於圖像像素值分佈在[0,255]之間(8bit時),所以可以用8比特來表示,這樣就能將輸入的實值像素值變成二值化的編碼了。
2.4 shift -based BN and Adamax
因爲二值化後,BN操作和優化方式中的乘法計算都能用位移操作來代替,所以速度會快很多,具體算法如下:
2.5 將這種方法推廣到 m bit
3、結果
只能說,作者盡力了,2bit的準確度方面確實不能和全精度的DNN作對比,特別是在大型的數據集上。後續的研究應該往優化量化更新方式或者是選擇性量化的方面去。