AAAI 2018 | 三星提出移動端神經網絡模型加速框架DeepRebirth

 2017-12-27 11:57:00.0

原標題:AAAI 2018 | 三星提出移動端神經網絡模型加速框架DeepRebirth

選自arXiv

如何讓手機等移動端設備運行神經網絡一直是科研人員努力的方向。三星研究院發表論文提出了全新的針對移動設備的深度學習模型加速框架:DeepRebirth,它通過「輕量化」現有連續和平行的非張量層與張量層達到壓縮模型的效果。實驗表明,DeepRebirth 在 GoogLeNet 上可以實現 3-5 倍的加速,同時也節省了大量計算資源。該論文已入選即將在 2 月份舉行的 AAAI 2018 大會。

近年來,很多應用深度學習技術的計算機視覺任務例如圖像分類和目標檢測都取得了重大突破。越來越多的移動設備應用了深度學習以提供準確、智能和有效的服務。然而,由於計算資源有限,深度學習模型在移動設備上的執行速度仍然是很多應用部署的瓶頸。在這篇論文中,研究人員重點關注於提高深度學習模型在移動 CPU 上的執行效率。一方面,大部分的移動設備都配置了移動 GPU,然而,相較於移動端 CPU,前者所獲得的加速效果非常有限,更別提由不同的移動 GPU 架構帶來的複雜性。另一方面,主流深度學習框架例如 Caffe 和 TensorFlow 目前只支持在移動設備上的 CPU 實現,因此實現高效的 CPU 模型更有價值。目前在實際應用中,在三星 Galaxy S5(參見表 4)上使用 GoogLeNet 識別一張圖像需要消耗超過 651ms 的時間,以及 984mJ 的能量(參見表 5)。一個有效的解決方案是通過應用廣泛的深度學習框架(例如 GoogLeNet 和 ResNet)結合對不同類型的層的深度模型加速,從而最小化準確率的損失。

在這篇論文中,研究人員發現非張量層在模型執行過程中消耗了太多的時間(參見圖 2),其中張量層和非張量層基於該層是否包含張量類型的參數而定義。例如,全連接層和卷積層是張量層,因爲它們分別包含 2D 和 4D 張量類型的權重參數。受此啓發,這篇論文提出了 DeepRebirth,一種新的深度學習模型加速框架,可以顯著減少非張量層上的執行時間,其中重點發展了兩個方向:(a)流程輕量化(streaming slimming);(b)分支輕量化(branch slimming)。

圖 1:本文提出的 DeepRebirth 模型加速管道的圖示。DeepRebirth 將一個已訓練的深度學習模型(圖左)優化爲一個加速「slim」(輕量化)模型(圖右)。該優化過程包括兩種操作:流程輕量化,用於合併非張量層(即池化層和歸一化層)到它們底部的卷積層(如淺藍色框內所示);分支輕量化,用於合併非張量分支、小尺寸卷積核(例如 1×1)的卷積分支到大尺寸卷積核的卷積分支(如淺黃色框內所示)。新生成的層被稱爲 slim 層。

圖 2:每個層的時間消耗分解。非張量層(例如 dropout、ReLU、LRN、softmax、池化層,等)以紅色字體表示,張量層(例如,卷積、內積)以黑色字體表示。

表 1:DeepRebirth 和已有的加速方法在三星 Galaxy S6 移動設備 CPU 上的運行效果對比。

3. DeepRebirth

圖 3:流程輕量化:以 GoogLeNet 爲例,運行時間是在三星 Galaxy S5 的 Caffe 中的 bvlc googlenet 的模型上測量的。圖左:卷積層(綠色)、LRN(紅色)、池化層(紅色);圖右:單個卷積層(綠色)。即將圖左的三個層合併爲圖右的單個卷積層(即 slim 層)。

圖 4:分支輕量化:以 GoogLeNet 爲例,運行時間是在三星 Galaxy S5 的 Caffe 中的 bvlc googlenet 的模型上測量的。圖左:有四個並行分支,分別是卷積層、卷積層+卷積層、卷積層+卷積層、卷積層+池化層。圖右:有兩個並行分支,分別是卷積層+卷積層、卷積層+卷積層。即將圖左的四個分支合併爲圖右的兩個分支。

4. 評估

4.1. GoogLeNet

表 3:分別輕量化每個層所得的 GoogLeNet 準確率。

表 4:在 GoogleNet 的所有層上使用不同加速方法獲得的前向傳播消耗時間的分解。

表 5. GoogLeNet 在不同移動設備上使用不同加速方法的運行時間比較(包括 SqueezeNet)。

表 6. GoogLeNet 存儲用量 vs. 能耗 vs. 運行時內存用量

4.2. AlexNet 和 ResNet

表 7. AlexNet 結果(準確率 vs. 速度 vs. 能耗)

表 8.ResNet(conv1-res2a)上的結果(準確率 vs. 速度)。在每一步上,我們都將「BatchNorm」和「Scale」層合併到底部的卷積層。

論文:DeepRebirth: Accelerating Deep Neural Network Execution on Mobile Devices

論文地址:https://arxiv.org/pdf/1708.04728.pdf

摘要:由於計算複雜性和內存緊張,在移動設備上部署深度神經網絡是一個具有挑戰性的任務。當前的模型壓縮方法(如使用 SVD 進行矩陣逼近)不能滿足實時處理的要求。本研究第一次發現了問題的瓶頸在於非張量層(有類張量參數),如池化層和歸一化層。因此,我們設計了一個全新的加速框架:DeepRebirth,它通過「輕量化」現有連續和平行的非張量與張量層達到壓縮模型的效果。層壓縮是通過不同的子結構實現的:(a)通過垂直合併連續的非張量和張量層來使進行流程壓縮;(b)通過橫向合併非張量和張量分支來減少分支。這些不同的優化操作可以加速模型執行速度並顯著減少運行時的存儲消耗。爲了最大限度地減少準確率損失,新生成層中的參數是基於理論分析和實際驗證進行精細調節完成的。在實驗中,DeepRebirth 在 GoogLeNet 上實現了 3-5 倍的加速,同時也節省了同樣比例的算力,而 ImageNet top-5 分類任務的識別精度只下降了 0.4%。此外,在三星 Galaxy S6 上,DeepRebirth 的圖片平均模型轉發時間僅需要 65ms,top-5 準確率爲 86.54%,內存用量減小了 2.5 倍。

其它 AAAI 2018 論文:


    文章來源:機器之心