華為諾亞方舟實驗室聯(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)注深度學習壓縮模型論文專欄。
審核編輯:符乾江
-
計算機視覺
+關(guān)注
關(guān)注
8文章
1699瀏覽量
46057 -
深度學習
+關(guān)注
關(guān)注
73文章
5511瀏覽量
121373
發(fā)布評論請先 登錄
相關(guān)推薦
評論