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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

神經(jīng)網(wǎng)絡(luò)在FPGA上的應(yīng)用:深度壓縮方法

454398 ? 來(lái)源: AI加速 ? 作者:韓松 ? 2020-11-21 11:00 ? 次閱讀

引言

這篇論文來(lái)自文章也幫助深鑒科技在國(guó)內(nèi)外獲得了一定知名度。深度壓縮首先通過(guò)剪枝減少了網(wǎng)絡(luò)的連接,然后通過(guò)比特量化來(lái)降低權(quán)重量,最后通過(guò)無(wú)損壓縮方式霍夫曼編碼來(lái)縮小存儲(chǔ)空間。作者分別對(duì)AlexNet和VGG-16進(jìn)行了實(shí)驗(yàn),獲得了35倍和49倍的壓縮量,而且精度幾乎沒(méi)有損失。

1. 原理

深度壓縮之所以獲得成功主要是結(jié)合了三種壓縮方法:剪枝,量化和無(wú)損壓縮霍夫曼編碼,而且在大的數(shù)據(jù)集和深度神經(jīng)網(wǎng)絡(luò)中獲得了較高壓縮比以及精度未降。前兩種方法不僅僅降低了權(quán)重?cái)?shù)量,也提高了計(jì)算速率。而霍夫曼編碼只是能夠降低存儲(chǔ)空間,在實(shí)際計(jì)算的時(shí)候還需要進(jìn)行解碼操作,實(shí)際上不會(huì)提高計(jì)算率。

以上三種方法用圖來(lái)表示為三個(gè)過(guò)程:


這三個(gè)方法一次順序進(jìn)行,每個(gè)過(guò)程都單獨(dú)進(jìn)行。

2. 剪枝

首先進(jìn)行剪枝操作,也是很傳統(tǒng)的方法,就是通過(guò)一定策略來(lái)過(guò)濾掉一些不重要的神經(jīng)網(wǎng)絡(luò)連接。然后再重新訓(xùn)練進(jìn)行參數(shù)微調(diào),不斷重復(fù)這個(gè)過(guò)程直到不能夠再進(jìn)行剪枝為止。剪枝后的神經(jīng)網(wǎng)絡(luò)連接大大減少,剩下的都是對(duì)網(wǎng)絡(luò)分類(lèi)有最重要貢獻(xiàn)的連接。其他被剪掉的連接的參數(shù)很小,產(chǎn)生的數(shù)值對(duì)結(jié)果影響可以通過(guò)重新訓(xùn)練來(lái)微調(diào)其他參數(shù)而彌補(bǔ)。在imageNet數(shù)據(jù)集上,剪枝方法可以將AlexNet的參數(shù)數(shù)量減少9倍而沒(méi)有精度上的損失。VGG-16同樣有類(lèi)似的現(xiàn)象,參數(shù)總量可以減少13倍左右而沒(méi)有精度損失。



3. 量化

接下來(lái)在剪枝網(wǎng)絡(luò)上做進(jìn)一步量化操作。基本思路是權(quán)重共享和聚類(lèi)。假設(shè)給定了k個(gè)類(lèi),這是權(quán)重參數(shù)量化后可能產(chǎn)生的k個(gè)值,然后對(duì)權(quán)重執(zhí)行聚類(lèi)操作,聚類(lèi)方法選擇了k-means方式。然后會(huì)得到k個(gè)區(qū)間,這些權(quán)重參數(shù)都分布在這k個(gè)區(qū)間中。然后用對(duì)應(yīng)k個(gè)區(qū)間的數(shù)值來(lái)替代原來(lái)的權(quán)重?cái)?shù)據(jù)。K個(gè)數(shù)值通常需要log2(k)比特來(lái)表示。這樣就從原來(lái)的32bit降低到了log2(k)。

以下為k-means方法的目標(biāo)函數(shù):


作者在同一層網(wǎng)絡(luò)上進(jìn)行權(quán)重共享,不同層之間的權(quán)重分別進(jìn)行聚類(lèi)。為什么不同層之間的權(quán)重不能夠進(jìn)行共享?可以這樣想,權(quán)重之所以可以共享和量化,是因?yàn)槠浔磉_(dá)的信息有一些共性,從數(shù)學(xué)上看同一層權(quán)重之間是以“求和”方式連接的,而不同層時(shí)間是“相乘”關(guān)系,后者有一定順序性,無(wú)法做到共享。否則會(huì)導(dǎo)致較高錯(cuò)誤率,而且層與層之間還有激活函數(shù),歸一化函數(shù),不能簡(jiǎn)單的進(jìn)行共享。

