性能提升最高達120倍!滴滴實習生提出自動結構化減枝壓縮演算法框架 | AAAI 2020

  • 2020 年 2 月 14 日
  • 筆記

乾明 編輯整理 量子位 報道 | 公眾號 QbitAI

在相同準確率下,實際參數量的壓縮,相對之前方法最大可以提高超120倍。

這就是滴滴實習生提出的自動結構化減枝壓縮演算法框架帶來的性能提升,名為AutoCompress

核心在於自動化的去尋找深度模型剪枝中的超參數,去除模型中不同層的參數冗餘。

在CIFAR和ImageNet數據集的大量測試表明,AutoCompress的效果顯著超過各種神經網路壓縮方法與框架。

這一研究也被AAAI2020接收。

研究人員表示,這一研究能替代人工設計的過程,並實現超高的壓縮倍率,滿足嵌入式端上運行深度模型的實時性能需求。

他們是如何實現的?我們下面一一解讀。

自動化設置深度模型剪枝中的超參數

近年來,隨著深度神經網路模型性能不斷刷新,模型的骨幹網路參數量愈發龐大,存儲和計算代價不斷提高,從而導致難以部署在資源受限的嵌入式平台上。

深度神經網路模型壓縮技術,成為解決這一問題不可或缺的關鍵,也成為近年來研究熱點之一。

也出現了不少方法,其中之一便是結構化剪枝(structured pruning),能夠在平台層面上,解決硬體執行效率低,記憶體訪問效率差,計算平行度不高問題,從而受到了學術界與工業界的重視。

但它也有「硬傷」,在演算法實現過程中涉及到到大量的超參數設置。比如如何確定模型的壓縮維度,或者如何確定模型中每層的壓縮比例等等。

這都需要專家們一點點「掉頭髮」地去設計指導,而且人工上去設計這些超參數的過程冗長且複雜。

效果也不一定好,畢竟這在很大程度上還依賴於相關人員的參數調節經驗。

然後就有研究人員心思開始活泛起來了,能不能自動設置超參數?如果實現了,將能夠大幅度提高演算法實現效率,想想都挺讓人激動。

於是就有人開始幹起來了,比如MIT、CMU和Google的研究學者們提出了一種名為AMC的方法,利用了深度增強學習(Deep Reinforcement Learning (DRL))的方法去決策每層的剪枝比例。

雖然實現了自動化調參的設想,但也有一些局限性。

一方面,這個研究只採用了單一的輸出通道(filter)剪枝維度;另外一方面,為了得到稀疏化模型,其所採用的剪枝方法僅僅是在模型訓練過程中引入一個靜態的正則項。

但更深層次的局限性在於,其所採用的基於DRL框架的剪枝方法,本質上與剪枝問題難以兼容。在結果中,最高壓縮率只有非結構化(non-structured)的5倍壓縮倍率。

滴滴的研究中,改進了這些不足,提出了一個通用流程(generic flow),專門用於神經網路權重剪枝問題超參數設置自動化過程。

整體上,一共分為4步。先是行為抽樣(步驟1),然後快速評估(步驟2),接著確定決策(步驟3),最後是剪枝操作(步驟4)。

基於上述通用流程,並針對之前方法的局限性,通過綜合現有的深度神經網路與機器學習框架,他們實現了目前最高效的深度神經網路自動化結構化剪枝的通用框架,並命名AutoCompress。

實際參數量的壓縮,最大能提高120多倍

那AutoCompress是如何工作的呢?論文中提到了三大新的設計:

(1)提出混合型的結構化剪枝維度;(2)採用高效強大的神經網路剪枝演算法ADMM(交替乘子優化演算法)對訓練過程中的正則項進行動態更新;(3)利用了增強型引導啟發式搜索的方式進行行為抽樣。

基於這些新設計,他們提出的框架是這樣的:

整體上來說,AutoCompress框架進行模型自動化剪枝主要有兩個步驟,先是通過基於ADMM演算法的結構化剪枝,得到權重分布結構性稀疏化的模型;

然後通過網路結構凈化(Purification)操作,將ADMM過程中無法完全刪除的一小部分冗餘權重找到並刪除。

值得注意的是,這兩個步驟都是基於相同的啟發式搜索機制。

舉例來講,給定一個原始模型,他們會設置兩種目標函數——根據權重數量設置或根據運算量(FLOPs)設置。

搜索過程進行若干輪,比如第一輪目標為壓縮兩倍權重數量,第二輪為壓縮四倍權重數量。在每一輪搜索過程中,首先初始化一個行為(超參數),然後每次對行為進行一個擾動(超參數的小幅變化)生成新的行為。

根據模擬退火演算法原理,評估兩個行為,如果新的行為評估結果優於原結果則接受該行為,如果新的行為評估結果劣於原結果則以一定概率接受該行為。

每一輪演算法中的溫度參數T會下降,直到T下降到某個閾值後即停止搜索。最後,根據搜索得到的超參數,對神經網路進行結構化剪枝操作。

效果如何?他們也進行了測試:

在VGG-16在CIFAR-10數據集上,結構化剪枝壓縮率高達52.2倍,無精度損失,在 Samsung Galaxy S10智慧手機上測試(使用程式碼生成優化版編譯器),其運行速度為2.7ms。

ResNet-18在CIFAR-10數據集上更是達到了54.2倍結構化剪枝壓縮率無精度損失。

相比之前的方法,如果考慮到ResNet-18與ResNet-50本身的大小差距,可以在準確率有所上升的情況下比之前的方法減小120倍權重參數。

在ImageNet數據集上,VGG-16達到了6.4倍結構化壓縮率,精度損失僅為0.6%,ResNet-18達到了3.3倍的結構化壓縮率,無精度損失。

而且, AutoCompress框架也可以應用於非結構化剪枝,其壓縮結果使ResNet-50在ImageNet數據集上可以做到9.2倍無精度損失的壓縮,更能達到17.4倍的壓縮率,僅損失0.7%的精度。

所以,他們得出結論,與其他方法相比,AutoCompress的效果超過各種神經網路壓縮方法與框架,得到的高效神經網路模型可以在嵌入式移動系統中實現實時推理運算。

滴滴AI Lab實習生

研究的第一作者,名為劉寧,是美國東北大學的在讀博士生,師從美國東北大學王言治教授。

高中時曾獲得北京市高中物理競賽二等獎,本科是電子資訊工程專業,曾獲得全國大學生物聯網競賽三等獎。

2015年在雪城大學獲得碩士學位。這次介紹的研究,是他2019年在滴滴實習時的成果之一,實習導師是滴滴智慧控制首席科學家唐劍。

在滴滴實習之前,他也在網易、360實習過。

根據滴滴的報道,他也談到了自己的研究規劃:希望繼續在深度學習模型壓縮、設計上深入研究,把學習到的知識和研究成果應用到現實場景。

目前,這個框架已經在滴滴已經得到了實際有效應用。

傳送門

AutoCompress: An Automatic DNN Structured Pruning Framework for Ultra-High Compression Rates https://arxiv.org/abs/1907.03141

作者系網易新聞·網易號「各有態度」簽約作者