亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于多分支退出的自蒸餾方法研究

        2022-08-20 09:20:42鄒美霞
        現代計算機 2022年12期
        關鍵詞:方法模型教師

        鄒美霞

        (北京交通大學計算機與信息技術學院,北京 100044)

        0 引言

        近年來,卷積神經網絡(Convolutional Neural Network,CNN)得益于神經網絡模型結構的發(fā)展,受到了人工智能領域的廣泛關注。它在圖像分類、目標檢測等方面取得了巨大的成功,這也促使人們一直致力于開發(fā)更深入、更復雜的模型,以達到更高的精度。然而,更深的模型會顯著增加模型推理所需的延遲和計算成本。例如,在Titan X GPU上對比VGG19和AlexNet。實驗表明,兩個模型的運行時間和計算消耗增加了20倍,錯誤率降低4%(從11%到7%)。如果不能妥善降低CNN巨大的計算成本和延遲,將在很大程度上阻礙CNN在各種資源受限的平臺上的大規(guī)模部署,特別是在延遲敏感和實時的場景中,比如自動駕駛、機器人導航或移動設備上。

        為了解決CNN巨大的計算成本和延遲問題,研究者提出了多分支結構,其能夠使網絡在達到一定退出條件時停止計算,從而退出網絡。但是當需要強制網絡退出時會出現淺層網絡精度較低的情況。研究者除了提出多分支結構的方法,還提出了輕量化網絡設計、剪枝、量化和知識蒸餾等模型壓縮技術來減少模型的計算量。其中,知識蒸餾是一種切實可用的技術之一,傳統(tǒng)的知識蒸餾是基于“教師-學生”網絡的訓練方法實現知識的轉移,其中“教師”是復雜且計算量大的模型,“學生”是精簡模型,通過讓學生模型學習教師模型的輸出,使得學生模型接近或超過教師模型的表現力。通過使用緊湊的學生模型代替龐大復雜的教師模型,可以實現模型的壓縮和推理加速。但是,此種方式訓練的學生模型優(yōu)于教師模型是相對困難的,兩個模型之間存在著知識不能很好地轉移和學習的問題。

        針對上述問題,文獻[11]提出了一種自蒸餾方法(BOT),在一個模型上進行知識蒸餾,將模型分為幾個部分,通過在不同模型深度上添加分支分類器,將深層網絡作為教師,淺層網絡作為學生進行網絡訓練。文獻[12]提出了基于知識蒸餾的學習方法,以提高卷積神經網絡(CNN)的分類性能,而無需預先訓練的教師網絡。其也是使用深層的網絡教授淺層網絡,但是淺層網絡與深層網絡之間存在性能差距。為了縮小二者的差距,本文提出一種新的自蒸餾方法,將整個網絡分支的輸出作為集成的結果,借助助教網絡的思想,使用集成的結果訓練最后的分支,同時使用最后的分支訓練網絡的其他分支,以提高各分支的分類精度。本文將提出的自蒸餾方法與其他自蒸餾方法進行對比,實驗結果顯示,該方法能有效提高各個分支的精度,以便網絡能夠更好地提前退出。

        1 相關工作

        1.1 多分支結構

        一般來說,隨著網絡深度的加大,網絡性能也會隨著深度的加大而提升,但是網絡模型訓練和推理的時間也會隨之變得越來越長,隨之資源的消耗也會越來越多。針對這個問題,一些研究者提出了多分支結構。多分支結構是在傳統(tǒng)CNN模型上添加分支器,使得模型能夠在滿足一定的精度需求時終止計算提早退出網絡,以達到節(jié)約計算資源的目的。文獻[3]提出了BranchyNet,其通過在主干網絡上添加多個分支器,使用分類結果的信息熵作為對預測結果的置信度度量。具體的,在每個退出點位置設置退出閾值,并對分支器中樣本置信度進行判斷。當樣本的熵低于退出點閾值時,即意味著分類器認為預測結果是可信的,這樣能夠使樣本提前退出網絡而不再參與后面網絡層的計算,從而減少計算量,節(jié)約計算資源。否則,當前樣本的預測結果不可信,則繼續(xù)到下一個退出點,直到主干網絡上的最后一個退出點。在此基礎上,文獻[5]通過不同長度的子路徑組合,自適應地選擇合適的子路徑集合提升模型表現。文獻[6]提出了基于分支在某一個時間點,當應用程序分配的資源用盡,需要強制退出網絡時可在任何時間退出的多分支結構。通過該方法保證在某個時間點需要輸出網絡模型的結果時,網絡可以把最近的分支的分類結果作為輸出。然而,多分支結構中淺層分支由于層數少,特征提取能力不夠,導致其精度過低。

        1.2 知識蒸餾

        知識蒸餾是模型壓縮技術中最常用的壓縮方法之一,傳統(tǒng)知識蒸餾的核心思想是通過引入復雜但精度較高的模型作為教師引導模型精簡的學生模型,將復雜學習能力強的教師模型學到的特征的知識通過蒸餾提取出來,傳遞給參數量小、學習能力弱的學生模型。其主要包含兩個核心內容,分別是蒸餾內容和蒸餾方式。

        在蒸餾內容上主要分為基于Softmax輸出層的標簽蒸餾和基于中間層的特征蒸餾。2014年,Hinton等為了加強輸出的概率分布中學習到的網絡知識,通過將全連接層的輸出經過超參數T進行平滑輸出,該輸出被稱為軟目標(Soft Label),最后通過軟目標和真實標簽一起指導學生網絡的訓練。文獻[15]提出了一種基于中間特征蒸餾的FitNet方法,其將教師網絡的軟目標和發(fā)掘教師網絡的中間特征圖的知識相結合教授學生知識,使得學生網絡可以比教師網絡更深更窄,提高學生網絡的性能。文獻[16]提出了基于圖的蒸餾方法,提出分對數(Logits)圖和表示(Representation)圖來傳遞多個知識。

        在蒸餾方式上大部分工作是通過在教師和學生兩個模型之間轉移知識的方式進行知識的傳遞和教授。但學生網絡與教師網絡之間性能差距大,會導致學生網絡不能充分學習教師網絡的知識,從而使學生網絡的效果不佳。針對這個問題,文獻[13]和文獻[17]通過助教網絡的方式減少二者之間的差距,從而提升學生網絡的學習效率。文獻[13]提出了使用多個教師助手來密集引導知識蒸餾的方法,通過每一位助教迭代地指導每一位更小的助教,并通過隨機投放一名教師和助教來提高學生網絡的學習能力。文獻[17]通過使用多步知識蒸餾,利用一個中等規(guī)模的網絡充當教師助理的角色作為教師和學生之間的橋梁,從而減少二者之間的差距。

        1.3 自蒸餾

        考慮到1.1節(jié)中所提出的淺層分支精度低的問題,研究人員在基于1.2節(jié)中的傳統(tǒng)知識蒸餾技術上提出了利用深層分支來指導淺層分支的自蒸餾方案。自蒸餾方法主要是將教師模型和學生模型集成到一個網絡模型上,將淺層的網絡作為學生模型,將深層的網絡作為教師模型,從后向前進行知識的傳遞。自蒸餾的方法無需訓練教師和尋找學生網絡,這樣可以有效避免傳統(tǒng)知識蒸餾中兩個模型之間傳遞知識的問題(教師網絡向學生網絡)。文獻[11]提出了一種自蒸餾方式(BOT),針對多分支結構通過深層網絡教授淺層網絡,能夠有效提升淺層網絡的性能。文獻[18]提出了一種基于自蒸餾的多出口體系結構訓練方法。該方法通過匹配早期退出的輸出概率,鼓勵早期退出模仿稍后更準確的退出。文獻[19]從提高分類器精度的角度入手,充分利用同一網絡中不同分類器的知識,來提高每個分類器的準確性。其通過分支增強技術將一個單分類器網絡轉換成一個多分類器網絡。文獻[20]通過多個中間分類器自適應網絡模型,提出了采用梯度均衡算法來解決不同分類器之間的學習沖突,采用內聯(lián)子網絡協(xié)作方法和知識蒸餾算法增強分類器之間協(xié)作的方法。

        以上這些工作通過將深層的網絡作為教師,淺層網絡作為學生的教授方式。鑒于此,最新的工作通過在特定的中間層上附加出口來創(chuàng)建輔助分類器,相較于之前教師指導學生的方法,該工作的每個出口和最終輸出都扮演著教師和學生的角色,將主網絡和出口在內的整個網絡同時訓練。其提出的蒸餾方式與傳統(tǒng)的教師網絡只教授學生的方式不同,其提出網絡中所有分類的集成可以作為一個教師,使用集成訓練網絡中的各個分支以提高網絡的分類性能。由于每個從輸入到出口或最終輸出的分類器都有不同的結構,因此分類器的輸出和特征存在多樣性和互補性,訓練整個網絡的損失函數由傳統(tǒng)的交叉熵損失函數和各出口的蒸餾損失函數以及最終輸出的損失函數組成。但是,深層網絡與淺層網絡的能力之間存在較大差距,將整個網絡集成的結果直接教淺層各個分支,會影響淺層網絡的學習性能。針對這個問題,本文提出了一種新的自蒸餾方法,借助助教網絡的思想,讓集成的網絡作為教師指導最后的分支,同時使最后分支的輸出作為教師指導網絡中的其他分支,利用這種方式縮小集成分支與淺層分支的性能差距,提升淺層分支的性能。

        2 研究內容

        2.1 自蒸餾方法

        一種支持自蒸餾方法的多分支結構如圖1所示,其中F表示特征,Z表示logits。根據CNN的深度和原始結構,將CNN劃分為幾個淺層區(qū)域,在每個部分后設置一個分類器。根據文獻[11],其退出分支由Bottleneck層和全連接層組成,其中增加Bottleneck層的主要作用是減少淺層分類器之間的影響。

        圖1所示的自蒸餾方法一般由3個損失函數組成。首先,從標簽到深層分類器和淺層分類器的交叉熵損失,它是由訓練數據集中的標簽和每個分類器的輸出計算得到。通過這種方式能夠使數據集中的知識直接從標簽傳遞到所有分類器。具體公式如下:

        圖1 一種自蒸餾方法示意圖

        其次,KL散度(Kullback-Leibler Divergence)是兩個概率分布間差異的非對稱度量,通過KL散度算法計算學生和教師之間輸出分布的差異,能夠將深層網絡的知識教授到淺層網絡的分支。如公式(2)所示,(x)在概率函數中表示真實分布,在自蒸餾中表示教師網絡的輸出分布,(x)在概率函數中表示需擬合的概率分布,在自蒸餾中表示學生網絡的輸出分布,當(x)=(x)時表明學生網絡已經充分學習教師網絡的性能,因此在自蒸餾中要最小化KL散度的值,使得學生網絡的性能提升。

        最后,通過計算特征圖中學生和教師之間的特征差異,使得網絡更好地提取知識以提升自身的能力。

        2.2 SDA自蒸餾方法

        本文提出了一種基于多分支的自蒸餾方法,如圖2所示,其中F表示特征,Z表示logits。本文與文獻[11]的結構設計相同,根據初始網絡的深度和結構,將初始網絡分為多個淺層網絡,在每一個淺層網絡的后面添加Bottleneck層,構成一個分支。本文采用了交叉熵損失函數訓練網絡,通過交叉熵表示教師實際教授的知識和期望學生網絡學到的知識之間的差距,二者之間交叉熵的值越小,說明兩個分布概率越接近,網絡效果越好,公式如下所示:

        圖2 SDA自蒸餾方法示意圖

        其中,q表示第個分支的Softmax輸出,表示蒸餾的溫度,表示實際的標簽輸出。

        本文在訓練網絡時使用了兩種蒸餾內容,分別是基于標簽蒸餾和基于中間特征的蒸餾方式。

        (1)基于標簽蒸餾,本文使用了KL散度來衡量學生網絡與教師網絡的輸出分布差異,以表示學生網絡對于教師網絡知識的學習程度。為了使得淺層分類器能夠更好地接近深層分類器的表現,公式定義如下所示:

        其中,q表示網絡最后分支的Softmax輸出。

        (2)在進行特征蒸餾時,對于網絡輸入數據將被提取的可以表示學習過程的知識,主要是通過各種手段從網絡的中間隱藏層提取。這些知識被轉移到學生網絡中,實現知識的升華和提高,從而提高學生網絡的性能?;谔卣鞯闹R蒸餾公式定義如下所示:

        其中,F表示第個分支的特征輸出,F表示網絡最后分支的特征輸出。

        (3)模型中淺層網絡層數少,對圖片信息的提取能力不足導致其正確分類的能力弱。而隨著網絡層數的增加,深層網絡通過對圖片的多層操作使得其對圖片分類的能力逐漸加強。由于二者之間差距大,若用深層網絡直接指導淺層網絡,會導致淺層網絡學習效果不佳。本文使用網絡中所有分支的集成指導網絡中最后分支,減少淺層分類器和深層分類器之間的差距,公式定義如下所示:

        其中,H表示網絡中所有分支輸出logits的均值,H表示H的Softmax輸出,H表示網絡中所有分支輸出特征的均值。

        綜上所述,本文將整個網絡的損失函數定義為:

        該損失函數綜合考慮了教師實際教授的知識和期望學生網絡學到的知識之間的差距,通過縮小二者的差距以提升網絡的表現力;充分考慮了學生網絡與教師網絡的輸出分布差異,通過KL散度表示學生網絡對于教師知識的學習程度;充分考慮了網絡的中間隱藏層信息的提取,最后充分考慮了深層網絡和淺層網絡之間的性能差距,使得淺層網絡能夠充分學習深層網絡的性能。

        3 實驗

        3.1 實驗設置

        本文使用經典的CIFAR10和CIFAR100數據集,其中CIFAR10數據集由10個類的60000個32×32彩色圖像組成,每個類有6000個圖像。有50000個訓練圖像和10000個測試圖像。CIFAR100有100個類,每個類包含600個圖像,每類各有500個訓練圖像和100個測試圖像。本文選擇了經典的深度神經網絡ResNet一系列變種模型作為主網絡,分別是ResNet18、ResNet50、ResNet101,在自蒸餾網路中分支的安放位置為每個ResNet塊結構后。本文使用了最早提出多分支結構的BranchyNet的交叉熵作為基準,同時對比了BOT和EED方法。所有訓練網絡的學習率為0.1,一次批處理圖像設為128,訓練輪次設為200。

        3.2 實驗結果

        在本組實驗中,我們對比只使用標簽蒸餾技術下各個方案的性能。通過實驗結果可知,在CIFAR10上,與基準相比,本文的訓練方法使得各個分支的精度和集成的精度均高于基準。其中,在ResNet18和ResNet101上,每個分支的精度提升幅度相對較低,但是在ResNet50上每個分支的精度提升幅度較為明顯,1/4分支提升了1.51%,2/4分支提升了1.02%,3/4分支提升了0.76%,4/4分支提升了0.75%,集成的精度提升了0.88%。在CIFAR100上,SDA的結果與基準相比,在ResNet18和ResNet50上,每個分支的精度提升幅度相對較低,但在ResNet101上每個分支的精度提升幅度較為明顯,1/4分支提升了0.46%,2/4分支提升了0.77%,3/4分支提升了1.1%,4/4分支提升了0.73%,集成的精度提升了0.47%。由實驗結果可知,本文將標簽與特征相結合的蒸餾方式的各分支精度均有提升。

        本組實驗中,本文與工作BOT和最新工作EED在蒸餾內容相同的前提下,對比了不同蒸餾方式的表現。從表1可以得出,與BOT相比,使用分支集成的輸出教授各個分支的方法,在各分支的精度上是優(yōu)于其他蒸餾方式的。由圖3可知,分支集成的輸出是優(yōu)于最后分支的輸出,因此使用分支集成的輸出教授網絡中其他分支分類器的效果更好。但是深層網絡的性能與淺層網絡的性能存在差距,使用分支集成的輸出教授淺層的分支,可能會進一步拉大差距,影響淺層網絡的學習效果。本文所提方法在最后分支輸出和分支集成輸出的精度高于EED。因此可知,先將分支集成的輸出教授最后分支的輸出,同時使用最后分支的輸出教授網絡中的各個分支,能夠降低分支集成與淺層網絡的性能差距,使得淺層網絡能夠更好地學習深層網絡的知識,提升淺層網絡的性能。

        圖3 SDA與EED[12]方法在ResNet50,CIFAR100上最后分支與分支集成的精度對比

        表1 SDA與其他自蒸餾方法精度對比表

        本組實驗中,在CIFAR100數據集上,ResNe18和ResNe50模型上探索了不同的溫度參數對網絡模型的性能影響。由圖4和圖5的實驗結果可知,隨著溫度的升高,網絡蒸餾的效果并非越來越好。當=1時相當于無溫度影響,其效果未受到影響。當=3時,與基準相比,各分支的精度和集成的精度均有提升,效果最好。當=7時,在ResNet18上各分支的精度均高于基準,但與T=3時的效果相比,第2支、第3支的精度高于它的精度值,但第1支、第4支和最后集成的精度值卻小于它的精度值。在ResNet50上,當=7時與基準相比,除了第1支分支的精度,其他分支及集成的精度均是低于基準的。因此,在自蒸餾方法中,選擇合適的蒸餾溫度是至關重要的。

        圖4 SDA在ResNet18,CIFAR100上不同溫度參數下的精度對比

        圖5 SDA在ResNet50,CIFAR100上不同溫度參數的精度對比

        在本組實驗中,我們在CIFAR100和ResNet50模型上探索了不同參數對網絡性能的影響。由圖6可知,在不同的參數下,與基準相比,網絡的第1、第2、第3支的精度均不同程度地提高了,范圍在0.19%~1.51%之間,但第4支和集成的結果在不同情況下出現了精度下降的情況,下降范圍為0.15%~0.17%。由此可知,不同的參數對淺層的網絡精度影響較少,但對深層的網絡(最后輸出集成的結果)精度是有一定影響的。

        圖6 SDA在ResNet50,CIFAR100上不同α參數的精度對比

        4 結語

        本文提出一種基于多分支的自蒸餾方法(SDA),通過借助助教網絡的思想,使用網絡中各分支的輸出作為集成的輸出教授最后的輸出,同時使用最后的輸出教授各個分支的自蒸餾方式可以提高CNN的分類性能。實驗證明,本文方法的性能表現是優(yōu)于其他自蒸餾方法的,尤其是在多分類的數據集CIFAR100上,效果提升最為明顯。我們分別驗證了本文方法在蒸餾內容上,相較于僅有蒸餾標簽的方法,將標簽蒸餾與中間特征蒸餾相結合的方法能夠使網絡模型效果更好。其次,本文驗證了在蒸餾內容相同的情況下,SDA與BOT和EED等不同蒸餾方式的比較,SDA方法能夠有效提升網絡的性能。在未來工作中,我們將會進一步研究自蒸餾方法在其他領域的應用。

        猜你喜歡
        方法模型教師
        一半模型
        最美教師
        快樂語文(2021年27期)2021-11-24 01:29:04
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權M-估計的漸近分布
        教師如何說課
        甘肅教育(2020年22期)2020-04-13 08:11:16
        未來教師的當下使命
        可能是方法不對
        3D打印中的模型分割與打包
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        最爽无遮挡行房视频| 少妇一区二区三区精选| 国产精品黑丝美腿美臀| 亚洲国产aⅴ成人精品无吗| 国产精品jizz在线观看老狼| 亚洲欧美日韩国产精品网| 国产一区二区三区再现| 国产午夜激无码av毛片不卡| 污污内射在线观看一区二区少妇 | 国产三级在线观看播放视频| 中文字幕亚洲人妻系列| 亚洲国产精品成人一区二区在线| 亚洲精品久久激情国产片| 成人综合网亚洲伊人| 韩日无码不卡| 日韩美女av一区二区三区四区| 亚洲av无码一区东京热| 香蕉久久人人97超碰caoproen| 亚洲av中文无码乱人伦在线咪咕 | 高清高速无码一区二区| 久久99精品综合国产女同| 台湾佬中文娱乐网22| 艳妇乳肉豪妇荡乳av无码福利| 熟女少妇av免费观看| 青青草在线这里只有精品| 99精品国产一区二区三区| 中文字幕AⅤ人妻一区二区| 性色av一区二区三区密臀av| 狠狠色狠狠色综合网| 亚洲熟妇丰满大屁股熟妇| 国产精品nv在线观看| 99久久国内精品成人免费| 人人妻人人爽人人澡欧美一区| 免费成人福利视频| 亚洲综合在线一区二区三区| 亚洲精品中文幕一区二区| 最新亚洲人成无码网站| 亚洲av粉嫩性色av| 亚洲 欧美 偷自乱 图片| 一本之道高清无码视频| 国产精品国产三级国产av主|