淺談深度神經網路的壓縮需求

深度神經網路的壓縮需求

目前,深度神經網路(Deep Neural Network,DNN)已在諸多領域得到廣泛應用並獲得顯著成效,但是其模型規模龐大、計算複雜,難以直接遷移到資源受限的終端裝置。傳統的DNN壓縮演算法能夠降低模型尺寸、加速模型計算,但通常需要研究人員探索較大的設計空間並有效權衡計算效率與模型準確率。因此,為減少對人工經驗的依賴和人為因素的干擾,DNN壓縮自動化將成為未來的研究熱點。儘管關於DNN自動壓縮的研究仍處於起步階段,諸多問題尚未解決,但這也正是這一人工智慧新領域的魅力所在。

淺談深度神經網路的壓縮需求

主流DNN分類模型的推理精度、計算量和執行時記憶體對比

深度神經網路憑藉深層結構和多尺度的特徵提取能力,在諸多研究領域取得了成功,並已廣泛應用於影象分類、語義分割、目標檢測等場景,其效能實現了跨越式提升。上圖展示了近年來各種主流的DNN模型在ImageNet上的分類精度,可以看出這些DNN模型取得了極高的分類效果,在事實上已經超越了人類的分類能力。然而,由於DNN模型的深層非線性結構,其往往包含巨量引數,執行時記憶體和計算規模十分龐大,計算過程需要消耗極大的計算資源。

雖然這些DNN模型實現了極其優秀的分類效能,但是在推理一張圖片的過程中,最小的計算量也高達800萬次浮點計算(如Mobile-NetV2),而最大的計算量甚至超過了2。9億次。此外,這些DNN模型的執行時記憶體佔用頗多,最少的記憶體佔用量也達到了50MB,最多的甚至超過了1400MB。龐大的計算量和記憶體佔用,導致的結果是執行DNN應用需要龐大的算力資源和儲存資源支撐,比如更多的計算核心和記憶體快取等,並且計算時極其耗能。

DNN模型為了提升檢測效能,其結構勢必會變得更加複雜,引數數量也愈加龐大,這導致計算成本急劇增加。而目前的計算平臺,以NVIDIAA100計算顯示卡為例,雖然其計算效能的峰值達到了19T FLOPs,但是其功耗高達400W,能耗比僅為48。73G FLPOs/W,部署成本十分高昂。一些低成本的計算裝置具有相對較高的計算能耗比,比如基於現場可程式設計門陣列(FPGA)的各類加速器,但是其計算資源往往有限,難以直接執行絕大多數的DNN模型,這些問題成為了在實際生產環境中部署和執行DNN的障礙。

深度神經網路壓縮的研究現狀

針對上述問題,研究人員提出神經網路壓縮來降低DNN計算量和儲存消耗,促使DNN向資源受限的裝置遷移,拓展DNN的應用平臺。具體來講,深度神經網路壓縮一般指能提升模型執行效率的方法,通常包括降低DNN模型引數量或計算量。應用廣泛的典型神經網路壓縮方法當屬模型剪枝和模型量化。前者關注裁剪冗餘的模型引數和連線以降低模型的計算量,後者關注利用低精度資料的高效處理以降低記憶體佔用和計算單元設計複雜度。經過剪枝或量化後的DNN模型可被部署於資源受限的嵌入式裝置(如嵌入式FPGA),拓展邊緣智慧的廣泛應用。

此外,還有其他型別的DNN壓縮方法,如張量分解和知識蒸餾。張量分解的方法將DNN模型中高維的權值或特徵值等張量分解為多個小的張量來計算,以降低張量計算的複雜度。知識蒸餾則是研究如何把龐大的教師DNN模型所學習到的知識轉移到小引數量和計算量的學生模型上來,以提高推理效能和計算效率。

相關文章