機器之心發佈算法
做者:馬曉龍緩存
如何助力深度神經網絡在移動端「看得」更清,「跑得」更快?來自美國東北大學等機構的研究者提出一種新型全自動模式化稀疏度感知訓練框架。
基於模式化稀疏度的剪枝方法可以使深度神經網絡在圖像識別任務中「看得」更清楚,同時減少了模型尺寸,使模型在移動端「跑得」更快,實現實時推理。網絡
由美國東北大學王言治教授研究團隊與美國威廉瑪麗學院任彬教授研究團隊共同提出,IBM、清華等共同研究的模式化稀疏度感知訓練框架,不只可以同時實現卷積核稀疏模式的全自動提取、模式化稀疏度的自動選擇與模型訓練,還證實了所提取的模式化稀疏度與理論最佳模式化稀疏度相匹配,並進一步設計了可以利用模型特色實現編譯器優化的移動端推理框架,實現了大規模深度神經網絡在手機移動端上的實時推理。目前,這篇文章已被 ECCV 2020 會議收錄,該文章同時入選 ECCV 2020 demonstration track。框架
目前,這項技術已經普遍應用在多種類型的人工智能(AI)任務中,包括但不限於:Yolo-v4 目標檢測、實時相機風格遷移、AI 實時換臉、相機超分辨率拍攝、視頻實時上色等,而且成功落地。以上任務所有在手機端上實現。機器學習
讀者可點擊如下連接,觀看手機端實現的更多 AI 任務展現:ide
官方網站:https://www.cocopie.ai/工具
B 站:https://space.bilibili.com/573588276性能
接下來,咱們來看論文的詳細內容。學習
論文簡介測試
論文連接:https://arxiv.org/abs/2001.07710
經過開發功能強大的算法和設計工具,深度神經網絡(DNN)成爲各個領域的最新技術,包括圖像分類、計算機視覺、語音識別和目標檢測。隨着海量數據不斷增長,應用程序日趨複雜,模型的大小也急劇增長,對算力與內存的需求與日俱增,使得深度神經網絡在資源有限的移動平臺上實現實時推理受到很大的挑戰。
近年來,移動與邊緣計算平臺正在迅速取代臺式機和筆記本電腦,成爲深度神經網絡應用程序的主要計算設備。這些移動與邊緣計算設備的物理尺寸受到嚴格限制,並結合了此類設備須要長時間運行的要求。然而,在大規模深度神經網絡實際部署時,藉助現有的移動端深度神經網絡推理框架依然很難實現實時推理。即使這些平臺可以運行大規模深度神經網絡,巨大的計算代價對計算平臺的運行時長也提出了挑戰。所以,研發微型化的網絡模型與可通用的加速方法勢在必行。
爲了彌合深度學習任務的性能(推理速度)要求與目標計算平臺上資源可用性之間的差距,在算法層面,深度神經網絡模型剪枝技術已被證實可有效消除原始模型中的冗餘,從而獲得小尺寸的網絡模型。當前的兩種主流剪枝方案——非結構化權重剪枝和結構化權重剪枝,表明了剪枝方式的兩個極端,沒法在保證模型精度和泛化能力的前提下,解決硬件執行效率低下的問題。研究者認爲,必須尋求一種能夠提供甚至超越兩種稀疏性的最佳剪枝方案。
如圖 1 所示,研究人員可視化了 VGG-16 在 ImageNet 上的預訓練模型的部分權重,而且發現(i)卷積核的有效面積(即具備較高絕對值的權重)造成一些特定形狀並在模型中反覆出現,(ii)某些卷積核的權重值很是小,所以並不能對輸出產生有效的激活,研究人員認爲這種卷積核是無效卷積核。
圖 1. ImageNet 數據集上 VGG-16 第三卷積層中隨機選擇的卷積核的熱力圖。每一個內核中的權重值都通過歸一化處理,深色表示該處爲較高的絕對值。
基於上述兩個發現,該研究提出了一個新的稀疏性維度——模式化稀疏度,而且提出了基於模式化稀疏度的深度神經網絡權重模式化剪枝的概念。
如圖 2 所示,模式化剪枝中包含了兩種卷積核層面的模型稀疏化方法,即卷積核(convolution kernel)模式化剪枝(pattern pruning)與連通性剪枝(connectivity pruning)。
圖 2. 模式化剪枝示意圖。
爲了實現卷積核模式化剪枝,該研究在每一個卷積內核中刪除固定數量的權重,其他權重造成具備特定形狀的「模式化內核」。經過進一步挖掘,研究人員發現一些精心設計的卷積核模式(kernel pattern)具備特殊的視覺特性,能夠潛在地提升圖像質量,從而加強深度神經網絡的特徵提取能力。可是,什麼樣的卷積核模式可以更好地提高模型性能,同時保證硬件執行效率呢?這依然是個重要的問題。
同時,即便存在理論最優的卷積核模式,它可否在實際狀況中獲得深度神經網絡的「青睞」?這又給該稀疏化方法的應用增長了不肯定性。本文將從理論層面、算法實現層面、移動端硬件與編譯器優化層面詳細論述以上問題,並用實驗數據展現模式化剪枝在高精度、實時性推理方面的強大做用。
理論層面
在理論層面,該研究從一個全新且獨特的角度審視了剪枝的概念。不一樣於將剪枝定義爲模型參數的移除,這篇論文將剪枝轉化成對神經網絡模型權重加入一層二進制掩膜。研究人員將不一樣形狀的二進制掩膜的集合稱爲「模式集」(pattern library),並將加入掩膜看做一種對神經網絡的插值操做。經過不一樣模式的掩膜插值,獲得一些功能性圖像濾波器特徵,可以實現圖像的銳化與降噪,提升圖像質量。值得一提的是,插值操做的過程僅須要少許種類的卷積核模式(或者說一個小尺寸的模式集)。
這樣作所帶來的好處是:(i)在算法層面,相對較少的卷積核模式可確保合適的搜索空間,以實如今深度神經網絡上獲得較好的訓練效果;(ii)從編譯器角度來看,更少的模式意味着更少的計算範式,從而可以潛在地下降線程分支。
圖 3 展現了該研究設計的八種卷積核模式,經過 n 次插值,圖 3(上)可以獲得高斯濾波器,圖 3(下)可以獲得加強型拉普拉斯高斯濾波器。其中 n 表明神經根網絡層數,係數 p 爲任意位置 1 出現的機率,在正則化運算後沒有實際意義。
圖3.卷積核模式設計。
算法實現層面
經過上述理論推導,咱們獲得了八種卷積核模式做爲模式集。可是,一些相當重要的問題仍未獲得解決。例如,這些從理論層面得出的最優模式集在算法實現層面上也是最理想的嗎?即使以上問題的答案是確定的,那麼如何爲每一個卷積核選擇合適的卷積核模式並訓練非零權重?
爲了回答上述問題,研究者在算法實現層面,設計了模式化稀疏度感知訓練框架(pattern-aware network pruning framework),可以同時實現卷積核模式集的自動提取,模式化稀疏度的自動選擇與模型訓練。
在卷積核模式集的自動提取中,研究人員首先構建一個模式集全集,包含了全部可能種類的卷積核模式。在訓練過程當中,他們將這個模式集做爲稀疏化目標,經過 ADMM(alternating direction method of multipliers)將原始剪枝問題解耦爲 Primal-Proximal 問題,迭代式地經過傳統梯度降低法求解 Primal 問題,並引入一個二次項迭代求解 Proximal 問題。經過每次 Primal-Proximal 迭代更新,使卷積核動態地從模式集中選擇當前最優的卷積核模式,並同時經過梯度降低法訓練該模式非零位置的權重。當卷積覈對稀疏模式的選擇趨於穩定的時候(通常僅須要迭代 3-5 次),就能夠刪除掉那些被選擇次數很是少的卷積核模式,從而將模式集的大小下降,並用更新後的模式集進行下一輪迭代,最終實現模式集的自動提取。
儘管上述過程爲迭代過程,但須要的總訓練時長倒是很是低的,緣由在於該操做的目的是提取模式集而非完成整個訓練過程。完成每一次模式集提取的迭代過程僅僅須要常規訓練時長的 10%-20%。當訓練集的大小足夠小的時候,咱們即可以用比常規訓練時長減小 20% 左右的訓練時間完成訓練。從實驗結果來看,完成模式集提取、模式化稀疏度選擇與模型訓練的總時長甚至能夠少於大部分其餘模型剪枝工做。
移動端硬件與編譯器優化層面
經過上述模式化稀疏度感知訓練框架,咱們獲得了模式化剪枝後的稀疏模型。如何利用模型的權重空間分佈特色實現編譯器優化成爲移動端硬件與編譯器優化層面的研究重點。
研究人員設計了適合模式化剪枝的移動端推理框架,可以部署並高效執行模式化剪枝後的深度神經網絡模型,如圖 4 所示。
圖 4. 深度神經網絡基於編譯器優化的移動端推理框架概述。
這種編譯器構架基於代碼生成原理,將深度神經網絡模型轉化爲底層靜態執行代碼,並配合適合模型特色的編譯優化。研究人員利用已知的卷積核模式與連通性信息,相應地將每一個卷積核的計算範式進行歸類。經過將相同的卷積核模式(相同的計算範式)排列在一塊兒,並將類似的重排結果在相同的線程中進行並行計算,消除全部靜態代碼分支,保證了高指令級與線程級平行性。
咱們同時能夠觀察到,卷積核與輸出通道重排後的模型權重分佈很是規則與緊湊,所以,在緩存與寄存器訪問頻率上的優化效果變得很是明顯。規則與緊湊的數據意味着更低的數據訪問頻率,而數據訪問頻率下降意味着更低的內存開銷。這一設計方法是可通用的,所以該研究提出的移動端推理框架能夠大規模地部署在現有各類量產手機端,實現端上 AI 實時推理,知足用戶需求。
實驗結果
該研究的實驗結果從三個方面展現了模式化稀疏度感知訓練框架與基於編譯器的移動端推理框架的性能,分別是卷積核模式集提取結果、模式化剪枝精度提高效果與移動端推理速度。
首先,圖 5 展現了卷積核模式集提取結果。研究人員首先肯定了每個卷積核中應保留 4 個非零值,這樣作的好處是控制模式集總集的大小,同時也利於移動端 CPU/GPU 的 SIMD 結構。當通過兩次模式集提取後,模式集總集大小從 126 減少到 32 個,這時的模式集中卷積核模式分佈圖如圖 5(b)所示。研究人員進一步訓練並刪除出現次數最少的卷積核模式後,獲得了 Phase 一、二、3 模式集,其中的卷積核模式數量分別爲 十二、八、4,如圖 5(a)所示。能夠發現,Phase 2 模式集所含的卷積核模式與理論推導與八種卷積核模式徹底匹配。所以研究人員得出結論,基於理論得出的卷積核模式也是算法實現層面上對於深度神經網絡最優的卷積核模式。
圖 5. 模式化稀疏度感知訓練框架的模式集提取結果。
其次,研究人員展現了模式化剪枝對深度神經網絡精度的提高。經過剪枝,深度神經網絡將圖像的細節「看得」更清了。如圖 6 所示,經過不一樣的可視化方法,通過模式化剪枝的深度神經網絡模型對於圖像有明顯的加強做用,模式化剪枝後的模型可以提取圖像中更多的關鍵特徵,並下降圖像中的噪聲。
圖 6. 基於 VGG-16 在 ImageNet 上剪枝後的模型可視化效果圖。此處採用了三種不一樣的可視化方法:(a)guided-backpropagation (BP) ,(b) integrated gradients,(c)inverted representation。
再次,研究人員展現了在不一樣種類的模式集(Phase 一、二、3)下,多種深度神經網絡在 CIFAR-10 與 ImageNet 訓練集上不一樣程度的精度提高效果,如圖 7(a)所示。咱們發現,在絕大多數狀況下,當模型加載 Phase 2(同時也是理論推導得出的模式集)時,深度神經網絡的精度提高幅度更大。這一現象使研究人員更加確信,基於理論得出的卷積核模式同時也是算法實現層面上對於深度神經網絡最佳的卷積核模式。
圖 7(b)從另外一個角度佐證了這一觀點:當擁有不一樣種類模式集的深度神經網絡模型疊加相同剪枝率的連通性剪枝時,擁有 Phase 2 的模型可以保持更高水平的模型精度。研究人員在不一樣的網絡結構模型中觀察到了一樣的現象。所以能夠證實,Phase 2 模式集擁有更加穩定的精度表現。
圖 7. (a)基於 CIFAR-10 與 ImageNet 的不一樣深度神經網絡在模式化剪枝下的精度升高實驗結果,(b)卷積核模式化剪枝疊加連通性剪枝後的 ResNet-18 訓練曲線圖。
表 1 進一步展現了模式化剪枝的整體結果,研究人員將最好的剪枝精度與其模式集類型記錄在表格中,並與其餘研究工做進行系統性對比,結果代表大部分擁有最高精度的剪枝模型是基於 Phase 2 模式集的,這一現象同時體如今不一樣的數據集與深度神經網絡中。
表 1. 基於模式化的剪枝在 CIFAR-10 與 ImageNet 數據集上的剪枝結果對比。
最後,該研究測試了基於編譯器的移動端推理框架對模式化剪枝模型的加速效果。實驗結果代表,模式化剪枝與編譯器的協同優化極大地提升了移動端的推理速度。在移動端,研究人員使用了 Samsung Galaxy S10 智能手機來測試推理速度。
如圖 8 所示,研究者測試了基於 Phase 2 模式集的稀疏化深度神經網絡模型在 ImageNet 圖像上的推理速度與在現有的深度神經網絡加速器(TVM、MNN、TensorFlow-Lite)上的速度對比。
圖8.基於Phase 2模式集的稀疏化深度神經網絡模型在移動端的加速效果展現圖。
結果代表,該研究提出的模式化剪枝與通用型移動端推理框架在推理速度上遠遠超過現有的加速器。事實上,在每一種網絡結構下,該研究提出的方法在移動端都能在沒有精度損失的狀況下實現實時計算的要求(30 frames/second,即 33ms/second)。例如,在大型神經網絡 VGG-16 上,該方法的推理時間僅爲 15ms。這一對於最優的模式化剪枝方法與通用型的移動推理框架的研究使得在移動端對任意神經網絡進行實時運算變爲可能。
圖9.基於模式化剪枝與通用型移動端推理框架在手機端不一樣AI應用場景的執行效果示意。從左到右依次爲:相機超分辨率拍攝、實時相機風格遷移、視頻實時上色、AI換臉。
圖10.基於模式化剪枝與通用型移動端推理框架在手機端的執行效果圖。從左到右依次爲,實時相機風格遷移、視頻實時上色、相機超分辨率拍攝。
做者簡介
馬曉龍,美國東北大學 ECE 系 PhD 四年級學生,主要研究領域爲機器學習算法,研究內容在 AAAI、ECCV、TNNLS、ASPLOS、DAC、ICS、PACT 等多個機器學習和計算機系統會議上發表。