自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

OpenHarmony啃論文俱樂部—一種深度神經(jīng)網(wǎng)壓縮算法

系統(tǒng) OpenHarmony
DeepCABAC 是一種用于 DNN 的通用壓縮算法,它基于應(yīng)用于 DNN 參數(shù)的上下文自適應(yīng)二進制算術(shù)編碼器(CABAC)。

??想了解更多關(guān)于開源的內(nèi)容,請訪問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

【技術(shù)DNA】

【ELT.ZIP】OpenHarmony啃論文俱樂部—一種深度神經(jīng)網(wǎng)壓縮算法-開源基礎(chǔ)軟件社區(qū)

【智慧場景】

**********

********************

********************

********************

********************

********************

********************

********************

********************

********************

********************

********************

********************

********************

********************

*****************

*****************

場景

自動駕駛 / AR

語音信號

流視頻

GPU 渲染

科學(xué)、云計算

內(nèi)存縮減

科學(xué)應(yīng)用

醫(yī)學(xué)圖像

數(shù)據(jù)庫服務(wù)器

人工智能圖像

文本傳輸

GAN媒體壓縮

圖像壓縮

文件同步

數(shù)據(jù)庫系統(tǒng)

通用數(shù)據(jù)

技術(shù)

點云壓縮

?稀疏快速傅里葉變換?

有損視頻壓縮

網(wǎng)格壓縮

動態(tài)選擇壓縮算法框架

無損壓縮

分層數(shù)據(jù)壓縮

醫(yī)學(xué)圖像壓縮

無損通用壓縮

人工智能圖像壓縮

短字符串壓縮

GAN 壓縮的在線多粒度蒸餾

圖像壓縮

文件傳輸壓縮

快速隨機訪問字符串壓縮

高通量并行無損壓縮

開源項目

??Draco??? / 基于深度學(xué)習(xí)算法/??PCL???/??OctNet??

??SFFT??

??AV1??? / ??H.266編碼??? / ??H.266解碼???/??VP9??

??MeshOpt??? / ??Draco??

??Ares??

??LZ4??

??HCompress??

??DICOM??

??Brotli??

??RAISR??

??AIMCS??

??OMGD??

??OpenJPEG??

??rsync??

??FSST??

??ndzip??

引言

  • 近年來,為了追求讓深度神經(jīng)網(wǎng)絡(luò)(DNNs)在復(fù)雜的機器學(xué)習(xí)任務(wù)中能夠表現(xiàn)出更良好的性能,采取了不斷擴大 DNNs 尺寸的方式,這就使模型在內(nèi)存方面變得越來越復(fù)雜,不僅意味著更大的內(nèi)存需求,還很可能造成更慢的運行時和更多的能量消耗,因此便需要對它們進行有效的壓縮已滿足多方面要求。DeepCABAC 是一種用于 DNN 的通用壓縮算法,它基于應(yīng)用于 DNN 參數(shù)的上下文自適應(yīng)二進制算術(shù)編碼器(CABAC)。CABAC 最初是針對于 H.264 / AVC 視頻編碼標(biāo)準(zhǔn)而設(shè)計的,并且成為了視頻壓縮無損壓縮部分的最先進技術(shù)。DeepCABAC 運用了一種新的量化方案,實現(xiàn)了最小化信息率失真函數(shù),同時也考慮了量化對 DNN 性能的影響。

  • 深度神經(jīng)網(wǎng)絡(luò)成功可以歸因于三個現(xiàn)象:(1)獲得大量數(shù)據(jù)(2)研究人員設(shè)計了新的優(yōu)化算法和模型架構(gòu),允許訓(xùn)練非常深入的神經(jīng)網(wǎng)絡(luò)(3)增長計算資源的可用性。

