日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【知识星球】模型量化从1bit到8bit,二值到三值

發布時間:2025/3/20 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【知识星球】模型量化从1bit到8bit,二值到三值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

歡迎大家來到《知識星球》專欄,這里是網絡結構1000變小專題,模型量化是當前工業界的核心技術,我們最近在知識星球更新相關的內容。

作者&編輯 | 言有三

1 1bit量化-二值網絡

所以1bit量化就是二值量化,取值為0/1或者1/-1,下面是一個案例。

有三AI知識星球-網絡結構1000變

Binarized Neural Networks

Binarized Neural Networks是一個二值量化模型,權重和激活值取值只有1和-1。

作者/編輯 言有三

Binarized Neural Networks是一個典型的二值量化模型,權重和激活值取值只有+1或者-1。

將權重和每層的激活值全部二值化的方法有兩種方法。第一種就是符號函數,即x>0,則f(x)=1,x<0,則f(x)=-1。另一種是以一定的概率賦值,類似于Dropout。Binarized Neural Networks就是在激活函數時采用第二種二值化方法,其余都采用符號函數賦值。

針對符號函數的導數并不連續,無法進行梯度傳播的問題,該網絡方法將sign(x)進行松弛,在-1到1之間采用了線性函數f(x) = max(-1,min(1,x))。

二值網絡在訓練過程中還是需要保存實數的參數的。在進行權重參數更新時,裁剪超出[-1,1]的部分,保證權重參數始終是[-1,1]之間的實數。在使用參數時,將參數進行二值化。

在MNIST,CIFAR-10等數據集上實驗精度稍微有所下降但不明顯,模型大學降低為原來的1/32,32bit的float變成1 bit。對于時間代價,作者的優化將速度相對于cublas提升了約3.4倍,而精度不變。類似其他研究不做過多介紹了。

[1] Courbariaux M, Hubara I, Soudry D, et al. Binarized neural networks: Training deep neural networks with weights and activations constrained to+ 1 or-1[J]. arXiv preprint arXiv:1602.02830, 2016.

其他的二值網絡還有BinaryConnect,XNOR Net等,會在知識星球中更新。

2 2bit-三值網絡

只有1和-1兩種值或許不夠,如果再加上0就可以構成三值網絡,還不增加計算量。

有三AI知識星球-網絡結構1000變

Ternary weight networks

Ternary weight networks是一種量化網絡,它將權值量化為3階,即包括1,-1,0三種數值,能取得高達32倍的壓縮率,性能接近全精度的網絡。

作者/編輯 言有三

Ternary weight networks的原理非常簡單,它比二值化網絡多了一階權重,而且這多出來的一階權重還不增加計算量。

具體的實現是通過最小化全精度權值W和三元權值W_t之間的歐氏距離,如上圖,n是卷積核的數量。

實際上我們不直接求解上面的問題獲得W_t,而是采用下面的方法進行映射。

即求得一個閾值?進行分段映射,?的求取式子如下,具體推導可以見文章:

當然訓練的時候只在前向和后向過程中使用量化,但是參數的更新仍然是使用連續的權值,這也是量化網絡常用的技巧。

在各大數據集上使用ResNet18網絡的性能如上,精度優于二值網絡BinaryConnect,XNOR-Net等,略低于全精度網絡。

[1] Li F, Zhang B, Liu B. Ternary weight networks[J]. arXiv preprint arXiv:1605.04711, 2016.

3 8bit網絡

8bit網絡是最常見的量化方法了,有一些成熟的工具可以在訓練完成之后做量化,不過我們這里還是關注在訓練的時候直接完成這個過程。

有三AI知識星球-網絡結構1000變

Integer-Arithmetic Network

本文是一個8 bits量化網絡框架,可以在訓練的時候直接訓練量化模型而無需在訓練后進行量化,它在MobileNets等緊湊模型上都取得了很好的效果。

作者/編輯 言有三

整數和浮點數的具體變換公式如下:

其中S,Z都是量化參數,Z就是對應實數0的量化值,S是一個浮點數因子。q就是量化的整數,r是浮點數,對于不同的矩陣,可以使用不同的量化參數,比如權重使用8bit量化,偏置使用32bit量化。

常見的量化網絡的方式是,先使用浮點數進行訓練,訓練完之后再把權重等進行量化,有的再加上微調。作者們認為這種方式在大模型上效果是很好的,但是對于小模型有較大的精度損失。

因為它們采用的方案是在訓練中完成量化,前向傳播中使用量化,反向時仍然按照全精度的浮點進行計算,具體來說:

(1) 權重在卷積前量化,如果使用了batch normalization則將其與權重合并。

(2) 激活值在即將被后面的神經元使用時再量化,即在激活函數之后。

每一層的具體量化公式如下:

n是量化階數,對于8bit就是256,a,b就是最大最小值,權重和激活的取值方法略有不同,可以查看原文細節。

結果如下:

與全精度模型以及二值,三值模型比較,精度介于全精度和二值,三值模型之間。

上圖展示了在同樣的計算時間下,MobileNets量化模型能夠取得比浮點型模型更好的結果。

[1] Jacob B, Kligys S, Chen B, et al. Quantization and training of neural networks for efficient integer-arithmetic-only inference[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 2704-2713.

更多量化和剪枝的內容請移步有三AI知識星球。

4 關于有三AI知識星球

有三AI知識星球是我們繼公眾號之后重點打造的原創知識學習社區,有需要的同學可以閱讀下文了解生態。

大家可以預覽一些內容如下,添加有三微信Longlongtogo加入可以優惠30元。

以上所有內容

加入有三AI知識星球即可獲取

來日方長

點擊加入

不見不散

更多精彩

每日更新

轉載文章請后臺聯系

侵權必究

往期精選

  • 【知識星球】數據集板塊重磅發布,海量數據集介紹與下載

總結

以上是生活随笔為你收集整理的【知识星球】模型量化从1bit到8bit,二值到三值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。