0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

加法網(wǎng)絡(luò)再突破—NeurIPS 2020 Spotlight

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2020-12-08 22:11 ? 次閱讀
華為諾亞方舟實驗室聯(lián)合悉尼大學發(fā)布論文《Kernel Based Progressive Distillation for Adder Neural Networks》,提出了針對加法神經(jīng)網(wǎng)絡(luò)的蒸餾技術(shù),ResNet-34和ResNet-50網(wǎng)絡(luò)在ImageNet上分別達到了68.8%和76.8%的準確率,效果與相同結(jié)構(gòu)的CNN相比持平或超越,該論文已被NeurIPS2020接收。

開源鏈接:
huawei-noah/AdderNet?github.com
論文鏈接:
https://arxiv.org/pdf/2009.13044.pdf?arxiv.org

研究背景

深度卷積神經(jīng)網(wǎng)絡(luò)(CNN)被廣泛應(yīng)用于諸多計算機視覺領(lǐng)域的實際任務(wù)中(例如,圖片分類、物體檢測、語義分割等)。然而,為了保證性能,神經(jīng)網(wǎng)絡(luò)通常是過參數(shù)化的,因此會存在大量的冗余參數(shù)。近期提出的加法神經(jīng)網(wǎng)絡(luò)(ANN),通過將卷積操作中的距離度量函數(shù)替換為L1距離,極大減少了神經(jīng)網(wǎng)絡(luò)中的乘法操作,從而減少了網(wǎng)絡(luò)運行所需的功耗和芯片面積。
然而,ANN在準確率方面和同結(jié)構(gòu)的CNN相比仍然有一定差距,在某種程度上限制了ANN在實際應(yīng)用中對CNN的替換。為了提高ANN的性能,我們提出了一種基于核的漸進蒸餾方法。具體的,我們發(fā)現(xiàn)一個訓練好的ANN網(wǎng)絡(luò)其參數(shù)通常服從拉普拉斯分布,而一個訓練好的CNN網(wǎng)絡(luò)其參數(shù)通常服從高斯分布。因此,我們對網(wǎng)絡(luò)中間層的特征圖輸出進行核變換后,使用距離度量函數(shù)估計教師網(wǎng)絡(luò)(CNN)和學生網(wǎng)絡(luò)(ANN)之間的損失。對于最后一層,我們使用傳統(tǒng)的KL散度估計兩個網(wǎng)絡(luò)之間的損失。同時,在訓練中我們使用隨機初始化的教師網(wǎng)絡(luò),與學生網(wǎng)絡(luò)同時訓練,以減少兩個網(wǎng)絡(luò)之間參數(shù)分布的差異性。
實驗表明,我們的算法得到的ANN能夠在CIFAR-10,CIFAR-100,ImageNet等標準圖片分類數(shù)據(jù)集上達到或超越同結(jié)構(gòu)CNN的準確率。
對網(wǎng)絡(luò)中間層特征圖輸出進行核變換
ANN本身精度不好的原因是原始ANN在反向傳播時,使用的是近似的梯度,導致目標函數(shù)無法向著最小的方向移動。傳統(tǒng)KD方法應(yīng)用到ANN上效果不佳的原因,在于ANN的權(quán)重分布是拉普拉斯分布,而CNN的權(quán)重分布為高斯分布,因此分布不同導致無法直接對中間層的feature map使用KD方法。本方法首先將核變換作用于教師網(wǎng)絡(luò)和學生網(wǎng)絡(luò)的中間層輸出,并使用1x1卷積對新的輸出進行配準。之后,結(jié)合最后一層的蒸餾損失與分類損失,得到整體的損失函數(shù)。

漸進式蒸餾算法
傳統(tǒng)的蒸餾方法使用固定的,訓練好的教師網(wǎng)絡(luò)來教學生網(wǎng)絡(luò)。這樣做會帶來問題。由于教師網(wǎng)絡(luò)和學生網(wǎng)絡(luò)處于不同的訓練階段,因此他們的分布會因為訓練階段的不同而不同,所以會導致KD方法效果不好。因此我們采用漸進式蒸餾方法,讓教師網(wǎng)絡(luò)和學生網(wǎng)絡(luò)共同學習,有助于KD方法得到好的結(jié)果。即目標函數(shù)變?yōu)椋?br />
其中b為當前的step。
實驗結(jié)果
我們在CIFAR-10、CIFAR-100、ImageNet三個數(shù)據(jù)集上分別進行了實驗。
下表是在CIFAR-10和CIFAR-100數(shù)據(jù)集上的結(jié)果,我們使用了VGG-small、ResNet-20與ResNet-32作為教師網(wǎng)絡(luò),同結(jié)構(gòu)的ANN作為學生網(wǎng)絡(luò)??梢钥吹剑褂昧吮痉椒ǖ玫降腁NN在分類準確率上相比原始的ANN有大幅度的提升,并且能夠超過同結(jié)構(gòu)的CNN模型。表格中#Mul表示網(wǎng)絡(luò)中乘法操作的次數(shù)。#Add表示加法操作次數(shù),#XNOR表示同或操作的次數(shù)。

