會(huì)議網(wǎng)站建設(shè)方案模板搜一搜站長工具
筆記整理:閔德海,東南大學(xué)碩士,研究方向?yàn)橹R(shí)圖譜
鏈接:https://arxiv.org/abs/1412.6550
動(dòng)機(jī)
提高神經(jīng)網(wǎng)絡(luò)的深度通??梢蕴岣呔W(wǎng)絡(luò)性能,但它也使基于梯度的訓(xùn)練更加困難,因?yàn)楦畹木W(wǎng)絡(luò)往往更加強(qiáng)的非線性。最近提出的知識(shí)蒸餾方法旨在獲得小型和快速執(zhí)行的模型,它已經(jīng)表明參數(shù)量較小的學(xué)生網(wǎng)絡(luò)可以較好的模仿更大的教師網(wǎng)絡(luò)或網(wǎng)絡(luò)集群的Soft Output。
在本文中,我們擴(kuò)展了這一思想,允許訓(xùn)練一個(gè)比教師模型更深更薄的學(xué)生模型,不僅使用輸出層的信息,還使用教師模型學(xué)習(xí)到的中間表示作為提示,以改善學(xué)生模型的訓(xùn)練過程和最終表現(xiàn)。由于學(xué)生模型中間隱含層一般會(huì)小于教師模型中間隱含層,因此引入附加參數(shù)將學(xué)生模型隱含層映射到教師隱含層的預(yù)測。
這使得我們可以訓(xùn)練更深的學(xué)生模型,他們可以更好地泛化或者運(yùn)行得更快(這由所選學(xué)生模型的能力的權(quán)衡控制)。例如,在CIFAR-10上,我們完成了一個(gè)參數(shù)少近10.4倍的深度學(xué)生網(wǎng)絡(luò)比一個(gè)更大、最先進(jìn)的教師網(wǎng)絡(luò)表現(xiàn)更好。
主要解決的問題
論文主要針對Hinton提出的知識(shí)蒸餾法進(jìn)行擴(kuò)展,允許Student網(wǎng)絡(luò)可以比Teacher網(wǎng)絡(luò)更深更窄,使用teacher網(wǎng)絡(luò)的輸出和中間層的特征作為提示,改進(jìn)訓(xùn)練過程和student網(wǎng)絡(luò)的性能。
貢獻(xiàn)
(1)引入了intermediate-level hints來指導(dǎo)學(xué)生模型的訓(xùn)練。
(2)使用一個(gè)寬而淺的教師模型來訓(xùn)練一個(gè)窄而深的學(xué)生模型。
(3)在進(jìn)行hint引導(dǎo)時(shí),提出使用一個(gè)層來匹配hint層和guided層的輸出shape,這在后人的工作里面常被稱為adaptation layer。
方法
1. Hint-Based Training
將教師的hint layer作為監(jiān)督,學(xué)生的guided layer作為被監(jiān)督的對象,希望guided layer可以盡可能地去預(yù)測到hint layer的輸出。
HT Loss表示如下:
作者使用了一個(gè)回歸層r(對應(yīng)下圖b中的Wr), 來對齊特征的shape。
圖1?模型的訓(xùn)練框架
此外,本文作者認(rèn)為使用hint來進(jìn)行引導(dǎo)是一種正則化手段,學(xué)生guided層越深,那么正則化作用就越明顯,為了避免過度正則化,需要仔細(xì)選擇hint和guided。
2. FITNET STAGE-WISE TRAINING
分成兩個(gè)階段:
(1)使用訓(xùn)練好的教師模型和隨機(jī)初始化的學(xué)生模型,在第一階段,用教師的hint來預(yù)訓(xùn)練學(xué)生的guided layer及之前的層。
(2)第二個(gè)階段,使用經(jīng)典的KD loss來對整個(gè)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,KD loss為:
整體的蒸餾算法如下:
圖2 蒸餾算法的偽代碼
實(shí)驗(yàn)
1. 數(shù)據(jù)集
CIFAR-10:為了驗(yàn)證我們的方法,我們訓(xùn)練了一個(gè)最大輸出卷積層的教師網(wǎng)絡(luò),設(shè)計(jì)了一個(gè)17層最大輸出卷積層的FitNet,接著是一個(gè)最大輸出全連接層和一個(gè)頂部的softmax層,大約有1/3的參數(shù)。學(xué)生網(wǎng)絡(luò)的第11層被訓(xùn)練成模仿教師網(wǎng)絡(luò)的第2層。在訓(xùn)練期間,我們使用隨機(jī)翻轉(zhuǎn)來增強(qiáng)數(shù)據(jù)。
SVHN:?由GoogleStreet View收集的32×32彩色房屋號碼圖像組成。訓(xùn)練集中有73,257張圖像,測試集中有26,032張圖像,還有531,131個(gè)較不困難的示例。我們訓(xùn)練了一個(gè)由11個(gè)最大輸出卷積層、一個(gè)全連接層和一個(gè)softmax層組成的13層FitNet。
2.?結(jié)果
CIFAR-10數(shù)據(jù)集
表1 CIFAR-10的準(zhǔn)確率表現(xiàn)
表1總結(jié)了獲得的結(jié)果。我們的學(xué)生模型勝過教師模型,同時(shí)需要明顯較少的參數(shù),這表明深度對于實(shí)現(xiàn)更好的表示至關(guān)重要。與網(wǎng)絡(luò)壓縮方法相比,我們的算法取得了出色的結(jié)果。即,學(xué)生網(wǎng)絡(luò)的準(zhǔn)確率達(dá)到91.61%,比之前的最佳表現(xiàn)者85.8%高得多,同時(shí)需要大約28倍的參數(shù)。與最先進(jìn)的方法相比,我們的算法匹配了最佳的表現(xiàn)者。有人可能會(huì)質(zhì)疑使用寬教師網(wǎng)絡(luò)的隱藏狀態(tài)來提示內(nèi)部層的選擇。一個(gè)直接的替代方案是使用所需的輸出來提示它們。這可以通過幾種不同的方式解決:(1)階段性訓(xùn)練,其中第1階段優(yōu)化網(wǎng)絡(luò)的前半部分以實(shí)現(xiàn)分類目標(biāo),第2階段優(yōu)化整個(gè)網(wǎng)絡(luò)以實(shí)現(xiàn)分類目標(biāo)。在這種情況下,第1階段設(shè)置了網(wǎng)絡(luò)參數(shù)的一個(gè)良好局部極小值,但此初始化似乎不能充分幫助第2階段學(xué)習(xí),導(dǎo)致它無法學(xué)習(xí)。
SVHN數(shù)據(jù)集
表2 SVHN的錯(cuò)誤率
表2的數(shù)據(jù)表明盡管使用的只有教師網(wǎng)絡(luò)容量的32%,但我們的FitNet實(shí)現(xiàn)了與教師網(wǎng)絡(luò)相當(dāng)?shù)臏?zhǔn)確性。我們的FitNet在性能方面與其他最先進(jìn)的方法(如Maxout和Network in Network)相當(dāng)。
總結(jié)
本研究提出了一種新的框架,通過引入來自教師隱藏層的中間層提示來壓縮寬而深的網(wǎng)絡(luò)為更薄更深的網(wǎng)絡(luò)。能夠使用這些提示來訓(xùn)練具有更少參數(shù)的非常深的學(xué)生模型,這些模型可以比其教師模型更好地泛化和/或更快地運(yùn)行。本研究提供了實(shí)證證據(jù),表明使用教師網(wǎng)絡(luò)的隱藏狀態(tài)提示薄而深的網(wǎng)絡(luò)的內(nèi)部層比使用分類目標(biāo)提示更好地泛化。在基準(zhǔn)數(shù)據(jù)集上的實(shí)驗(yàn)強(qiáng)調(diào),具有低容量的深度網(wǎng)絡(luò)能夠提取與具有多達(dá)10倍參數(shù)的網(wǎng)絡(luò)相當(dāng)甚至更好的特征表示?;谔崾镜挠?xùn)練表明,應(yīng)更加努力地探索新的訓(xùn)練策略,以利用深度網(wǎng)絡(luò)的強(qiáng)大力量。
OpenKG
OpenKG(中文開放知識(shí)圖譜)旨在推動(dòng)以中文為核心的知識(shí)圖譜數(shù)據(jù)的開放、互聯(lián)及眾包,并促進(jìn)知識(shí)圖譜算法、工具及平臺(tái)的開源開放。
點(diǎn)擊閱讀原文,進(jìn)入 OpenKG 網(wǎng)站。