【ELT.ZIP】OpenHarmony啃論文俱樂部—一種深度神經(jīng)網(wǎng)壓縮算法-開源基礎(chǔ)軟件社區(qū)

  • 在資源受限的設(shè)備(如移動可穿戴設(shè)備)和分布式學(xué)習(xí)場景(如聯(lián)邦學(xué)習(xí))上部署深度模型的需求也越來越大。這些方法在隱私、延遲和效率問題上有直接的優(yōu)勢。然而,這些模型所需參數(shù)數(shù)量不斷增長,這意味著模型在內(nèi)存方面變得越來越復(fù)雜。高內(nèi)存復(fù)雜性極大地增加了神經(jīng)網(wǎng)絡(luò)在用例中的適用性,特別是在聯(lián)邦學(xué)習(xí)中,因為網(wǎng)絡(luò)的參數(shù)是通過帶寬有限的通信信道傳輸?shù)摹?/li>

【ELT.ZIP】OpenHarmony啃論文俱樂部—一種深度神經(jīng)網(wǎng)壓縮算法-開源基礎(chǔ)軟件社區(qū)

  • 而引出模型壓縮顯得尤為重要:只留下解決任務(wù)所需的內(nèi)存,降低通信和計算成本,壓縮算法有利于生成更高的熵,因為它們使數(shù)據(jù)更加緊湊。我們使用一個基礎(chǔ)數(shù)據(jù)集,用各種算法壓縮每個文件。

信源編碼

  • 通常所謂的編碼,更確切地說是“壓縮”,即去掉一些多雜的信息一保留必要的信息,再進行傳輸,因此在傳輸前要進行多種處理。其中為 了提高傳輸效率的有效性編碼叫做信源編碼。信源編碼是信息論的一個分支,研究所謂碼的性質(zhì)。 通常由編碼器和解碼器兩部分組成。

  • 如圖,首先,編碼器通過兩個過程將概率源 P(w)的輸入樣本 w 映射到二進制表示b,將輸入量化,將其映射為整數(shù) i = Q(w)。然后,通過一個二值化過程將該整數(shù)映射為其對應(yīng)的二進制表示形式 b = b (i)。 解碼器通過應(yīng)用逆函數(shù) B?1(B) = i 類比地將二進制表示映射回其整數(shù)值,并為其分配一個重構(gòu)值(或量化點)Q?1(i) = Q。我們強調(diào) Q - 1 不一定是 Q 的倒數(shù)。

簡單地說,源編碼研究的是查找最大限度地壓縮一組輸入樣本的代碼,同時在容錯約束下保持輸入值和重構(gòu)值之間的誤差。我們同時還可以分為兩種類型的碼,所謂的無損碼和有損碼(往期的文章里講述過,感興趣可以回顧,篇幅原因只做簡述)。

無損編碼

  • 無損碼也稱熵編碼或可逆編碼:Huffman 編碼、算術(shù)編碼、字典編碼。

有損編碼

  • 有損碼也稱不可逆碼:標(biāo)量量化、向量量化、預(yù)測編碼、變換編碼、JPEG、子帶編碼、小波編碼、JPEG2000、分析-綜合編碼。

信道編碼

信道是指傳輸信號的通道,但信號在傳輸過程中往往由于各種原因,在傳輸中會產(chǎn)生誤碼,只要接收設(shè)備能判別出1碼和0碼,信號就不會丟失,因此,在散字信號傳輸中最重要的,也就是防止誤碼,也就是要盡量降低誤碼率,因此,要在信號源的原數(shù)碼序列中用某些編碼,以實現(xiàn)自動糾錯或檢錯的目的,進就是信道編碼或糾錯編碼。

【ELT.ZIP】OpenHarmony啃論文俱樂部—一種深度神經(jīng)網(wǎng)壓縮算法-開源基礎(chǔ)軟件社區(qū)

  • 人類在信道編碼上的第一次突破發(fā)生在1949年。R.Hamming和M.Golay提出了第一個實用的差錯控制編碼方案——漢明碼。

CABAC

CABAC的發(fā)展

  • 比較早流行的是 H.264/AVC ,CABAC(上下自適應(yīng)二進制算術(shù)編碼Context-adaptive binary arithmetic coding )是一種用于 H.264/AVC 和 HEVC 的熵編碼形式。高效視頻編碼 (HEVC)由視頻編碼聯(lián)合協(xié)作團隊 (JCT-VC) 開發(fā),它的編碼效率有望比 H.264/AVC 提高 50%。HEVC 使用幾種新工具來提高編碼效率,包括更大的塊和變換大小、額外的環(huán)路濾波器和高度自適應(yīng)的熵編碼。