訓(xùn)練也進(jìn)行了量化,在原來(lái)權(quán)重求得梯度值基礎(chǔ)上進(jìn)行同樣的聚類(lèi)和量化操作,然后對(duì)量化的權(quán)重進(jìn)行微調(diào)得到新的值。過(guò)程如下圖所示。這里作者并不是用未量化的梯度來(lái)更新權(quán)重,用量化的梯度來(lái)更新可以減少訓(xùn)練迭代,在這里只進(jìn)行了兩次訓(xùn)練,第一次先訓(xùn)練出初始權(quán)重?cái)?shù)據(jù),第二次是用量化的梯度更新權(quán)重。


4. 霍夫曼編碼

神經(jīng)網(wǎng)絡(luò)在FPGA上部署通常需要大量的緩存,為了降低緩存空間,霍夫曼編碼進(jìn)一步來(lái)壓縮權(quán)重?;舴蚵幋a是一種無(wú)損編碼,其通過(guò)數(shù)據(jù)的重復(fù)率來(lái)進(jìn)行數(shù)據(jù)重新編碼,重復(fù)率高的用少的比特,重復(fù)率少的用多的比特,這樣就降低了數(shù)據(jù)存儲(chǔ)空間。雖然霍夫曼編碼能壓縮2到3倍權(quán)重,但是并不適合在FPGA上實(shí)現(xiàn)。因?yàn)榛舴蚵獯a要消耗大量資源,同時(shí)霍夫曼解碼是單bit進(jìn)行解析,速度較慢。這些都不利于FPGA上加速深度神經(jīng)網(wǎng)絡(luò)。

5. 實(shí)驗(yàn)結(jié)果

作者主要在AlexNet和VGG-16上進(jìn)行了嘗試,結(jié)果如圖:


從結(jié)果中可以獲得以下結(jié)論:
1) 全連接層的剪枝和量化都很大,說(shuō)明全連接層信息有很大冗余;
2) 越深的網(wǎng)絡(luò)壓縮比例越大;

結(jié)論

本文介紹了深度壓縮方法,其結(jié)合了剪枝,量化和霍夫曼編碼的方式來(lái)最大限度降低權(quán)重?cái)?shù)據(jù)量,這種方法促進(jìn)了深度神經(jīng)網(wǎng)絡(luò)在FPGA器件上的應(yīng)用能力。

