每天都在汆肉中醒来青梅,好男人www在线观看,少妇无码自慰毛片久久久久久,国产欧美另类久久久精品丝瓜

登錄注冊
新聞 資訊 金融 知識 財經 理財 科技 金融 經濟 產品 系統 連接 科技 聚焦
首頁 > 金融 > > 正文

手機實時人工智能之“三維動作識別”:每幀只需9ms

2021-02-20 13:00:57來源:互聯網

機器之心專欄

作者:Wei Niu、Mengshu Sun等

來自美國東北大學(Northeastern University)的王言治研究組、威廉與瑪麗學院(William & Mary)的任彬研究組以及北卡羅來納州立大學(North Carolina State University)的慎熙鵬研究組提出了一種用于三維卷積神經網絡(3D CNN)的模型壓縮和移動加速框架 RT3D。

本文提出了一種用于三維卷積神經網絡(3D CNN)的模型壓縮和移動加速框架 RT3D,通過結合神經網絡權重剪枝和編譯器代碼優化技術,使模型的端到端運行時間與目前支持 3D CNN 的移動框架相比速度提升高達 29.1 倍,準確性損失僅為 1%~1.5%。當在手機上采用 C3D 或 R(2+1)D 模型時,可以在 150ms 內完成 16 幀視頻的計算。該工作由 CoCoPIE 團隊:美國東北大學(Northeastern University)的王言治研究組、威廉與瑪麗學院(William & Mary)的任彬研究組以及北卡羅來納州立大學(North Carolina State University)的慎熙鵬研究組共同完成,發表于第 35 屆美國人工智能協會年會(AAAI 2021)。

Model 與 codes 鏈接:https://github.com/CoCoPIE-Pruning/CoCoPIE-ModelZoo

現在大量移動設備配備了強大的高端移動 CPU 和 GPU,因此成為深度學習任務的重要載體。如圖 1 所示,最新的驍龍 690 SoC 芯片配備了一個 Adreno GPU, 一個 Hexagon DSP,以及 Kryo 多核 CPU。然而,目前的模型加速技術多應用于 2D CNN 上,很難使 3D CNN 在移動設備上實時運行且保持較高精度,因為現存的商用移動設備的計算和存儲能力不能承載高度復雜的模型結構和較高的模型維度。

圖 1 驍龍 690 移動 SoC 架構

神經網絡的權重剪枝技術在軟件層面上已被普遍應用。然而,直接將 2D CNN 權重剪枝方法泛化到 3D CNN 并不足以使移動設備上的計算同時保持高并行度和高準確度。因此,我們提出了 RT3D,通過結合軟件上的權重剪枝技術和硬件上的編譯器代碼優化技術在移動設備上實現 3D CNN 加速。其中權重剪枝又需要解決稀疏模式和剪枝算法兩個問題。

我們研究了兩種結構化稀疏模式,即對移動端加速友好的樸素結構化(Vanilla)稀疏和核組結構化(Kernel Group Structured, KGS)稀疏。Vanilla 稀疏移除整組核,而 KGS 稀疏是一種更加細粒度的結構化稀疏,充分利用了設備上的并行性,同時享有更高的靈活性。在剪枝算法方面,RT3D 引入了一種重新加權的正則化剪枝算法來實現所提出的稀疏模式,并和現存的啟發式及固定正則化的剪枝算法進行了比較。此外,在硬件方面,RT3D 采用了一個編譯器輔助的代碼生成框架,以將剪枝所帶來的計算量的減少轉換為移動設備上計算性能的增益。

該編譯器框架是通用的,支持稠密的(尚未壓縮的)和稀疏的 2D/3D 網絡的高效執行。由稀疏性帶來的的運行時間加速倍率接近整個模型計算量(FLOPs)的壓縮率。與當前最先進的支持 3D CNN 的移動設備上框架相比,RT3D 展示了高達 29.1 倍的端到端運行時間加速,且準確率僅損失 1%~1.5%。當在手機上運行具有代表性的 C3D 和 R(2+1)D 模型時,16 幀視頻的運行時間可達到 150ms 以內。如圖 2 所示,這是首次在現有移動設備上實現實時運行 3D CNN(此例使用了配備高通驍龍 865 處理器的三星 Galaxy S20)。

圖 2 實時 3D 行為識別

稀疏模式