下表展示了在ImageNet數(shù)據(jù)集上的結(jié)果,我們使用ResNet-18與ResNet-50網(wǎng)絡(luò)作為教師網(wǎng)絡(luò),同結(jié)構(gòu)的ANN作為學生網(wǎng)絡(luò)。結(jié)果顯示我們的方法得到的ANN在分類準確率上相比同結(jié)構(gòu)CNN基本相同或能夠超越。

最后,我們展示了ResNet-20,ANN-20與通過本方法得到的PKKD ANN-20模型在CIFAR-10與CIFAR-100數(shù)據(jù)集上的訓練精度曲線與測試精度曲線。

圖中的實線表示訓練精度,虛線表示測試精度。在兩個數(shù)據(jù)集中,CNN的訓練和測試準確率都超過了原始的ANN模型。這是因為在訓練原始ANN時,反向傳播的梯度使用的是L2 norm來近似,因此梯度方向是不準確的。當使用本方法后,CNN的訓練過程可以指導ANN的訓練,因此可以得到更好的結(jié)果。同時,知識蒸餾方法能夠幫助學生網(wǎng)絡(luò)防止過擬合,這也是我們的方法有最低的訓練精度和最高的測試精度的原因。



推薦閱讀



文章首發(fā)知乎,更多深度模型壓縮相關(guān)的文章請關(guān)注深度學習壓縮模型論文專欄。

審核編輯:符乾江

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 計算機視覺
    +關(guān)注

    關(guān)注

    8

    文章

    1699

    瀏覽量

    46057
  • 深度學習
    +關(guān)注

    關(guān)注

    73

    文章

    5511

    瀏覽量

    121373
