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