CABAC的優(yōu)勢

  • 算術(shù)編碼是一種熵編碼,它可以通過有效地將符號(即語法元素)映射到具有非整數(shù)位數(shù)的碼字來實現(xiàn)接近序列熵的壓縮。 在 H.264/AVC 中,CABAC 比基于 Huffman 的 CAVLC 提高了 9% 到 14%。 在 HEVC (HM-3.0) 的早期測試模型中,CABAC 比 CAVLC 提高了 5%–9%。

CABAC涉及三個主要功能

  • CABAC 涉及三個主要功能:二值化、上下文建模和算術(shù)編碼。

二值化

  • 二值化將語法元素映射到二進制符號(bins)。二值化的方案共有7種:
  1. 一元碼(Unary)。
  2. 截斷一元碼(TU,Truncated Unary)。
  3. k階指數(shù)哥倫布編碼(kth order Exp-Golomb,EGk)。
  4. 定長編碼(FL,F(xiàn)ixed-Length)。
  5. mb_type與sub_mb_type特有的查表方式。
  6. 4位FL與截斷值為2的TU聯(lián)合二值化方案。
  7. TU與EGk的聯(lián)合二值化方案(UEGk,Unary/kth order Exp-Golomb)。

上下文建模

  • 以JM中的上下文結(jié)構(gòu)體為例。
//! struct for context management
struct bi_context_type
{
unsigned long count;
byte state; //uint16 state; // index into state-table CP
unsigned char MPS; // Least Probable Symbol 0/1 CP
};
  • 上下文包含兩個變量:MPS,pStateIdx(count只是用于計數(shù))。在CABAC編碼的過程中會碰到需要修改這兩個值的情況(如上面的狀態(tài)變換),這些修改都是以上下文為單位的。

算術(shù)編碼

  • 該過程可分為5個步驟
    1.通過當(dāng)前編碼器區(qū)間范圍R得到其量化值ρ作為查表索引,然后利用狀態(tài)索引pStateIdx與ρ進行查表得出RLPS的概率區(qū)間大小。
    2.根據(jù)要編碼的符號是否是MPS來更新算術(shù)編碼中的概率區(qū)間起點L以及區(qū)間范圍R。
    3.pStateIdx==0表明當(dāng)前LPS在上下文狀態(tài)更新之前已經(jīng)是0.5的概率,那么此時還輸入LPS,表明它已經(jīng)不是LPS了,因此需要進行LPS、MPS的轉(zhuǎn)換。
    4.更新上下文模型概率狀態(tài)。
    5.重歸一化,輸出編碼比特。

由上文, 編碼器希望用盡可能少的數(shù)據(jù)樣本找到一個(本地)解決方案。Deep- CABAC被提出。

Deep- CABAC

Deep- CABAC 的編碼程序

  1. Deep- CABAC 按行長順序掃描網(wǎng)絡(luò)各層的權(quán)值參數(shù)。
  2. 選擇一個特定的超參數(shù)β,將定義量化點集。
  3. 對權(quán)重值應(yīng)用量化器,以最小化各自的加權(quán)率失真函數(shù)。
  4. 通過應(yīng)用改編版本的 CABAC 壓縮量化參數(shù)。
  5. 對網(wǎng)絡(luò)進行重構(gòu),并對網(wǎng)絡(luò)的精度進行測量。對于不同的超參數(shù)β重復(fù)這個過程,直到在精度和網(wǎng)絡(luò)大小之間達(dá)到預(yù)期的平衡。
  6. 對一組超參數(shù)β重復(fù)該過程,直到所需的精度 vs。實現(xiàn)了-size 權(quán)衡。

Deep-CABAC 編碼器