收藏 人收藏

    評論

    相關(guān)推薦

    螞蟻數(shù)科與浙大團隊榮獲NeurIPS競賽冠軍

    近日,在機器學習領(lǐng)域的頂級國際會議NeurIPS的特設(shè)競賽中,螞蟻數(shù)科旗下的摩斯聯(lián)合浙江大學計算機體系結(jié)構(gòu)實驗室陳文智、魏成坤團隊組成的“Morse ARCLab”參賽隊伍憑借出色的表現(xiàn),成功在激烈的競爭中脫穎而出,為中國AI技術(shù)的發(fā)展貢獻了重要力量。
    的頭像 發(fā)表于 11-26 10:27 ?280次閱讀

    加法運放電路實驗報告數(shù)據(jù)分析

    加法運放電路實驗報告的數(shù)據(jù)分析主要包括對實驗結(jié)果的觀察、與理論值的對比以及誤差原因的分析。以下是一個基于常見加法運放電路實驗的數(shù)據(jù)分析示例: 一、實驗?zāi)康呐c原理 實驗?zāi)康?:了解加法器的模擬實現(xiàn)方法
    的頭像 發(fā)表于 09-03 10:03 ?967次閱讀

    加法運放電路輸出電壓是多少

    負反饋配置下能夠非常精確地控制其輸出電壓。 加法運放電路的基本形式是將多個輸入信號通過電阻網(wǎng)絡(luò)連接到運算放大器的反相輸入端(通常也會有一個反饋電阻從輸出連接到反相輸入端以形成負反饋),而運算放大器的非反相輸入端則接地
    的頭像 發(fā)表于 09-03 09:50 ?605次閱讀
    <b class='flag-5'>加法</b>運放電路輸出電壓是多少

    加法器是時序邏輯電路嗎

    加法器不是時序邏輯電路 ,而是組合邏輯電路的一種。時序邏輯電路和組合邏輯電路的主要區(qū)別在于它們?nèi)绾翁幚磔敵鲂盘枴?組合邏輯電路的輸出僅依賴于當前的輸入信號,而不依賴于電路之前的狀態(tài)或輸入歷史。這
    的頭像 發(fā)表于 08-28 11:05 ?672次閱讀

    請問增益為1的加法器有哪些?

    增益為1的加法器指的是輸出信號的幅度與輸入信號幅度相等的加法器。這類加法器在模擬電路設(shè)計中非常重要,因為它們在執(zhí)行加法運算的同時,不會改變信號的幅度。
    的頭像 發(fā)表于 05-23 15:10 ?1164次閱讀

    串行加法器和并行加法器的區(qū)別?

    串行加法器和并行加法器是兩種基本的數(shù)字電路設(shè)計,用于執(zhí)行二進制數(shù)的加法運算。它們在設(shè)計哲學、性能特點以及應(yīng)用場景上有著明顯的區(qū)別。
    的頭像 發(fā)表于 05-23 15:06 ?2837次閱讀

    加法器的原理是什么 加法器有什么作用

    加法器是數(shù)字電路中的基本組件之一,用于執(zhí)行數(shù)值的加法運算。加法器的基本原理和作用可以從以下幾個方面進行詳細闡述。
    的頭像 發(fā)表于 05-23 15:01 ?3370次閱讀
    <b class='flag-5'>加法</b>器的原理是什么 <b class='flag-5'>加法</b>器有什么作用

    同相加法器和反相加法器的區(qū)別是什么

    同相加法器和反相加法器是運算放大器在模擬電路設(shè)計中常用的兩種基本電路結(jié)構(gòu),它們在信號處理方面有著不同的特性和應(yīng)用場景。
    的頭像 發(fā)表于 05-23 14:35 ?2781次閱讀

    加法放大器的原理和應(yīng)用

    加法放大器,作為一種重要的電子電路設(shè)備,其在信號處理、音頻混合、以及多種電子系統(tǒng)中發(fā)揮著關(guān)鍵作用。它基于放大器的線性特性,通過特定的電路設(shè)計,將多個輸入信號進行相加,并輸出放大后的信號。本文將對加法放大器的原理、特點、設(shè)計方法以及其在不同領(lǐng)域的應(yīng)用進行詳細的闡述。
    的頭像 發(fā)表于 05-22 18:09 ?1830次閱讀

    加法器ICL7660M/TR芯片發(fā)熱問題?

    想做個加法器,經(jīng)打板焊接,芯片焊接完還用萬用表檢測了,無短接,虛焊情況。輸入5V后,ICL7660電源極性反轉(zhuǎn)變換器芯片發(fā)熱。但是芯片輸入電壓極限值是10V,輸入5V芯片就發(fā)熱冒煙了。經(jīng)檢查,芯片
    發(fā)表于 05-06 16:32

    FPGA加法截位處理方法介紹

    本模塊實現(xiàn)輸入與輸出位寬相同數(shù)據(jù)加法,并對結(jié)果進行四舍五入截位,對標matlab round函數(shù)。
    的頭像 發(fā)表于 04-18 16:53 ?835次閱讀

    加法運算電路和減法運算電路的區(qū)別

    加法運算的電路如下圖所示,輸出電壓為若干個輸入電壓的比例和
    的頭像 發(fā)表于 02-19 09:52 ?7793次閱讀
    <b class='flag-5'>加法</b>運算電路和減法運算電路的區(qū)別

    什么是反相加法運算電路?反相加法運算電路與減法運算電路

    在電子技術(shù)的海洋中,有一種電路如同數(shù)學中的加法器一樣,能夠?qū)⒉煌男盘栠M行相加處理。這就是被廣泛應(yīng)用于信號處理領(lǐng)域的反相加法運算電路。
    的頭像 發(fā)表于 02-17 15:34 ?4882次閱讀
    什么是反相<b class='flag-5'>加法</b>運算電路?反相<b class='flag-5'>加法</b>運算電路與減法運算電路

    電路+公式,秒懂反相加法運算電路

    加法放大器的一般設(shè)計如以下電路所示。普通反相放大器電路在其反相輸入端只有一個電壓/輸入。如果更多輸入電壓如圖所示連接到反相輸入端子,則結(jié)果輸出將是所有施加的輸入電壓的總和,但是是反相的。
    發(fā)表于 02-15 11:16 ?1.4w次閱讀
    電路+公式,秒懂反相<b class='flag-5'>加法</b>運算電路

    反相加法運算電路原理介紹

    反相加法運算電路利用運算放大器(通常簡稱為Op-Amp)的特性來實現(xiàn)多個輸入信號的加法運算。每個輸入信號都通過一個電阻連接到運算放大器的反相輸入端,而運算放大器的同相輸入端則接地或虛擬接地。輸出電壓
    的頭像 發(fā)表于 01-31 15:53 ?4158次閱讀
    反相<b class='flag-5'>加法</b>運算電路原理介紹