91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

一文解析網(wǎng)絡壓縮算法的原理實現(xiàn)及結(jié)果

454398 ? 來源:AI加速微信公眾號 ? 作者:AI加速微信公眾號 ? 2020-11-14 10:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

網(wǎng)絡壓縮在AI加速中可以說起到“四兩撥千斤”的作用,網(wǎng)絡參數(shù)的減小不僅僅降低了存儲和帶寬,而且使計算邏輯簡單,降低了LUT資源。從本篇開始,我們就一起挖掘一下網(wǎng)絡壓縮算法的類型,原理,實現(xiàn),以及效果。寫這類算法類文章,一是學習,二是希望能夠令更多做FPGA的人,不再將眼光局限于RTL,仿真,調(diào)試,關心一下算法,定會發(fā)現(xiàn)FPGA的趣味和神通。

網(wǎng)絡結(jié)構(gòu)

二值化網(wǎng)絡,顧名思義,就是網(wǎng)絡參數(shù)只有兩個數(shù)值,這兩個數(shù)值是+1和-1。在DNN網(wǎng)絡中主要是乘和加法運算,如果參數(shù)只有兩個數(shù)值,那么乘法的實現(xiàn)就很簡單,僅僅需要符號判斷就可以了。比如輸入數(shù)據(jù)A,如果和1乘,不變;和-1乘,變?yōu)樨摂?shù)。這用LUT很好實現(xiàn),還節(jié)省了DSP的使用。相對于單精度浮點數(shù),存儲減小16倍,帶寬也增加16倍。在計算單元數(shù)目相同情況下,比浮點運算速率提高了16倍。當然由于乘法和加法使用LUT數(shù)目減少,計算單元也會成倍增長,總的下來計算速率將大幅度提高。

網(wǎng)絡訓練中使用的都是浮點類型參數(shù),這樣做是為了保證訓練的精度。那么這些浮點類型的參數(shù)如何量化的只有兩個數(shù)值呢?論文中提出了兩種方法,第一種是粗暴型,直接根據(jù)權重參數(shù)的正負,強行分出1和-1。即:

這里wb是二值參數(shù),w是實際權重參數(shù)。量化可以看做在原來數(shù)據(jù)基礎上增加了噪聲,導致數(shù)據(jù)間最短距離變大。比如原來數(shù)據(jù)的分辨率為R0,如果增加一個高斯噪聲s,那么其分辨率就增大了。這樣在DNN中矩陣乘法中也引入了噪聲,為:

數(shù)據(jù)分辨率的降低導致了有效信息的損失,但是在大量權重情形下,平均下來可以補償一定的信息損失,即如果有:

那么在權重無窮多時,有:


圖1.1 數(shù)據(jù)增加了噪聲,導致數(shù)據(jù)分辨率降低

另外一種是隨機型,即以一定概率來選擇1和-1,論文中采用如下公式:

其中“hard sigmoid”函數(shù)為:

這實際上是對sigmoid函數(shù)進行了線性化,這樣做的目的可以減少計算量。因為線性計算只有一個乘法和加法,而sigmoid函數(shù)有指數(shù)計算。使用隨機量化更能均衡化量化引入的噪聲,消除噪聲造成的信息損失。粗暴型量化可能因為權重參數(shù)分布不同而發(fā)生較大的“不平衡”,比如負數(shù)權重較多,那么導致-1遠遠多于+1,這樣就會出現(xiàn)權重偏移在負方向多一些。如果使用隨機概率模型,即使負數(shù)權重多,也會有一定概率出現(xiàn)+1,彌補了+1較少的情況。

圖1.2 粗暴型和隨機型量化:隨機型量化的分布更加均勻

訓練過程

訓練過程主要包括三個部分:

1) 前向傳播:給定輸入數(shù)據(jù),一層一層的計算,前一層激活函數(shù)的結(jié)果作為下一層的輸入;

2) 反向傳播:計算每一層代價函數(shù)的梯度,從最后一層開始計算,反向計算前一層,一直到計算出第一層的梯度值;

3) 更新參數(shù):根據(jù)計算出來的梯度和前一時刻的參數(shù),計算出下一時刻的參數(shù)。

計算過程可以用圖2.1表示:

圖2.1 訓練過程

圖2.2 訓練算法

