邊緣計算將計算、網(wǎng)絡(luò)、存儲等能力擴展到物聯(lián)網(wǎng)設(shè)備附近的網(wǎng)絡(luò)邊緣側(cè),而以深度學習為代表的人工智能技術(shù)讓每個邊緣計算的節(jié)點都具有計算和決策的能力,這使得某些復雜的智能應用可以在本地邊緣端進行處理,滿足了敏捷連接、實時業(yè)務、數(shù)據(jù)優(yōu)化、應用智能、安全與隱私保護等方面的需求。智能邊緣計算利用物聯(lián)網(wǎng)的邊緣設(shè)備進行數(shù)據(jù)采集和智能分析計算,實現(xiàn)智能在云和邊緣之間流動,對人工智能算法、終端、芯片都提出了新的需求,正成為越來越多人工智能企業(yè)關(guān)注的重點方向。然而,由于深度學習模型推理需要消耗大量的計算資源,當前的大多數(shù)邊緣設(shè)備由于資源受限無法以低延遲、低功耗、高精確率的方式支持深度學習應用。
深度神經(jīng)網(wǎng)絡(luò)與其他很多機器學習模型一樣,可分為訓練和推理兩個階段。訓練階段根據(jù)數(shù)據(jù)學習模型中的參數(shù)(對神經(jīng)網(wǎng)絡(luò)來說主要是網(wǎng)絡(luò)中的權(quán)重);推理階段將新數(shù)據(jù)輸入模型,經(jīng)過計算得出結(jié)果。過參數(shù)化是指在訓練階段,網(wǎng)絡(luò)需要大量的參數(shù)來捕捉數(shù)據(jù)中的微小信息,而一旦訓練完成到了推理階段,就不需要這么多的參數(shù)。基于這樣的假設(shè),就可以在部署前對模型進行簡化。模型壓縮中的剪枝(pruning)和量化兩類方法正是基于這樣的前提。模型簡化的優(yōu)點包括但不限于:(1)計算量的減小,從而使計算時間更少,功耗更小;(2)存儲和讀寫訪問量變小,可以放到更邊緣的設(shè)備上運行,本來需要既慢又耗能的DRAM參與,現(xiàn)在有可能放在SRAM就可以。其核心問題是如何有效地裁剪模型并使得精度的損失最小化。
對于神經(jīng)網(wǎng)絡(luò)修剪的研究始于20世紀80年代末、90年代初。漢森(Hanson)在1988年提出基于幅度的修剪方法,即對網(wǎng)絡(luò)中每個隱含單元施加與其絕對值相關(guān)的權(quán)重衰減來使隱含單元數(shù)量最小化。樂昆(LeCun)和哈斯比(Hassibi)分別在1990年和1993年提出最優(yōu)腦損傷(Optimal Brain Damage,OBD)和最優(yōu)腦手術(shù)(Optimal Brain Surgeon,OBS)方法,它們基于損失函數(shù)相對于權(quán)重的二階導數(shù)(對權(quán)重向量來說即Hessian矩陣)來衡量網(wǎng)絡(luò)中權(quán)重的重要程度,然后對其進行裁剪。由于受到當時計算資源的限制,研究僅限于淺層神經(jīng)網(wǎng)絡(luò),但其對問題的定義和解決問題的思路對之后的工作產(chǎn)生了深遠的影響。從2012年起,神經(jīng)網(wǎng)絡(luò)的變化趨勢是不斷加深網(wǎng)絡(luò)以提高精度。在2015-2016年期間,Han等人發(fā)表了一系列對深度神經(jīng)網(wǎng)絡(luò)進行模型壓縮的工作,其中Deep Compression對當時經(jīng)典網(wǎng)絡(luò)AlexNet和VGG進行了壓縮。結(jié)合修剪、量化和哈夫曼編碼等多種方法,將網(wǎng)絡(luò)尺寸壓縮至幾十分之一,性能獲得成倍的提升。其中對于修剪帶來的精度損失,使用了迭代修剪方法進行補償,使精度幾乎沒有損失。之后這幾年,模型壓縮領(lǐng)域變得越來越豐富,越來越多的相關(guān)工作衍生而出。
從網(wǎng)絡(luò)修剪的粒度來說,可以分為結(jié)構(gòu)化剪枝(structured pruning)和非結(jié)構(gòu)化剪枝(unstructured pruning)兩類。早期的一些方法是基于非結(jié)構(gòu)化的,它修剪的粒度為單個神經(jīng)元。如果對卷積核進行非結(jié)構(gòu)化剪枝,則得到的卷積核是稀疏的,即中間有很多元素為0的矩陣。除非下層的硬件和計算庫對其有比較好的支持,否則修剪后的網(wǎng)絡(luò)很難獲得實質(zhì)的性能提升。稀疏矩陣無法利用現(xiàn)有成熟的基礎(chǔ)線性代數(shù)子程序(Basic Linear Algebra Subprograms,BLAS)庫來獲得額外性能收益。因此,很多研究是集中在結(jié)構(gòu)化剪枝上,通常細分為通道剪枝、卷積核剪枝和網(wǎng)絡(luò)結(jié)構(gòu)修剪。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4733瀏覽量
100415 -
深度學習
+關(guān)注
關(guān)注
73文章
5463瀏覽量
120889 -
邊緣計算
+關(guān)注
關(guān)注
22文章
3042瀏覽量
48474
發(fā)布評論請先 登錄
相關(guān)推薦
評論