把CNN裡乘法全部去掉會怎樣?華為提出移動端部署神經網絡新方法

2021-01-07 機器之心Pro

選自arXiv

作者:Mostafa Elhoushi 等機器之心編譯參與:魔王、杜偉

前不久,機器之心報導過北大、華為諾亞等合著的一篇論文,探討了不用乘法用加法能不能做深度學習。最近,我們又看到華為的另一篇論文,這一次沒有用加法替代乘法,而是用「按位移位」和「按位取反」來取代乘法運算。

深度學習模型,尤其是深度卷積神經網絡(DCNN),在多個計算機視覺應用中獲得很高的準確率。但是,在移動環境中部署時,高昂的計算成本和巨大的耗電量成為主要瓶頸。而大量使用乘法的卷積層和全連接層正是計算成本的主要貢獻者。論文連結:https://arxiv.org/pdf/1905.13298.pdf華為的這篇論文提出了解決該問題的新方法,即引入兩種新型運算:卷積移位(convolutional shift)和全連接移位(fully-connected shift),從而用按位移位(bitwise shift)和按位取反(bitwise negation)來取代乘法。使用了卷積移位和全連接移位的神經網絡架構族即 DeepShift 模型。DeepShift 模型可以在不使用乘法的情況下實現,且在 CIFAR10 數據集上獲得了高達 93.6% 的準確率,在 ImageNet 數據集上獲得了 70.9%/90.13% 的 Top-1/Top-5 準確率。研究者將多種著名 CNN 架構的卷積層和全連接層分別進行卷積移位和全連接移位轉換,並進行了大量實驗。實驗結果表明,有些模型的 Top-1 準確率下降程度低於 4%,Top-5 準確率下降程度低於 1.5%。所有實驗均使用 PyTorch 框架完成,訓練和運行代碼也已經發布。代碼地址:https://github.com/mostafaelhoushi/DeepShift引言越來越多的深度神經網絡針對移動和 IoT 應用而開發。邊緣設備通常電量和價格預算較低,且內存有限。此外,內存和計算之間的通信量在 CNN 的電量需求中也佔主要地位。如果設備和雲之間的通信成為必要(如在模型更新等情況下),那麼模型大小將影響連接成本。因此,對於移動/IoT 推斷應用而言,模型優化、模型規模縮小、加速推斷和降低能耗是重要的研究領域。目前已有多種方法可以解決這一需求,這些方法可分為三類:

第一類方法是從頭開始構建高效模型,從而得到新型網絡架構,但要找出最適合的架構需要嘗試多個架構變體,而這需要大量訓練資源;

第二類方法是從大模型開始。由於網絡中存在一些冗餘參數,這些參數對輸出沒有太大貢獻,因而我們可以基於參數對輸出的貢獻程度對它們進行排序。然後修剪掉排序較低的參數,這不會對準確率造成太大影響。參數排序可以按照神經元權重的 L1/L2 均值(即平均激活)進行,或者按照非零神經元在某個驗證集上的比例進行。剪枝完成後,模型準確率會下降,因此需要進一步執行模型訓練來恢復準確率。一次性修剪太多參數可能導致輸出準確率大幅下降,因此在實踐中,通常迭代地使用「剪枝-重新訓練」這一循環來執行剪枝操作。這可以降低模型大小,並加快速度;

第三類方法是從大模型開始,然後用量化技術來縮減模型大小。在一些案例中,量化後的模型被重新訓練,以恢復部分準確率。

這些方法的重要魅力在於:它們可以輕鬆應用於多種網絡,不僅能夠縮減模型大小,還能降低在底層硬體上所需的複雜計算單元數量。這帶來了更小的模型佔用、更少的工作記憶(和緩存)、在支持平臺上的更快計算,以及更低的能耗。此外,一些優化技術用二值 XNOR 運算來替代乘法。此類技術在小型數據集(如 MNIST 或 CIFAR10)上可能有較高的準確率,但在複雜數據集(如 ImageNet)上準確率會嚴重下降。華為的這篇論文提出兩種新型運算——卷積移位和全連接移位,用按位移位和按位取反來取代乘法,從而降低 CNN 的計算成本和能耗。這一神經網絡架構族即為 DeepShift 模型。該方法主要使用 2 的冪或按位移位從頭開始執行 one-shot 訓練,或者對預訓練模型進行轉換。DeepShift 網絡