每次量化發(fā)生在計算出浮點參數(shù)之后,然后在進行前向計算,得到代價函數(shù),進行反向計算代價函數(shù)梯度,接著利用前一刻參數(shù)計算出下一刻數(shù)據(jù),不斷迭代直到收斂。

結(jié)果

論文在三個數(shù)據(jù)集上進行了測試:MNIST,CIFAR-10,SVHN。

MNIST有6萬張內(nèi)容為0-9數(shù)字的訓練圖片,以及1萬張用于測試的28x28大小的灰度圖片。論文研究了兩種量化方式下訓練時間,以及測試出錯率。從中看出隨機量化出錯率更低,更適合用于二值量化。

圖3.1 不同量化方式下的訓練時間以及測試錯誤率:點線表示訓練誤差,連續(xù)線表示測試錯誤率

CIFAR-10圖片內(nèi)容比MNIST復雜一些,包含了各種動物。有5萬張訓練圖片和1萬張32x32大小的測試圖片。

SVHN也是0-9數(shù)字圖片,含有604K張訓練圖片和26K的32x32大小的測試圖片。以上三種數(shù)據(jù)集下使用二值網(wǎng)絡的結(jié)果如下圖:

圖3.2 三種數(shù)據(jù)集結(jié)果(錯誤率)比較

從中看出二值網(wǎng)絡錯誤率幾乎和其他網(wǎng)絡模型差不多,但是其大大壓縮了網(wǎng)絡模型。

結(jié)論

二值化網(wǎng)絡中參數(shù)只用兩個數(shù)值表示,實際上僅僅考慮了權重的符號作用。在三種小型簡單的數(shù)據(jù)集上表現(xiàn)良好。

文獻

1 Matthieu Courbariaux, Y.B., Binary Connect Training Deep Neural Networks with binary weights during propagations. ArXiv preprint, 2016.

