華為開源只用加法的神經網絡:實習生領銜打造,效果不輸傳統CNN

2020-12-14 量子位

曉查 發自 凹非寺量子位 報導 | 公眾號 QbitAI

沒有乘法的神經網絡,你敢想像嗎?無論是單個神經元的運算還是卷積運算,都不可避免地要使用乘法。

然而乘法對硬體資源的消耗遠大於加法。如果不用乘法,全部改用加法應該可以讓運算速度大大提升。

去年年底,來自北京大學、華為諾亞方舟實驗室、鵬城實驗室的研究人員將這一想法付諸實踐,他們提出了一種只用加法的神經網絡AdderNet(加法器網絡)。一作是華為諾亞方舟實習生,正在北大讀博三。

如今,這篇文章已經被CVPR 2020收錄(Oral),官方也在GitHub上開放了原始碼。有興趣的同學不妨前往一試究竟。

加法器網絡簡介

加法器網絡的核心在於:用L1距離代替歐氏距離

L1距離是求兩點之間坐標差值的絕對值之和,因此全程不涉及乘法。

在這種新的定義下,反向傳播中用到的求偏導數運算也變成了求減法。梯度下降的優化過程也被叫做符號SGD(signSGD)。

在加法器網絡的新定義下,特徵向量的空間分布也和CNN有很大的不同。

那麼AdderNet的實際效果如何呢?

在CIFAR-10的圖像分類任務中,AdderNet相比當初Bengio等人提出的加法神經網絡BNN性能有大幅提升,並且已經接近了傳統CNN的結果。

開原始碼

官方的AdderNet基於Python3和PyTorch。

先按照PyTorch的官方文檔準備ImageNet數據集,運行程序評估它在驗證集上的效果:

python test.py —data_dir 'path/to/imagenet_root/'

AdderNet可以在ImageNet數據集上達到74.9%的Top-1準確度和91.7%的Top-5準確度。

或者將CIFAR-10數據集下載到本地,測試一下它在CIFAR-10上的效果

python test.py —dataset cifar10 —model_dir models/ResNet20-AdderNet.pth —data_dir 'path/to/cifar10_root/'

不過AdderNet仍需自己訓練,官方表示將很快發布預訓練模型。

現階段的AdderNet並非沒有缺陷,作者在項目主頁中說,由於AdderNet是用加法過濾器實現的,因此推理速度較慢,需要用CUDA編寫才能提高速度。

這與作者希望提高神經網絡運算速度的初衷還有一段距離。

但這篇論文的作者表示,今後還會繼續加法器神經網絡的研究,發表更多的成果,讓我們一起期待這項研究取得新的進展吧。

華為諾亞實驗室實習生領銜打造

AdderNet這篇文章的一作名叫陳漢亭,畢業於同濟大學數學系,現在在北京大學信息科學技術學院攻讀博士學位,同時在華為諾亞方舟實驗室實習。

在碩博連讀的前三年中,他已經以一作身份發表了5篇論文,其中一篇《Data-Free Learning of Student Networks》被ICCV 2019收錄,另外它參與多篇論文還被NeurIPS、IJCAI、ICML等頂會收錄。

傳送門

原始碼:https://github.com/huawei-noah/AdderNet

論文地址:https://arxiv.org/abs/1912.13200

