端上智能——深度學習模型壓縮與加速

摘要:隨着深度學習網絡規模的增大,計算複雜度隨之增高,嚴重限制了其在手機等智能設備上的應用。如何使用深度學習來對模型進行壓縮和加速,而且保持幾乎同樣的精度?本文將爲你們詳細介紹兩種模型壓縮算法,並展現了阿里巴巴模型壓縮平臺和前向推理工具。算法

本次直播視頻精彩回顧,戳這裏
本次直播PDF下載,戳這裏!網絡

演講嘉賓簡介:
李昊(花名:遼玥),阿里巴巴機器智能技術實驗室高級算法專家,畢業於中科院,擁有工學博士學位,致力於深度學習基礎技術研究以及在各個行業的應用。分佈式

如下內容根據演講嘉賓視頻分享以及PPT整理而成。函數

本文將圍繞一下幾個方面進行介紹:工具

  1. 深度學習模型壓縮與加速

Extremely Low Bit Neural Networks
Extremely Sparse Network學習

  1. 訓練平臺
  2. 高效前向推理工具

一. 深度學習模型壓縮與加速

隨着深度學習網絡規模的增大,計算複雜度隨之增高,嚴重限制了其在手機等智能設備上的應用。例以下圖一展現的VGGNet和圖二的殘差網絡,如此大規模的複雜網絡模型在端設備上使用並不現實。優化

clipboard.png

所以須要採用深度學習模型來進行壓縮和加速,下面介紹兩種壓縮算法。編碼

1. Extremely Low Bit Neural Networks
Low Bit模型是指將連續的權重壓縮成離散的低精度權重。以下圖所示,原始深度學習的網絡參數爲float型,須要32bit存儲空間,將其轉化成只有三值(0,+1,-1)的狀態,存儲只須要2bit,極大地壓縮存儲空間,同時也能夠避免乘法運算,只是符號位的變化和加減操做,從而提高計算速度。spa

clipboard.png

這裏爲你們提供一篇對Low Bit模型詳細介紹的參考文章Extremely Low Bit Neural Networks: Squeeze the Last Bit Out with ADMM。
接下來以二值網絡爲例講解上述的壓縮過程。首先假設原始神經網絡的優化目標函數爲f(w),限制條件爲深度學習網絡的參數包含在C內,若是C爲{-1,1},則該網絡便爲二值網絡,以下所示:3d

clipboard.png

這裏引入了一種解決分佈式優化和約束優化的經常使用方法ADMM(Alternating Direction Method of Multipliers),來求解以上離散非凸約束優化問題,其形式以下:

clipboard.png

ADMM用於解決當目標函數爲f(x)+g(z),其中限制條件是Ax+Bz=c的優化。首先寫出增廣拉格朗日函數,而後將上述問題轉化成求解以下所示的xyz:

clipboard.png

即先求解xz的極小值,而後獲得y的更新。上述即爲ADMM標準解法,接下來,如何將Low Bit Neural Networks問題轉化成ADMM問題呢?
首先須要引入指示函數,形式以下所示:

clipboard.png

此時二值神經網絡的目標函數等價於優化目標函數和指示函數之和:

clipboard.png

這意味着,當指示函數屬於C時,優化目標即爲初始目標,沒有變化;當指示函數不屬於C時,指示函數爲正無窮,此時會首先優化指示函數。
而後須要引入一致性約束,這裏引入輔助變量G,並約束W=G,則目標函數等價於:

clipboard.png

加入輔助變量後,就能夠將二值神經網絡的優化問題轉化爲ADMM標準問題。接下來,寫出上式增廣拉格朗日公式,使用ADMM算法求解完成優化目標,以下所示:

clipboard.png

除上述二值網絡外,還有如下幾種經常使用的參數空間:

clipboard.png

參數空間中加入二、四、8等值後,仍然不須要乘法運算,只需進行移位操做。所以,經過這種方法將神經網絡中的乘法操做所有替換爲移位和加操做。
將上述Low Bit模型應用至ImageNet進行分類,最終的優化結果以下表所示:

clipboard.png

表一展現了該算法在AlexNet和VGG-16的應用結果,能夠發現該算法在二值和三值網絡中的效果明顯優於原始範圍的應用,而且三值網絡中的分類結果與全精度的分類結果相比,幾乎是無損的。表二是該算法在ResNet-18和ResNet-50中的應用,結果也與表一中相似。
在檢測方面,該算法仍具備較高的可用性。以下表所示:

clipboard.png

本次實驗的數據集爲Pascal VOC 2007。根據上表中數據可知,三值空間內的檢測結果精度與全精度參數空間相比,偏差幾乎能夠忽略不計。

2. Extremely Sparse Networks
稀疏神經網絡適用於網絡中大部分參數爲零的狀況,存儲參數能夠經過簡單的壓縮算法,例如遊程編碼,極大的減少參數存儲空間,而且因爲0可不參與計算,從而節約大量的計算空間,提高計算速度。稀疏網絡中,優化目標仍然和上述相同,限制條件改成以下所示:

clipboard.png

對f(W)求梯度降低值(Gradient Descent),將其進行迭代,每迭代一次,就進行一次鏈接剪枝(Connection Pruning),裁剪的標準是,W的參數越小,重要性越低,將比較小的參數置零,從而保證稀疏度。

clipboard.png

但上述解法存在一個明顯的問題是,以下圖所示:

clipboard.png

w1與w2相比,w1與0更近,但若將w1置零,對函數的損失更大,所以在決定w的重要性時,必須同時考慮w自己大小和斜率。只有在w值和斜率都比較小時,才能夠將其置零。基於上述標準,完成了對Alexnet和GoogleNet的稀少度實驗,以下圖所示:

clipboard.png

由上圖結果可知,不管是純卷積網絡,仍是包含全鏈接層網絡,均可以達到90%以上的稀疏度。

3. 實驗結果對比
上文中介紹了稀疏和量化兩種方法,實驗一將這兩種方法同時做用於Alexnet,結果以下所示:

clipboard.png

由上圖能夠得知,在3Bits,稀疏度爲90%以上時,精度損失幾乎能夠忽略不計,此時壓縮率能夠達到82倍以上。
實驗二中,將兩種方法做用於InageNet和Pascal VOC,其中P是稀疏,Q是量化,由圖中結果可知,實驗過程精度損失極小,而且InageNet中inference的速度有明顯提高,Pascal VOC能夠達到稀疏度88.7%,量化爲3bits,40倍的壓縮率下,相對於全精度網絡mAP只有1點的降低幅度。

clipboard.png

二. 訓練平臺

基於上述兩種方法,創建起Gauss訓練平臺。目前Gauss訓練平臺支持多種常見訓練任務(例如人臉、ocr、分類、監測等)和模型(例如CNN、LSTM等),而且支持多機訓練,可以以儘量少的參數設置,減小用戶使用成本。

clipboard.png

同時Gauss訓練平臺支持兩種模型訓練工具:Data-dependent和Data-independent。Data-dependent模型訓練工具須要用戶提供訓練數據,訓練時間較長,適合壓縮和加速要求較高的場景。Data-independent模型訓練工具無需用戶提供任何訓練數據,一鍵式處理,處理時間在秒級。

三. 高效前向推理工具

創建起訓練平臺以後,模型的真正運用還須要高效的前向推理工具。基於低精度矩陣計算工具AliNN&BNN,快速實現低比特矩陣乘法計算。實現後的推理工具在ARM平臺上相比競品提速2-5倍,Intel平臺上提速3倍。

clipboard.png

詳情請閱讀原文

相關文章
相關標籤/搜索