圖 1:(a) 原始線性算子 vs 本研究提出的移位線性算子;(b) 原始卷積算子 vs 本研究提出的移位卷積算子。如上圖 1 所示,本論文的主要概念是用按位移位和按位取反來替代乘法運算。如果輸入數字的底層二進位表示 A 是整數或固定點形式,則向左(或向右)按位移動 s 位在數學層面上等同於乘以 2 的正(負)指數冪:

按位移位僅等同於乘以正數,因為對於任意 s 值,都有 2_±s > 0。但在神經網絡訓練過程中,搜索空間中必須存在乘以負數的情況,尤其是在卷積神經網絡中,其濾波器的正負值可用於檢測邊。因此,我們還需要使用取反運算,即:

與按位移位類似,取反運算的計算成本較低,因為它只需要對數字返回 2 的補碼。下文將介紹該研究提出的新型算子 LinearShift 和 ConvShift,它們用按位移位和取反取代了乘法:

其中 s 是移位值,n 是取反值。在經典的 CPU 架構中,按位移位和按位取反僅使用 1 個時鐘周期,而浮點乘法可能需要 10 個時鐘周期。LinearShift 算子

其中輸入 x 可表示為矩陣 B × m_in,輸出 y 可表示為矩陣 B × m_out,W 是可訓練權重矩陣 m_in × m_out,b 是可訓練偏置向量 m_out × 1。B 是批大小,m_in 是輸入特徵大小,m_out 是輸出特徵大小。該線性算子的反向傳播可表達為:

其中 L/y 是運算的梯度輸入(運算輸出的模型損失 L 的導數),L/x 是運算的梯度輸出(運算輸入的模型損失的導數),L/W 是運算權重的模型損失的導數。本論文提出該移位線性算子,在其前向傳播中用按位移位和取反替代了矩陣乘法。其前向傳播可定義為:

其中 N 是取反矩陣,S 是移位值矩陣,· 表示這兩個矩陣的對應元素乘法。B 和 S 的大小是 m_in × m_out,b 是偏置向量,類似於原始線性算子。S、N 和 b 都是可訓練的參數。為了幫助推導後向傳播,研究者使用項 V = (1)^round(N) ˙ (2)^round(S),得到:

注意,反向傳播導致 -1 和 2 的冪存在非整數值。但是,在前向傳播中,它們被四捨五入,以實現按位取反和移位。ConvShift 算子原始卷積算子的前向傳播可表達為:

其中 W 的維度是 c_out × c_in × h × w,其中 c_in 是輸入通道大小,c_out 是輸出通道大小,h 和 w 分別是卷積濾波器的高和寬。LeCun 等 [1999] 將卷積的反向傳播表示為:

類似地,本研究提出的卷積移位(即 ConvShift)算子的前向傳播可表示為:

其中 N 和 S 分別表示取反和移位矩陣,維度為 c_out × c_in × h × w。類似地,為了推導反向傳播,研究者使用項 V = (1)^round(N) ˙ (2)^round(S),得到:

基準測試結果研究者在 3 個數據集上測試了模型的訓練和推斷結果:MNIST、CIFAR10 和 ImageNet 數據集。MNIST 數據集下表 1 展示了模型在 MNIST 驗證集上的準確率。我們可以看到,從頭訓練得到的 DeepShift 模型的準確率下降程度超過 13%,不過僅轉換預訓練權重得到的 DeepShift 版本準確率下降程度較小,而基於轉換權重進行後續訓練則使驗證準確率有所提升,甚至超過了原版模型的準確率。