為了有效減少 3D CNN 模型的整體計算量,我們將剪枝技術主要應用于計算量較大的卷積層。圖 3 給出了兩種結構化稀疏模式,其中(a)為樸素結構化(Vanilla)稀疏,(b)為核組結構化(KGS)稀疏。每個 3D 卷積層共包含五個維度,其權重張量沿著輸入通道和輸出通道兩個維度被分成多個卷積核組。圖中以每個核組包含 2×2 個核為例,被移除的權重用灰色表示。Vanilla 稀疏保留或移除整個核組,KGS 稀疏法則在同一核組的每個核中移除相同位置的權重。Vanilla 稀疏將 2D CNN 的結構化稀疏模式泛化到 3D CNN 中,它可以借助編譯器優化技術在設備上獲得直觀的運行加速,但同時會因整組核被移除導致模型準確率降低較多。而 KGS 稀疏有更高的細粒度以及靈活性,可以保證更高的準確率。

實際上,Vanilla 稀疏是 KGS 稀疏的一個特例,在相同壓縮比率下,只要借助有效的剪枝算法,KGS 稀疏法就能獲得比 Vanilla 稀疏法更高的模型準確率。此外,KGS 稀疏在設計上能與編譯器技術匹配以達到手機上的模型加速。卷積核組與輸入特征圖一起被轉化二維矩陣以進行矩陣乘法計算,如圖 3(b)所示。KGS 稀疏法相當于在核組內部進行列剪枝,計算開銷很小并可借助編譯器進一步減小。對于兩種稀疏模式而言,被保留的權重組成的矩陣仍然能夠充分利用現有手機設備上有限的并行度,所以手機加速性能(FLOPs / 秒、幀 / 秒)能夠得到同等程度的提升。在實際操作中,卷積核組的大小需要根據手機上的單指令流多數據流(SIMD)并行度以及計算開銷來提前決定。

圖 3 兩種結構化稀疏模式

模型壓縮的算法實現

近年來較為常見的剪枝算法大致可以分為兩大類,一類是啟發式剪枝算法,另一類是基于固定正則化的剪枝算法。前者往往會為神經網絡中各部分權重分配 “重要性評分”,然后根據評分來對模型進行剪枝。貪心算法是這一類型算法中的一個代表。這類算法往往存在一個通病,它們會在壓縮的早期階段就削減掉模型中的大量權重,這會對神經網絡準確度帶來較大的沖擊,使得壓縮比率有限。

第二類剪枝算法基于固定正則化,這種算法一般會在神經網絡的損失函數中添加一個固定的正則化項,通過神經網絡的反向傳播來實現權重矩陣的稀疏化,進而完成模型的裁剪。但基于固定正則化的剪枝算法存在局限性,在壓縮訓練的收斂過程中,所有權重會受到同等的懲罰,這會帶來潛在的模型精度損失。

為了克服先前算法的弊病,我們提出了一種新的算法:重加權正則化剪枝算法(Reweighted Regularization Pruning Algorithm)。不同于固定正則化剪枝為所有權重帶來相同的懲罰,重加權正則剪枝算法可以實現動態調節。特別是,對于那些較大且更加重要的權重,我們會減少對其的懲罰,對于那些較小且不重要的權重,我們會小幅度地增大對其的懲罰。而且這種算法以系統且漸進的方式執行,這樣可以避免貪心算法在早期階段削減大量的權重對模型造成的破壞。除此之外,我們的算法不需要手動設置模型中每層的剪枝率,各部分的壓縮比率可以在訓練過程中自動調節。

圖 4 剪枝算法結構分組示意圖,‖·‖g 表示對應壓縮分組中的 L-g 范數

性能加速結果

我們在三種 3D CNN 模型(C3D,R(2+1)D 和 S3D)上測試了建議的兩種結構化稀疏模式(即 Vanilla 和 KGS 稀疏模式)以及三種剪枝算法。除了提出的兩種稀疏模式之外,還實現了過濾器稀疏模式來進行對比,即以過濾器作為一個整體來進行裁剪,這是對 2D CNN 過濾器剪枝的直接實現。所有模型都在 Kinetics 數據集上進行了預訓練,并作為預訓練模型進行遷移學習,轉移到了 UCF101 和 HMDB51 數據集上。

表 1 在 UCF101 數據集上 3D CNN 壓縮結果比較

表 1 提供了在 UCF101 數據集上使用各種剪枝算法和稀疏模式對 C3D,R(2+1)D 模型的修剪結果。對于每種剪枝算法,在相同剪枝率下比較了三種稀疏模式(FLOPs 減少是基于模型整體而言的),并比較了兩種剪枝配置下的 KGS 壓縮結果。從表中可以看出,KGS 稀疏模式始終優于 Vanilla 稀疏模式,這兩個方案的性能均優于過濾器剪枝。重加權的正則化算法始終優于其他兩個剪枝算法。如果使用加權加權正則化和 KGS 稀疏性方案,則在 2.6 倍剪枝倍率下,C3D 和 R(2+1)D 只有 1% 1.5%的精度損失。