相關焦點

  • 效果比肩CNN| 華為諾亞方舟實驗室提出加法神經網絡蒸餾技術
    為諾亞方舟實驗室聯合雪梨大學發布論文《Kernel Based Progressive Distillation for Adder Neural Networks》,提出了針對加法神經網絡的蒸餾技術
  • NeurIPS 2020線上分享 | 華為諾亞方舟:超越CNN的加法神經網絡
    目前出現了多種獲得高計算能效深度神經網絡的算法,如從準確度損失極少的預訓練神經網絡中刪除不重要參數或濾波器的權重剪枝方法,以及通過模仿教師模型輸出分布來直接學習學生模型的知識蒸餾方法。另一個獲得高效神經網絡的研究途徑是減少權重和激活值的位寬以降低內存使用和功耗。這類方法有很多,也可以大幅度降低計算複雜度,但生成網絡的性能依然低於 CNN 方法。
  • 只有加法也能做深度學習,北大華為等提出AdderNet,性能不輸CNN
    來自北京大學、華為諾亞方舟實驗室、鵬城實驗室的研究人員提出了一種加法器網絡AdderNet,去掉卷積乘法,並設計一種新的反向傳播算法,結果也能訓練神經網絡。而且實驗結果證明了,這種方法在MNIST、CIFAR-10、SVHN上已經接近傳統CNN的SOTA結果。
  • MIT學神開源微分太極;北大等提出沒有乘法的神經網絡
    機器之心機器之心&ArXiv Weekly Radiostation參與:杜偉、楚航、羅若天本周的重要論文有 MIT 學神胡淵鳴等開源的自動微分版太極以及北大、華為諾亞方舟實驗室等主張以加法運算代替深度神經網絡中的乘法運算
  • 7 Papers|MIT學神開源微分太極;北大等提出沒有乘法的神經網絡
    機器之心&ArXiv Weekly Radiostation參與:杜偉、楚航、羅若天本周的重要論文有 MIT 學神胡淵鳴等開源的自動微分版太極以及北大、華為諾亞方舟實驗室等主張以加法運算代替深度神經網絡中的乘法運算。
  • 給卷積神經網絡動動刀:加法網絡探究
    由於訓練和測試的代碼以及網絡結構的代碼和正常的卷積神經網絡一樣,這裡我們不對它們做解析,我們主要解讀定義adder算子的adder.py文件。adder.py中共含有兩個類和一個函數,兩個類分別是adder2d和adder,一個函數為adder2d_function。我們首先來看adder2d這個類。
  • 華為突破封鎖,對標谷歌Dropout專利,開源自研算法Disout
    乾明 金磊 發自 凹非寺量子位 報導 | 公眾號 QbitAI美國持續封鎖,華為的技術自研,已經深入到了AI底層算法層面上,並開始將研究成果面向業界開源。剛剛,華為諾亞實驗室開源Disout算法(地址在文末),直接對標谷歌申請專利的Dropout算法。而且,在多項任務上,華為的新算法都超過了Dropout。
  • 華為突破封鎖,對標谷歌,開源自研算法Disout,多項任務表現更佳
    美國持續封鎖,華為的技術自研,已經深入到了AI底層算法層面上,並開始將研究成果面向業界開源。剛剛,華為諾亞實驗室開源Disout算法(地址在文末),直接對標谷歌申請專利的Dropout算法。華為到底提出的Disout到底如何,也得以呈現。華為自研Disout:多項AI任務超越Dropout在申請專利時,谷歌將Dropout定義為「解決神經網絡過擬合的系統和方法」。
  • 【乾貨】基於pytorch的CNN、LSTM神經網絡模型調參小結
    這是最近兩個月來的一個小總結,實現的demo已經上傳github,裡面包含了CNN、LSTM、BiLSTM、GRU以及CNN與LSTM、BiLSTM的結合還有多層多通道CNN、LSTM、BiLSTM等多個神經網絡模型的的實現
  • 把CNN裡乘法全部去掉會怎樣?華為提出移動端部署神經網絡新方法
    最近,我們又看到華為的另一篇論文,這一次沒有用加法替代乘法,而是用「按位移位」和「按位取反」來取代乘法運算。深度學習模型,尤其是深度卷積神經網絡(DCNN),在多個計算機視覺應用中獲得很高的準確率。但是,在移動環境中部署時,高昂的計算成本和巨大的耗電量成為主要瓶頸。
  • 把CNN裡的乘法全部去掉會怎樣?華為提出移動端部署神經網絡新方法
    ,探討了不用乘法用加法能不能做深度學習。最近,我們又看到華為的另一篇論文,這一次沒有用加法替代乘法,而是用「按位移位」和「按位取反」來取代乘法運算。 使用了卷積移位和全連接移位的神經網絡架構族即 DeepShift 模型。DeepShift 模型可以在不使用乘法的情況下實現,且在 CIFAR10 數據集上獲得了高達 93.6% 的準確率,在 ImageNet 數據集上獲得了 70.9%/90.13% 的 Top-1/Top-5 準確率。
  • 谷歌開源Neural Tangents:簡單快速訓練無限寬度神經網絡
    近日,谷歌一項研究成果在社區引發了關注,該研究宣稱可通過神經正切核(Neural Tangent Kernel)使用貝葉斯推理或梯度下降分析式地訓練無限寬度的神經網絡。使用谷歌開源的軟體庫 Neural Tangents,這個過程不僅簡單且快速,而且效果非常好,甚至只需 5 行代碼就能一步到位地構建並訓練這種無限寬度網絡的集成模型!
  • 如何入手卷積神經網絡
    圖源:ImageNet上圖是幾年來贏得 ImageNet 挑戰賽的軟體產生的誤差率。來自 Mynepalli 的深度卷積神經網絡圖要想深入理解 CNN,你需要學習很多基礎知識,比如什麼是核,什麼是池化層。但是現在有很多優秀的開源項目,你可以直接在他們的基礎上進行研究並加以利用。
  • 解密華為最新AI生態布局,開源AI計算框架,三大頂會密集發論文81篇
    華為處理器不直接對外銷售,而是以雲服務和模塊、板卡、小站、伺服器、集群等形式面向客戶,協同硬體框架、資料庫、AI計算框架,加速合作夥伴的AI開發及應用。華為計算產業發展的策略是「硬體開放,軟體開源,使能合作夥伴」。而在剛落幕的華為開發者大會2020中,這一策略的存在感相當爆棚。
  • 谷歌重磅開源Neural Tangents:5行代碼打造無限寬神經網絡模型
    但是,問題來了:推導有限網絡的無限寬度限制需要大量的數學知識,並且必須針對不同研究的體系結構分別進行計算。對工程技術水平的要求也很高。谷歌最新開源的Neural Tangents,旨在解決這個問題,讓研究人員能夠輕鬆建立、訓練無限寬神經網絡。甚至只需要5行代碼,就能夠打造一個無限寬神經網絡模型。這一研究成果已經中了ICLR 2020。
  • 華為深度學習框架MindSpore正式開源:自動微分不止計算圖
    今年的華為開發者大會 HDC 2020 上,除了昇騰、鯤鵬等自研晶片硬體平臺之外,最令人期待的就是深度學習框架 MindSpore 的開源了。今天上午,華為 MindSpore 首席科學家陳雷在活動中宣布這款產品正式開源,我們終於可以在開放平臺上一睹它的真面目。
  • 華為開源自研AI框架MindSpore!一次訓練,可多場景部署
    乾明 發自 凹非寺量子位 報導 | 公眾號 QbitAI華為的開源AI框架,來了!剛剛,華為宣布正式開源自研深度學習框架MindSpore,代碼已經上線。開發者不僅要分析數據量、參數量、集群群網絡拓撲等因素來確定模型切分策略;還要考慮切分後的子模型設備綁定等,來達到性能較優的分布式並行訓練效果。但其實,這些並行訓練的優化細節與模型要實現的業務目標無關,最後卻讓開發者費盡了心思,「掉光了頭髮」。
  • 循環神經網絡的增強方法:注意力機制以及更多
    LSTM 作為經典的網絡結構可謂是老當益壯,而另一方面注意力機制過於常見,我們甚至會覺得它是「理所當然的」。但其實注意力機制其實並不是唯一一種網絡增強的方式。這篇 Distill.pub 博客的文章就帶我們重溫了包括注意力在內的多種網絡增強方式,它們側重的方向不一樣,也就方便研究/開發人員們按照自己的實際需求進行選取。雷鋒網(公眾號:雷鋒網) AI 科技評論編譯如下。
  • CNN卷積神經網絡實例(基於pytorch)
    1.關於卷積神經網絡卷積神經網絡(Convolutional Neural Network,CNN) 是一種具有局部連接、權重共享等特徵的深層前饋神經網絡
  • 典型的深度學習算法(一):卷積神經網絡(CNN)
    在深度學習領域中,已經驗證的典型成熟算法有卷積神經網絡(CNN)、循環神經網絡(RNN)、生成對抗網絡(GAN)、深度強化學習(DRL)等,下面企通查將帶領大家對典型的深度學習算法之一——卷積神經網絡(CNN)一探究竟。