編輯:hfy


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

    關(guān)注

    1625

    文章

    21620

    瀏覽量

    601234
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4733

    瀏覽量

    100415
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    脈沖耦合神經(jīng)網(wǎng)絡(luò)FPGA的實(shí)現(xiàn)誰(shuí)會(huì)?

    脈沖耦合神經(jīng)網(wǎng)絡(luò)(PCNN)FPGA的實(shí)現(xiàn),實(shí)現(xiàn)數(shù)據(jù)分類(lèi)功能,有報(bào)酬。QQ470345140.
    發(fā)表于 08-25 09:57

    基于賽靈思FPGA的卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)設(shè)計(jì)

    FPGA 實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò) (CNN)。CNN 是一類(lèi)深度神經(jīng)網(wǎng)絡(luò),處理大規(guī)模圖像識(shí)別任務(wù)
    發(fā)表于 06-19 07:24

    如何設(shè)計(jì)BP神經(jīng)網(wǎng)絡(luò)圖像壓縮算法?

    (Digital Signal Processor)相比,現(xiàn)場(chǎng)可編程門(mén)陣列(Field Programma-ble Gate Array,FPGA)神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)更具優(yōu)勢(shì)。DSP處
    發(fā)表于 08-08 06:11

    基于FPGA神經(jīng)網(wǎng)絡(luò)的性能評(píng)估及局限性

    FPGA實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)關(guān)鍵問(wèn)題分析基于FPGA的ANN實(shí)現(xiàn)方法基于FPGA神經(jīng)網(wǎng)絡(luò)的性能評(píng)估及局
    發(fā)表于 04-30 06:58

    深度神經(jīng)網(wǎng)絡(luò)是什么

    多層感知機(jī) 深度神經(jīng)網(wǎng)絡(luò)in collaboration with Hsu Chung Chuan, Lin Min Htoo, and Quah Jia Yong. 與許忠傳,林敏濤和華佳勇合作
    發(fā)表于 07-12 06:35

    EdgeBoard中神經(jīng)網(wǎng)絡(luò)算子FPGA中的實(shí)現(xiàn)方法是什么?

    FPGA加速的關(guān)鍵因素是什么?EdgeBoard中神經(jīng)網(wǎng)絡(luò)算子FPGA中的實(shí)現(xiàn)方法是什么?
    發(fā)表于 09-28 06:37

    基于深度神經(jīng)網(wǎng)絡(luò)的激光雷達(dá)物體識(shí)別系統(tǒng)

    的激光雷達(dá)物體識(shí)別技術(shù)一直難以嵌入式平臺(tái)上實(shí)時(shí)運(yùn)行。經(jīng)緯恒潤(rùn)經(jīng)過(guò)潛心研發(fā),攻克了深度神經(jīng)網(wǎng)絡(luò)嵌入式平臺(tái)部署所面臨的算子定制與加速、量化策略、模型
    發(fā)表于 12-21 07:59

    卷積神經(jīng)網(wǎng)絡(luò)模型發(fā)展及應(yīng)用

    network,DBN)[24], 從此拉開(kāi)了深度學(xué)習(xí)大幕。隨著深度學(xué)習(xí)理論的研究和發(fā)展,研究人員提 出了一系列卷積神經(jīng)網(wǎng)絡(luò)模型。為了比較不同模型 的質(zhì)量,收集并整理了文獻(xiàn)中模型
    發(fā)表于 08-02 10:39

    深度神經(jīng)網(wǎng)絡(luò)壓縮和正則化剖析

    到只有有限硬件資源的嵌入式系統(tǒng)。 為了解決這個(gè)限制,可以使用深度壓縮來(lái)顯著地減少神經(jīng)網(wǎng)絡(luò)所需要的計(jì)算和存儲(chǔ)需求。例如對(duì)于具有全連接層的卷積神經(jīng)網(wǎng)絡(luò)
    發(fā)表于 11-16 13:11 ?1808次閱讀
    <b class='flag-5'>深度</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的<b class='flag-5'>壓縮</b>和正則化剖析

    深度神經(jīng)網(wǎng)絡(luò)識(shí)別物體的能力怎樣

    深度神經(jīng)網(wǎng)絡(luò)非常善于識(shí)別物體,但是當(dāng)涉及到他們的相互作用的推理時(shí),即使是最先進(jìn)的神經(jīng)網(wǎng)絡(luò)努力。
    發(fā)表于 04-14 15:24 ?821次閱讀

    基于深度神經(jīng)網(wǎng)絡(luò)的端到端圖像壓縮方法

    人工設(shè)計(jì)的算法分別進(jìn)行優(yōu)化近年來(lái),基于深度神經(jīng)網(wǎng)絡(luò)的端到端圖像壓縮方法圖像壓縮中取得了豐碩的成
    發(fā)表于 04-08 09:30 ?16次下載
    基于<b class='flag-5'>深度</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的端到端圖像<b class='flag-5'>壓縮</b><b class='flag-5'>方法</b>

    深度神經(jīng)網(wǎng)絡(luò)模型的壓縮和優(yōu)化綜述

    近年來(lái),隨著深度學(xué)習(xí)的飛速發(fā)展,深度神經(jīng)網(wǎng)絡(luò)受到了越來(lái)越多的關(guān)注,許多應(yīng)用領(lǐng)域取得了顯著效果。通常,較高的計(jì)算量下,
    發(fā)表于 04-12 10:26 ?20次下載
    <b class='flag-5'>深度</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>模型的<b class='flag-5'>壓縮</b>和優(yōu)化綜述

    基于FPGA神經(jīng)網(wǎng)絡(luò)硬件實(shí)現(xiàn)方法

    基于FPGA神經(jīng)網(wǎng)絡(luò)硬件實(shí)現(xiàn)方法說(shuō)明。
    發(fā)表于 06-01 09:35 ?37次下載
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>硬件實(shí)現(xiàn)<b class='flag-5'>方法</b>

    卷積神經(jīng)網(wǎng)絡(luò)壓縮方法

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)作為深度學(xué)習(xí)領(lǐng)域的重要分支,圖像識(shí)別、視頻處理、自然語(yǔ)言處理等多個(gè)領(lǐng)域取得了顯著成就。然而,隨著網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-11 11:46 ?273次閱讀

    FPGA深度神經(jīng)網(wǎng)絡(luò)中的應(yīng)用

    、低功耗等特點(diǎn),逐漸成為深度神經(jīng)網(wǎng)絡(luò)邊緣計(jì)算和設(shè)備端推理的重要硬件平臺(tái)。本文將詳細(xì)探討FPGA深度
    的頭像 發(fā)表于 07-24 10:42 ?527次閱讀