表 2 移動 CPU 和 GPU 上的 RT3D,MNN 和 PyTorch 的運行時間比較。

接下來,我們將提出的 RT3D 與 MNN 和 PyTorch Mobile(PyTorch)的運行時間進行比較,來評估 RT3D 的實際加速效果。表 2 給出了端到端的 3D CNN 運行時間結果。RT3D(Dense)意為直接使用我們的編譯器對稠密的(尚未壓縮的)模型進行處理,RT3D(Sparse)意為在編譯器上運行的模型經過了重加權正則化剪枝算法支持下的 KGS 稀疏結構壓縮。MNN 尚不支持 R(2+1)D 和 S3D,所以這里不給出相關結果。

RT3D 在移動 CPU 和移動 GPU 上都支持稠密的(尚未壓縮的)和稀疏的 3D CNN,PyTorch 僅在 CPU 上支持稠密模型,而 MNN 僅在 CPU 上支持稠密 C3D 模型。對于稀疏模型,RT3D 使用帶有 KGS 稀疏性的重加權正則化剪枝算法修剪模型,修剪率分別為 C3D 3.6 倍,R(2+1)D 3.2 倍,S3D 2.1 倍(這里的剪枝率是對于模型的整體 FLOPs),準確度為 80.2%,92.0%和 90.2%。在表中,將 RT3D 的提速與 PyTorch 進行了比較。在所有情況下,RT3D 在移動 CPU 上均優于 MNN 和 PyTorch。而在移動 GPU 上 RT3D 的效果更為出色。例如,對于 C3D,完全優化的 RT3D(稀疏)在 CPU 上分別達到了 PyTorch 和 MNN 性能的 7.1 倍和 2.7 倍,在 GPU 上分別達到了 17.9 倍和 6.7 倍。值得注意的是,在移動 GPU 上,經過全面優化的 RT3D 在 C3D,R(2+1)D 和 S3D 上可以分別在 142 ms,141 ms 和 293 ms 內完成 16 幀計算,從而實現 3D CNN 在移動設備上的實時運行。

表 3 Vanilla 和 KGS 稀疏模式之間的比較(基于 UCF101 數據集)

表三給出了燒燭研究的實驗結果。通過控制相同的剪枝 top-1 精度,在重加權正則加權算法下,我們還比較了 Vanilla 和 KGS 兩種稀疏模式的修剪率與運行時間。由表中數據我們可以看出,由于 KGS 的高靈活性和與編譯器級優化的無縫匹配,在 C3D 和 R(2+1)D 上以相同的修剪精度實現了較高的剪枝率(在 FLOPs 中)和較低的計算延遲。

更廣泛的影響

RT3D 是第一個在移動設備上實時運行 3D CNN 且沒有明顯準確率損失的神經網絡加速方案,在此之前只能通過移動設備上特定(而且更加昂貴)的硬件來實現。對于以往通過云計算的方式實現的行為檢測的機器學習應用,RT3D 將會在移動設備上以邊緣計算的方式實現。這項技術不僅可以使數據隱私性得到了顯著增強,還可以極大地拓寬機器學習在其他領域的應用。

百萬級文獻分析,十萬字深入解讀

2020-2021 全球AI技術發展趨勢報告

報告內容涵蓋人工智能頂會趨勢分析、整體技術趨勢發展結論、六大細分領域(自然語言處理、計算機視覺、機器人與自動化技術、機器學習、智能基礎設施、數據智能技術、前沿智能技術)技術發展趨勢數據與問卷結論詳解,最后附有六大技術領域5年突破事件、Synced Indicator 完整數據。

識別下方二維碼,立即購買報告。

THE END

轉載請聯系本公眾號獲得授權

關鍵詞: 手機 實時 人工智能 三維

熱點
主站蜘蛛池模板: 营口市| 台湾省| 石狮市| 台前县| 乡宁县| 龙南县| 简阳市| 荔波县| 舟曲县| 南郑县| 武山县| 宜兰市| 图木舒克市| 汶上县| 土默特右旗| 乌拉特前旗| 宿松县| 突泉县| 宽城| 临潭县| 松滋市| 富锦市| 日照市| 伊宁市| 三江| 连南| 乌恰县| 堆龙德庆县| 丰原市| 云安县| 东方市| 十堰市| 信阳市| 高雄县| 金塔县| 安远县| 井陉县| 罗平县| 高淳县| 漠河县| 宜宾县|