Deep-CABAC 無損編碼器

  1. 第一個SigFlag 決定權(quán)重元素是否是一個重要元素,即表示權(quán)值是否為 0。然后使用二進制算術(shù)編碼器對這個 bin 進行編碼,根據(jù)其各自的上下文模型(用灰色顏色編碼)。上下文模型最初設(shè)置為 0.5(因此,權(quán)重元素為 0 或不為 0 的概率為 50%),但隨著 DeepCABAC 編碼更多的元素,將自動適應(yīng)權(quán)重參數(shù)的本地統(tǒng)計數(shù)據(jù)。
  2. 如果元素不為 0,則根據(jù)其各自的上下文模型對符號庫或 SignFlag 進行類似的編碼。

  1. 一系列容器被類比編碼,確定元素是否大于 1,2,…,n∈n。數(shù)字 n 成為編碼器的超參數(shù)。
  2. 剩余部分使用指數(shù)-Golomb 編碼代碼,其中一元部分的每個 bin 也相對于它們的上下文模型進行編碼。只有固定長度的代碼部分沒有使用上下文模型進行編碼(用藍(lán)色顏色編碼)。

Deep-CABAC 有損編碼器

  • 找到將量化點(或聚類中心)最優(yōu)分配給每個權(quán)重參數(shù)的量化器 Q。
  1. 量化點:因為為大量的點找到正確的映射 Q - 1 是非常復(fù)雜的,我們用一個特定的步長Δ來約束它們彼此之間的等距離。即,每個點 qk 可以改寫為 qk = ΔIk, ik∈Z。這不僅極大地簡化了問題,而且也鼓勵了定點表示,可以利用定點表示以較低的復(fù)雜度執(zhí)行推理。
  2. 賦值:因此,量化器有兩個可配置的超參數(shù)β = (Δ, λ),前者定義量化點的集合,后者定義量化強度。一旦給定一個特定的元組,量化器 Qβ將通過最小化加權(quán)率失真函數(shù) 將每個權(quán)重參數(shù)賦給對應(yīng)的量化點 qk。

  1. DeepCABAC-版本1 (DC-v1):在 DC-v1 中,我們首先利用可擴展貝葉斯技術(shù)估計 FIM 的對角線。得到了每個參數(shù)的平均值μj 和標(biāo)準(zhǔn)差 σj,其中前者可以解釋為其(新的)值(即 wi→μi),而后者則是它們對擾動的“魯棒性”的度量。在估算完 fim -對角線后,我們將考慮的步長集定義如下:

  • 其中σmin 為最小標(biāo)準(zhǔn)差,wmax 為幅度值最大的參數(shù)。然后 S 是量化器的超參數(shù),控制量化點的 “粗糙程度”。
  1. DeepCABAC-版本2 (DC-v2):因為版本1需要估計 FIM 的對角線,成本還是很高??紤]對整個 網(wǎng) 絡(luò) 直 接 嘗 試 尋 找 一 個 好 的 候 選 集 合 Δ∈{Δ0 , … , Δm?1}。通過應(yīng)用第一輪網(wǎng)格搜索算法,同時應(yīng)用最近鄰量化方案(即λ = 0)來實現(xiàn)這一點。在有限的計算預(yù)算下,這種方法的優(yōu)點是我們可以直接搜索更優(yōu)步長集Δ。

實驗

將標(biāo)量 huffman、csr-huffman和 bzip2無損編碼算法應(yīng)用于量化網(wǎng)絡(luò)后獲得的最佳壓縮結(jié)果。括號內(nèi)是結(jié)果的top-1精度,括號內(nèi)是通過非零參數(shù)的數(shù)量除以參數(shù)總數(shù)所獲得的稀疏比。

【ELT.ZIP】OpenHarmony啃論文俱樂部—一種深度神經(jīng)網(wǎng)壓縮算法-開源基礎(chǔ)軟件社區(qū)

深度壓縮包括應(yīng)用稀疏化技術(shù),然后是k-Means算法,然后是CSR-Huffman熵編碼器,最后是將聚類中心微調(diào)到損失函數(shù)。相比之下,我們可以通過簡單地 應(yīng)用DeepCABAC 獲得更高精度的壓縮性能,而無需對量化點進行任何后先驗微調(diào)。