CIFAR10 數據集下表 2 展示了模型在 CIFAR10 驗證集上的評估結果。我們注意到從頭訓練得到的 DeepShift 版本出現了嚴重的準確率下降,而基於轉換預訓練權重訓練得到的 DeepShift 模型準確率下降幅度較小(不到 2%)。值得注意的是,對於未經進一步訓練的轉換權重,寬度更大、複雜度更高的模型取得的結果優於低複雜度模型。這或許可以解釋為,模型複雜度的提升補償了運算被轉換為 ConvShift 或 LinearShift 導致的精度下降。

ImageNet 數據集下表 3 展示了模型在 ImageNet 數據集上的結果,我們從中可以看到不同的模型結果迥異。最好的性能結果來自 ResNet152,其 Top-1 和 Top-5 準確率分別是 75.56% 和 92.75%。值得注意的是,由於時間限制,一些模型僅訓練了 4 個 epoch。進行更多訓練 epoch 可能帶來更高的準確率。

複雜度較高的模型被準換為 DeepShift 後,結果通常更好。MobileNetv2 等「難纏」模型在移除所有乘法運算後準確率僅降低了約 6%。與其他加速方法(如 XNOR 網絡、量化或剪枝)相比,這無疑是巨大的優勢,這些方法對 MobileNet 的優化帶來負面效果。然而,其他「難纏」網絡(如 SqueezeNet)的準確率則出現了大幅下降。為什麼 MobileNetv2 的權重被轉換後,在未經後續訓練的情況下準確率幾乎為 0?而在訓練幾個 epoch 後,Top-5 準確率竟然超過 84%?這一點還有待分析。

