成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

OpenHarmony啃論文俱樂部—一種深度神經網壓縮算法

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

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

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

【技術DNA】

【ELT.ZIP】OpenHarmony啃論文俱樂部—一種深度神經網壓縮算法-開源基礎軟件社區

【智慧場景】

**********

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

場景

自動駕駛 / AR

語音信號

流視頻

GPU 渲染

科學、云計算

內存縮減

科學應用

醫學圖像

數據庫服務器

人工智能圖像

文本傳輸

GAN媒體壓縮

圖像壓縮

文件同步

數據庫系統

通用數據

技術

點云壓縮

?稀疏快速傅里葉變換?

有損視頻壓縮

網格壓縮

動態選擇壓縮算法框架

無損壓縮

分層數據壓縮

醫學圖像壓縮

無損通用壓縮

人工智能圖像壓縮

短字符串壓縮

GAN 壓縮的在線多粒度蒸餾

圖像壓縮

文件傳輸壓縮

快速隨機訪問字符串壓縮

高通量并行無損壓縮

開源項目

??Draco??? / 基于深度學習算法/??PCL???/??OctNet??

??SFFT??

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

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

??Ares??

??LZ4??

??HCompress??

??DICOM??

??Brotli??

??RAISR??

??AIMCS??

??OMGD??

??OpenJPEG??

??rsync??

??FSST??

??ndzip??

引言

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

  • 深度神經網絡成功可以歸因于三個現象:(1)獲得大量數據(2)研究人員設計了新的優化算法和模型架構,允許訓練非常深入的神經網絡(3)增長計算資源的可用性。

【ELT.ZIP】OpenHarmony啃論文俱樂部—一種深度神經網壓縮算法-開源基礎軟件社區

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

【ELT.ZIP】OpenHarmony啃論文俱樂部—一種深度神經網壓縮算法-開源基礎軟件社區

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

信源編碼

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

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

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

無損編碼

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

有損編碼

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

信道編碼

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

【ELT.ZIP】OpenHarmony啃論文俱樂部—一種深度神經網壓縮算法-開源基礎軟件社區

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

CABAC

CABAC的發展

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

CABAC的優勢

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

CABAC涉及三個主要功能

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

二值化

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

上下文建模

  • 以JM中的上下文結構體為例。
//! 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只是用于計數)。在CABAC編碼的過程中會碰到需要修改這兩個值的情況(如上面的狀態變換),這些修改都是以上下文為單位的。

算術編碼

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

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

Deep- CABAC

Deep- CABAC 的編碼程序

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

Deep-CABAC 編碼器

Deep-CABAC 無損編碼器

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

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

Deep-CABAC 有損編碼器

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

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

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

實驗

將標量 huffman、csr-huffman和 bzip2無損編碼算法應用于量化網絡后獲得的最佳壓縮結果。括號內是結果的top-1精度,括號內是通過非零參數的數量除以參數總數所獲得的稀疏比。

【ELT.ZIP】OpenHarmony啃論文俱樂部—一種深度神經網壓縮算法-開源基礎軟件社區

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

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

【ELT.ZIP】OpenHarmony啃論文俱樂部—一種深度神經網壓縮算法-開源基礎軟件社區

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

總結

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

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

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

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2022-09-19 14:25:35

JSON壓縮算法

2022-04-07 15:03:07

Harmony計算機鴻蒙

2022-06-08 11:46:29

字符串鴻蒙

2022-05-13 22:44:35

物聯網算法鴻蒙

2022-05-12 15:05:32

云計算數據壓縮

2022-06-08 16:29:45

無損壓縮方案分布式

2022-06-15 16:06:29

LZ4 算法硬件加速

2022-08-22 17:36:13

啃論文方法啃論文俱樂部

2022-06-15 15:44:21

無損數據壓縮鴻蒙

2022-04-20 20:37:58

鴻蒙操作系統

2022-09-06 15:46:52

speexdsp鴻蒙

2022-10-18 16:14:28

2022-05-13 23:03:25

大數據Big Data巨量資料

2022-06-27 14:01:31

LZ4 分析數據密集型壓縮算法

2022-04-20 21:06:24

LZ 算法鴻蒙操作系統

2022-03-28 15:09:17

無線傳感器網絡Harmony鴻蒙

2022-09-14 15:28:19

操作系統鴻蒙

2022-09-15 15:21:22

操作系統鴻蒙

2022-09-16 15:01:37

操作系統技術鴻蒙

2022-09-07 15:08:58

操作系統鴻蒙
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品一区二区三区在线 | 福利片在线 | 美女视频一区二区三区 | 亚洲欧美日韩在线一区二区 | 成年无码av片在线 | 欧美九九九 | 毛片免费观看 | 日本视频免费观看 | 成人精品一区二区三区中文字幕 | 亚洲区一区二 | 国产精品一区二区视频 | 日本一二区视频 | 欧美日韩在线视频一区 | 精品国产免费人成在线观看 | 一区二区三区欧美大片 | 久久精品二区亚洲w码 | 九九av| 亚洲美乳中文字幕 | 午夜一区二区三区在线观看 | 欧美日韩中| 成人免费网站视频 | 欧美日本韩国一区二区 | 成人免费激情视频 | 91视视频在线观看入口直接观看 | 奇米av | 中文字幕成人网 | 国产精品日韩欧美一区二区三区 | 成人在线免费 | 久久久九九 | 欧美激情精品久久久久久 | 一区二区三区av | 毛片久久久 | 米奇7777狠狠狠狠视频 | 91在线视频免费观看 | 国产精品欧美一区二区三区不卡 | com.国产 | 91看片免费版 | 成人国产在线观看 | 欧美三级不卡 | 国产精品久久久久久久久污网站 | 污片在线免费观看 |