使用三種不同的量化器對Small-VGG網(wǎng)進行量化,然后使用不同的通用無損編碼器對它們進行壓縮。具體地,我們利用 DC-v2、加權(quán)Lloyd算法和最近鄰量化器對模型進行量化。然后應(yīng)用標(biāo)量Huffman代碼、CSR- Huffman代碼 、bzip2算法和DeepCABAC的cabac組件。此外,我們還計算了量化網(wǎng)絡(luò)的一階熵,從而測量了網(wǎng)絡(luò)的熵?zé)o損壓縮所獲得的壓縮比不同。

【ELT.ZIP】OpenHarmony啃論文俱樂部—一種深度神經(jīng)網(wǎng)壓縮算法-開源基礎(chǔ)軟件社區(qū)

輕易看到,CABAC 能夠在所有量化版本的 Small-VGG16 網(wǎng)絡(luò)中獲得更高的壓縮增益。使用 CABAC 的好處在于其固有的靈活性,它可以用于獲取權(quán)重參數(shù)的先驗統(tǒng)計數(shù)據(jù)。DeepCABAC通過定義前文所述的二值化過程,能夠快速捕獲最大值接近于0的單峰分布和非對稱分布的統(tǒng)計信息。此外,也方便CABAC捕獲一行中元素之間的相關(guān)性。這也很重要,因為 CABAC的估計是以自回歸的方式更新的,因此,它的壓縮性能也取決于掃描順序。如上表所示,CABAC能夠捕捉權(quán)重參數(shù)之間的相關(guān)性,從而將它們壓縮到參數(shù)分布的一階熵之外。與之前提出的通用熵編碼器(如標(biāo)量 Huffman、CSR-Huffman)相比,由于其平均碼長受到一階熵的限制,因此不可能獲得比 CABAC更低的碼長,因此該特性更加突出了它的優(yōu)越性。

總結(jié)

  • H.264/HEVC 和 H.265/HEVC 視頻編碼標(biāo)準(zhǔn)中采用的最先進的通用無損編碼器——上下文的自適應(yīng)二進制算術(shù)編碼器 (CABAC),論文中提出了一種新的深度神經(jīng)網(wǎng)絡(luò)壓縮算法DeepCABAC,碼長更短更靈活,減少訓(xùn)練次數(shù)和大量數(shù)據(jù)的訪問。技術(shù)一代一代更新,后浪奔涌,前浪不是沉舟或病樹,而是巨人的肩膀,引領(lǐng)后輩,奔向更神秘的新世界。

??想了解更多關(guān)于開源的內(nèi)容,請訪問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??。

責(zé)任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2022-09-19 14:25:35

JSON壓縮算法

2022-04-07 15:03:07

Harmony計算機鴻蒙

2022-05-12 15:05:32

云計算數(shù)據(jù)壓縮

2022-06-08 16:29:45

無損壓縮方案分布式

2022-06-08 11:46:29

字符串鴻蒙

2022-05-13 22:44:35

物聯(lián)網(wǎng)算法鴻蒙

2022-06-15 16:06:29

LZ4 算法硬件加速

2022-08-22 17:36:13

啃論文方法啃論文俱樂部

2022-06-15 15:44:21

無損數(shù)據(jù)壓縮鴻蒙

2022-04-20 20:37:58

鴻蒙操作系統(tǒng)

2022-09-06 15:46:52

speexdsp鴻蒙

2022-10-18 16:14:28

2022-05-13 23:03:25

大數(shù)據(jù)Big Data巨量資料

2022-06-27 14:01:31

LZ4 分析數(shù)據(jù)密集型壓縮算法

2022-09-13 16:10:15

鴻蒙操作系統(tǒng)

2022-09-07 15:08:58

操作系統(tǒng)鴻蒙

2022-09-16 15:01:37

操作系統(tǒng)技術(shù)鴻蒙

2022-04-20 21:06:24

LZ 算法鴻蒙操作系統(tǒng)

2022-09-14 15:28:19

操作系統(tǒng)鴻蒙

2022-03-28 15:09:17

無線傳感器網(wǎng)絡(luò)Harmony鴻蒙
點贊
收藏

51CTO技術(shù)棧公眾號