編輯:hfy


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1660

    文章

    22421

    瀏覽量

    636625
  • 算法
    +關注

    關注

    23

    文章

    4784

    瀏覽量

    98095
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    linux的壓縮和解壓操作

    進行壓縮,然后傳輸壓縮的文件,這樣可以減少文件傳輸所需要的帶寬和時間,在網(wǎng)絡接收到文件之后再解壓,就可以得到文件了。 文件的壓縮有兩種方式:有損壓縮
    發(fā)表于 12-23 06:56

    REFFRIDGED111TRC2SL:冰箱壓縮機驅(qū)動參考設計板的深度解析

    REFFRIDGED111TRC2SL:冰箱壓縮機驅(qū)動參考設計板的深度解析 在電子工程師的日常工作中,尋找合適的參考設計板對于產(chǎn)品開發(fā)至關重要。今天我們就來詳細解析下 Infineo
    的頭像 發(fā)表于 12-21 11:00 ?995次閱讀

    電能質(zhì)量在線監(jiān)測裝置支持哪些數(shù)據(jù)壓縮算法

    增強。以下是主流算法的詳細支持情況: 、無損壓縮算法(核心用于關鍵數(shù)據(jù)) 算法名稱 核心原理 適用數(shù)據(jù)類型
    的頭像 發(fā)表于 12-12 14:08 ?460次閱讀
    電能質(zhì)量在線監(jiān)測裝置支持哪些數(shù)據(jù)<b class='flag-5'>壓縮</b><b class='flag-5'>算法</b>?

    應用于暫態(tài)波形存儲的數(shù)據(jù)壓縮算法需要考慮哪些因素?

    應用于暫態(tài)波形存儲的數(shù)據(jù)壓縮算法,需圍繞 暫態(tài)波形特性 (突變性、關鍵特征依賴性)、 工業(yè)場景需求 (實時性、硬件限制)及 數(shù)據(jù)應用價值 (故障溯源、合規(guī)性)綜合考量,核心需關注以下六大維度:
    的頭像 發(fā)表于 11-05 15:02 ?333次閱讀

    SM4算法實現(xiàn)分享(算法原理

    對明文進行分組加密變換。SM4加密算法由32次迭代運算和次反序變換R組成。 設輸入明文為(X0,X 1,X 2,X 3),共128位,設密輸出為(Y0,Y 1,Y 2,Y 3),輪密鑰為rki
    發(fā)表于 10-30 08:10

    Camellia算法實現(xiàn)(基于開源蜂鳥E203協(xié)處理器)

    項目構(gòu)想 我們開始就選擇信息安全作為芯來杯比賽方向,并以Camellia算法作為算法原型。借助蜂鳥E203的協(xié)處理,能加速Camellia算法的運算,并通過比較軟件
    發(fā)表于 10-30 07:04

    Camellia算法實現(xiàn)二(基于開源蜂鳥E203協(xié)處理器)

    篇分享文檔介紹了Camellia算法的基本原理,這篇文檔我們來介紹Camellia的具體實現(xiàn)方式。 如上圖所示為Camellia加解密系統(tǒng)的結(jié)構(gòu),PC端上位機通過串
    發(fā)表于 10-30 06:35

    AES加解密算法邏輯實現(xiàn)及其在蜂鳥E203SoC上的應用介紹

    這次分享我們會簡要介紹AES加解密算法的邏輯實現(xiàn),以及如何將AES算法做成硬件協(xié)處理器集成在蜂鳥E203 SoC上。 AES算法介紹 AES算法
    發(fā)表于 10-29 07:29

    如何使用恢復算法實現(xiàn)開平方運算

    本文主要描述如何使用恢復算法實現(xiàn)開平方運算。 簡介 開平方的恢復算法其實與除法的恢復算法十分相似。首先我們假設X為輸入的操作數(shù)(它應該為正數(shù)),而他的平方根可以表示為Qn=0.q1
    發(fā)表于 10-24 13:33

    國密系列算法簡介及SM4算法原理介紹

    保證,而國產(chǎn)密碼算法實現(xiàn)了密碼算法的自主可控,對于保障我國的國家安全具有重要意義。目前,我國大力推廣國密算法的應用,并涌現(xiàn)出系列國家商用密
    發(fā)表于 10-24 08:25

    加密算法的應用

    稱加密算法中,加密和解密使用同個密鑰,因此密鑰必須保密,只有密鑰的持有者才能進行解密操作。 對稱加密算法具有加密速度快、加密效率高、實現(xiàn)簡單等優(yōu)點,因此在許多場景下被廣泛應用。例如
    發(fā)表于 10-24 08:03

    e203除法器算法改進()

    e203內(nèi)部除法操作使用加減交替迭代法進行運算,除幾個特殊運算外,正常的除法操作需要33個周期才能輸出運算結(jié)果,極大程度地影響了系統(tǒng)的性能。我們對e203的除法器進行了新的算法實現(xiàn)并改進。目前高性能
    發(fā)表于 10-22 07:13

    數(shù)據(jù)濾波算法的具體實現(xiàn)步驟是怎樣的?

    ? 數(shù)據(jù)濾波算法在電能質(zhì)量在線監(jiān)測裝置中的具體實現(xiàn),需圍繞 “ 數(shù)據(jù)采集→預處理→算法執(zhí)行→參數(shù)適配→效果驗證→結(jié)果輸出 ” 的全流程展開,核心是結(jié)合裝置硬件特性(采樣率、ADC 精度
    的頭像 發(fā)表于 10-10 16:45 ?836次閱讀

    低內(nèi)存場景下的高效壓縮利器:FastLZ壓縮庫應用實踐指南

    在資源受限環(huán)境中,數(shù)據(jù)壓縮既要追求速度又要節(jié)省內(nèi)存。本文聚焦FastLZ壓縮庫,深入探討其在低內(nèi)存場景下的應用實踐,通過解析其核心算法與優(yōu)化策略,帶您掌握如何利用該庫
    的頭像 發(fā)表于 07-22 15:13 ?395次閱讀
    低內(nèi)存場景下的高效<b class='flag-5'>壓縮</b>利器:FastLZ<b class='flag-5'>壓縮</b>庫應用實踐指南

    基于FPGA的壓縮算法加速實現(xiàn)

    本設計中,計劃實現(xiàn)對文件的壓縮及解壓,同時優(yōu)化壓縮中所涉及的信號處理和計算密集型功能,實現(xiàn)對其的加速處理。本設計的最終目標是證明在充分并行化的硬件體系結(jié)構(gòu) FPGA 上
    的頭像 發(fā)表于 07-10 11:09 ?2410次閱讀
    基于FPGA的<b class='flag-5'>壓縮</b><b class='flag-5'>算法</b>加速<b class='flag-5'>實現(xiàn)</b>