相關焦點

  • 把CNN裡的乘法全部去掉會怎樣?華為提出移動端部署神經網絡新方法
    最近,我們又看到華為的另一篇論文,這一次沒有用加法替代乘法,而是用「按位移位」和「按位取反」來取代乘法運算。 深度學習模型,尤其是深度卷積神經網絡(DCNN),在多個計算機視覺應用中獲得很高的準確率。但是,在移動環境中部署時,高昂的計算成本和巨大的耗電量成為主要瓶頸。
  • CVPR2020|深度學習不要乘法?北大,華為Oral論文提出加法神經網絡
    作為計算機視覺領域的三大國際頂會之一,CVPR 每年都會吸引全球領域眾多專業人士參與。如 2019 年,CVPR 註冊參會人數高達 9227 人,突破歷屆記錄。其中,來自國內的參會人數就達到 1044 位,僅次於大會舉辦地美國(4743 位)。
  • 7 Papers|MIT學神開源微分太極;北大等提出沒有乘法的神經網絡
    機器之心&ArXiv Weekly Radiostation參與:杜偉、楚航、羅若天本周的重要論文有 MIT 學神胡淵鳴等開源的自動微分版太極以及北大、華為諾亞方舟實驗室等主張以加法運算代替深度神經網絡中的乘法運算。
  • 華為開源只用加法的神經網絡:實習生領銜打造,效果不輸傳統CNN
    曉查 發自 凹非寺量子位 報導 | 公眾號 QbitAI沒有乘法的神經網絡,你敢想像嗎?無論是單個神經元的運算還是卷積運算,都不可避免地要使用乘法。然而乘法對硬體資源的消耗遠大於加法。如果不用乘法,全部改用加法應該可以讓運算速度大大提升。去年年底,來自北京大學、華為諾亞方舟實驗室、鵬城實驗室的研究人員將這一想法付諸實踐,他們提出了一種只用加法的神經網絡AdderNet(加法器網絡)。一作是華為諾亞方舟實習生,正在北大讀博三。
  • 12倍端到端加速,陳天奇創業公司OctoML提克服二值網絡瓶頸新方法
    前段時間,該公司推出了第一個軟體即服務產品 Octimizer,可以幫助開發者更方便、快捷地將 ML 模型部署到設備上。近日,該公司官方博客又介紹了一種快速端到端二值神經網絡——Riptide,使用 TVM 進行優化時可以實現最高 12 倍的端到端加速。該公司機器學習系統工程師 Josh Fromm 在博客中介紹了 Riptide 的細節。
  • 谷歌提出移動端AutoML模型MnasNet:精度無損速度更快
    目前開發者可以使用非常多的移動端 CNN 架構,也可以在機器上訓練新穎的視覺模型並部署到手機端。但各種各樣的移動端任務可能並不能藉助已有的 CNN 架構達到非常好的效果,因此谷歌近日將神經架構搜索方法引入了輕量級的 CNN 網絡,並提出基於強化學習的 MnasNet 以自動設計移動端模型。
  • ...加法的神經網絡:實習生領銜打造,效果不輸傳統CNN | CVPR 2020...
    關注前沿科技 量子位曉查 發自 凹非寺量子位 報導 | 公眾號 QbitAI沒有乘法的神經網絡,你敢想像嗎?無論是單個神經元的運算還是卷積運算,都不可避免地要使用乘法。然而乘法對硬體資源的消耗遠大於加法。如果不用乘法,全部改用加法應該可以讓運算速度大大提升。
  • 依圖團隊提出新一代移動端網絡架構MobileNeXt
    ,但是大型神經網絡在移動端的性能制約了AI在移動端的推廣。最近,依圖團隊發表在ECCV的一篇論文,提出了新一代移動端神經網絡架構MobileNeXt,大大優於谷歌的MobileNet、何愷明團隊提出的ResNet等使用倒殘差結構的模型,為移動端算力帶來了新的突破。
  • AAAI 2018 | 從哈希到CNN:中科院自動化所提出高精度&低功耗訓練方法
    近年來,深度卷積神經網絡已經深入了計算機視覺的各個任務中,並在圖像識別、目標跟蹤、語義分割等領域中取得了重大突破。在一些場景下,當前深度卷積網絡性能已經足以部署到實際應用中,這也鼓舞著人們將深度學習落地到更多的應用中。
  • 中國移動提出「3層+4面」新6G網絡邏輯架構
    6月21日,中國移動研究院舉行了6G系統研討會第二次會議。來自肯特大學、浙江大學、東南大學、西安交通大學、中國信息通信研究院、華為、中興通訊、大唐、VIVO、清微智能等學術界和產業界的十餘位專家做了雲上分享,與超過5000名線上觀眾共同探討6G的最新研究方向和關鍵技術。
  • 深度學習可以不要乘法_湃客_澎湃新聞-The Paper
    近日,北大、華為諾亞方舟實驗室等的研究者提出了一個名為 AdderNets 的網絡,用於將深度神經網絡中,特別是卷積神經網絡中的乘法,轉換為更簡單的加法運算,以便減少計算成本。在 AdderNets 中,研究者採用了 L1 正則距離,用於計算濾波器和輸入特徵之間的距離,並作為輸出的反饋。
  • 港科大博士生侯璐:基於損失函數的神經網絡量化方法|分享總結
    :神經網絡功能強大,但是其巨大的存儲和計算代價也使得它的使用特性,特別是在一些計算能力相對較弱的行動裝置上受到了很大的限制。為了解決這個問題, 最近有許多針對於神經網絡壓縮和加速的工作被提出, 例如神經網絡剪枝, 權重矩陣低秩分解,權重量化等。這次分享主要是針對於權重量化這一類方法。近期,在雷鋒網 GAIR 大講堂上,來自香港科技大學的博士生侯璐同學分享了深度學習網絡的權重量化的一些最新進展。以及幾篇ICLR的論文解讀。
  • 斯坦福學者造出機器鴿;港科大等提出學生情緒分析新系統
    針對這些問題,來自北航、愛奇藝等機構的研究者提出了耦合知識蒸餾的輕量級視頻顯著區域檢測方法。輕量級視頻顯著區域檢測的難點在於模型泛化能力不足,時域空域線索結合難,影響方法的檢測性能。 研究者提出了一種輕量級的網絡架構 UVA-Net,並利用耦合知識蒸餾的訓練方法提高視頻顯著區域檢測性能。
  • Google提出移動端新SOTA模型MixNets:用混合深度卷積核提升精度
    特別是MixNet-L模型在傳統的移動端設備條件(<600M FLOPS)下達到了最新的SOTA結果,ImageNet top-1精度為78.9%。為了進一步證明本文MDConv的有效性,我們利用神經架構搜索開發了名為MixNets的新模型系列。實驗結果表明,我們的MixNet模型大大優於所有以前的移動端卷積網絡,例如ShuffleNets,MnasNet,FBNet和ProxylessNAS。
  • 怎樣建成5G最佳網絡?華為給出的答案在這裡……
    5G技術要實現多少超越才能建成一張真正的5G最佳網絡?這一次,答案不在風中,就在這裡。2020年2月20日,華為在英國倫敦舉辦2020年新產品解決方案發布會。華為運營商BG Marketing與解決方案銷售部總裁彭松在《5G最佳網絡,助力運營商5G商業成功》的主題演講中給出了答案。
  • CVPR 2019Oral論文解讀|百度提出關於網絡壓縮和加速的新剪枝算法
    median)的剪枝算法,來對神經網絡進行壓縮和加速。論文地址: https://arxiv.org/pdf/1811.00250.pdfGithub 地址: https://github.com/he-y/filter-pruning-geometric-median1.背景卷積神經網絡(CNN)通常通過更深和更寬的結構實現了更好的性能,但是當神經網絡需要部署到行動裝置時,神經網絡需要的資源遠遠超過了行動裝置的限制
  • 與時間賽跑,華為為「火眼」實驗室提供網絡保障、端雲協同支持
    1月9日15時,河北省召開新冠肺炎疫情防控工作新聞發布會。從6日凌晨,石家莊市對全體市民進行了全員核酸檢測,到8日24時,檢測全部結束,共檢測10251875人,累計檢出陽性人員354人。「火眼」實驗室(氣膜版)具有可移動、自動化、大通量等優勢,每天可檢測10萬單管,每日最高可檢測樣本量達到100萬人份。與此同時,石家莊華大醫學檢驗實驗室、車載「火眼」實驗室均已就位。「火眼」實驗室現場圖走進網球館,半圓柱體狀的實驗室呈灰白色,每個寬4至5米,高3至4米,長約10米,門楣位置上標示有「火眼」實驗室五個黑色大字及鮮紅的「火眼」圖標,非常醒目。
  • 與時間賽跑,華為為「火眼」實驗室提供網絡保障、端雲協同技術支持
    1月9日15時,河北省召開新冠肺炎疫情防控工作新聞發布會。從6日凌晨,石家莊市對全體市民進行了全員核酸檢測,到8日24時,檢測全部結束,共檢測10251875人,累計檢出陽性人員354人。為了強化核酸檢測能力,於1月7日連夜啟動的「火眼」實驗室僅僅用了21小時,便於1月8日快速上線,火速亮相河北體育館網球館。
  • 數學家提出了使用神經網絡處理嘈雜高維數據的新方法
    來自RUDN大學和柏林自由大學的數學家們提出了一種利用人工神經網絡研究觀測數據的概率分布的新方法新方法可以更好地與所謂的異常值,即明顯偏離整體樣本的輸入數據對象。這篇文章發表在《人工智慧》雜誌上。人工神經網絡恢復觀測數據的概率分布是機器學習的重要組成部分。概率分布不僅使我們能夠預測所研究的系統的行為,而且能夠量化預測的不確定性。
  • 5G成功需要高質量光網絡:華為提全光城市目標網,適配新業務發展
    而在發展5G的過程中,光網絡扮演了非常關鍵的角色。它既是5G端到端網絡中的重要組成部分,亦將與5G一起滿足消費者持續增長的體驗需求、帶動傳統產業的轉型升級,為人類社會價值創造注入新的動能。那麼隨著5G技術、應用水平邁向更高階,需要怎樣的光網絡以匹配?在作為社會經濟運轉主要載體的城市,這樣的光網絡又要如何構建?