【论文翻译_无数据知识蒸馏_元学习_2022】Up to 100× Faster Data-free Knowledge Distillation
可以參考2021的另一篇解決相似問題的文章(Learning_Student_Networks_in_the_Wild)
摘要
data-free知識(shí)蒸餾(DFKD)由于其僅使用人造合成數(shù)據(jù)壓縮模型的能力,近年來越來越受到研究界的關(guān)注。盡管取得了令人鼓舞的成果,但最先進(jìn)的DFKD方法仍然存在數(shù)據(jù)合成效率低下的問題,這使得無數(shù)據(jù)訓(xùn)練過程非常耗時(shí),因此不適用于大規(guī)模任務(wù)。在這項(xiàng)工作中,我們介紹了一種有效的方案,稱為FastDFKD,它允許我們將DFKD加速一個(gè)數(shù)量級(jí)。我們方法的核心是一種新的策略,即重用訓(xùn)練數(shù)據(jù)中的共享公共特征,從而合成不同的數(shù)據(jù)實(shí)例。與之前獨(dú)立優(yōu)化一組數(shù)據(jù)的方法不同,我們建議學(xué)習(xí)一個(gè)元合成器,它尋找共同的特征作為快速數(shù)據(jù)合成的初始化。因此,FastDFKD只需幾步就能實(shí)現(xiàn)數(shù)據(jù)合成,顯著提高了無數(shù)據(jù)訓(xùn)練的效率。在CIFAR、NYV2和ImageNet上的實(shí)驗(yàn)表明,所提出的FastDFKD實(shí)現(xiàn)了10×甚至100×加速,同時(shí)保持了性能上的先進(jìn)水平。代碼在https://github.com/zju-vipa/Fast-Datafree.
1.介紹
最近,知識(shí)蒸餾(KD)已經(jīng)成為一種流行的范例,可以重用如今流行于網(wǎng)絡(luò)上的預(yù)訓(xùn)練模型。KD的目標(biāo)是通過模仿經(jīng)過培訓(xùn)的教師的行為來訓(xùn)練一個(gè)緊湊的學(xué)生模型,以便進(jìn)行有效的推理(Hinton、Vinyals和Dean 2015;Yang等人2020;Fang等人2021a)。KD的傳統(tǒng)設(shè)置要求擁有原始訓(xùn)練數(shù)據(jù)作為輸入,以便訓(xùn)練學(xué)生。不幸的是,由于保密或版權(quán)原因,在許多情況下,原始數(shù)據(jù)無法發(fā)布,用戶只能使用預(yù)先訓(xùn)練過的模型(Kolesnikov等人,2020年;Shen等人,2019年;Ye等人,2019年),這反過來又對將KD應(yīng)用于更廣泛的領(lǐng)域造成了重大障礙 。
為了解決這個(gè)問題,提出了無數(shù)據(jù)知識(shí)提取(DFKD)方法,假設(shè)根本無法訪問訓(xùn)練數(shù)據(jù)(Lopes、Fenu和Starner 2017), 由于對訓(xùn)練數(shù)據(jù)的限制非常寬松,DFKD受到研究界越來越多的關(guān)注,包括計(jì)算機(jī)視覺(Chen et al.2019)、自然語言處理(Ma et al.2020)和圖形學(xué)習(xí)(Deng和Zhang 2021)。通常,DKFD遵循一種通過生成來提取的范式,在這種范式中,合成數(shù)據(jù)集通常是通過“反轉(zhuǎn)”預(yù)先培訓(xùn)過的教師來進(jìn)行培訓(xùn)的(Yin等人,2019年)。為了學(xué)習(xí)一個(gè)可比較的學(xué)生模型,合成集應(yīng)該包含足夠的樣本,以便教師能夠全面地傳授知識(shí)。因此,這對DFKD構(gòu)成了重大挑戰(zhàn),因?yàn)楹铣纱笠?guī)模數(shù)據(jù)集不可避免地非常耗時(shí),尤其是對于像ImageNet識(shí)別(Yin等人2019)和COCO檢測(Chawla等人2021)這樣的復(fù)雜任務(wù)。
在本文中,我們引入了一種新的方法,稱為FastDFKD,以加速數(shù)據(jù)合成過程,從而使無數(shù)據(jù)知識(shí)提取更適用于大規(guī)模任務(wù)。我們的動(dòng)機(jī)源于這樣一個(gè)事實(shí):來自同一領(lǐng)域的數(shù)據(jù)實(shí)例通常共享一些公共特征,因此這些共享特征應(yīng)該被顯式地用于數(shù)據(jù)合成。例如,“毛發(fā)”的紋理可能經(jīng)常出現(xiàn)在動(dòng)物數(shù)據(jù)集中,因此可以重復(fù)使用以創(chuàng)建不同的實(shí)例。不幸的是,現(xiàn)有的DFKD方法主要集中于獨(dú)立合成樣本,事實(shí)上,現(xiàn)有的DFKD方法都沒有探索利用特征共享,這使得DFKD過程非常繁瑣。
另一方面,所提出的FastDFKD方法表達(dá)性地探索了用于合成的樣本之間的共同特征。FastDFKD遵循基于批次的數(shù)據(jù)合成策略(Yin等人2019;Fang等人2021b);然而,與之前獨(dú)立合成不同樣本的方法不同,FastDFKD專注于一個(gè)“學(xué)習(xí)合成”問題,在這個(gè)問題上,高效的合成器經(jīng)過明確訓(xùn)練,可以捕捉快速適應(yīng)的共同特征。公共特征共享的優(yōu)點(diǎn)是,我們不需要為每個(gè)實(shí)例重復(fù)合成它們,這顯著提高了合成效率。
具體而言,我們在Metal-Learning框架(Finn、Abbeel和Levine 2017)下開發(fā)了FastDFKD,旨在學(xué)習(xí)合成過程中的元生成器。FastDFKD包括兩個(gè)優(yōu)化循環(huán):外循環(huán)和內(nèi)循環(huán)。內(nèi)部循環(huán)用于數(shù)據(jù)合成過程,其中通過調(diào)整和重新組織公共特征來創(chuàng)建一組樣本。另一方面,外部循環(huán)使用內(nèi)部循環(huán)的結(jié)果更新公共特性,以實(shí)現(xiàn)更好的元初始化。如圖1所示,這樣的元合成器在無數(shù)據(jù)蒸餾的情況下顯著提高了數(shù)據(jù)合成的效率,同時(shí)保持了與現(xiàn)有技術(shù)相一致的性能。正如我們的實(shí)驗(yàn)所證明的那樣,與現(xiàn)有技術(shù)相比,FastDFKD能夠?qū)崿F(xiàn)10倍的速度,在某些情況下甚至超過100倍的速度。
因此,我們的貢獻(xiàn)是一種新的DFKD方案,稱為FastDFKD,它允許我們通過公共特征重用顯著加速無數(shù)據(jù)訓(xùn)練。在CIFAR、ImageNet和NYUv2數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,FastDFKD的性能與最新技術(shù)相當(dāng),同時(shí)與現(xiàn)有方法相比,其加速系數(shù)為10,有時(shí)甚至超過100。
圖1:CIFAR-100數(shù)據(jù)集上學(xué)生模型與GPU數(shù)據(jù)合成小時(shí)數(shù)的準(zhǔn)確性(%)。我們的方法,稱為“快”,達(dá)到了10×100×加速度和性能與現(xiàn)有方法席上。
2.相關(guān)工作
無數(shù)據(jù)知識(shí)蒸餾:無數(shù)據(jù)知識(shí)提取的目的是從預(yù)先訓(xùn)練的教師模型中訓(xùn)練出一個(gè)緊湊的學(xué)生模型,而不需要訪問原始的訓(xùn)練數(shù)據(jù)。它通常遵循一種通過生成提取的范例,在這種范例中,一個(gè)虛假的數(shù)據(jù)集將被合成并用于學(xué)生培訓(xùn)。在文獻(xiàn)中,Lopes等人提出了第一種無數(shù)據(jù)的知識(shí)提取方法,該方法利用原始訓(xùn)練數(shù)據(jù)的統(tǒng)計(jì)信息在知識(shí)提取過程中重建合成集(Lopes、Fenu和Starner 2017)。這項(xiàng)開創(chuàng)性的工作催生了幾部作品,在檢測(Chawla等人2021年)、分割(方等人2019年)、文本分類(馬等人2020年)、圖形分類(鄧和張2021年)和聯(lián)合學(xué)習(xí)(朱、洪和周2021年)等多項(xiàng)任務(wù)上取得了令人印象深刻的進(jìn)步。盡管取得了令人印象深刻的進(jìn)展,但DFKD中仍然存在一個(gè)令人煩惱的問題,即數(shù)據(jù)合成效率低下,這使得無數(shù)據(jù)訓(xùn)練非常耗時(shí)。例如,(Luo等人,2020年)訓(xùn)練1000個(gè)生成器壓縮ImageNet預(yù)訓(xùn)練的ResNet-50,以及(Yin等人,2019年)優(yōu)化大量小批量數(shù)據(jù)合成。在這項(xiàng)工作中,我們重點(diǎn)研究了這個(gè)尚未得到充分研究的問題,即DFKD的效率,并提出了第一種加速無數(shù)據(jù)訓(xùn)練的方法。
元學(xué)習(xí):元學(xué)習(xí)是一種流行的少鏡頭學(xué)習(xí)框架(Hospedales et al.2020),它遵循“l(fā)earning to learn”范式,為目標(biāo)任務(wù)找到一個(gè)有用的初始化。在各種元學(xué)習(xí)算法中,MAML是最具影響力的方法之一,因?yàn)樗诙鄠€(gè)基準(zhǔn)測試中取得了令人印象深刻的結(jié)果(Finn、Abbeel和Levine 2017;Nichol、Achiam和Schulman 2018)。作為一種基于優(yōu)化的元學(xué)習(xí)方法,MAML引入了兩個(gè)優(yōu)化循環(huán)來處理一組相關(guān)的任務(wù):一個(gè)用于任務(wù)學(xué)習(xí)的內(nèi)循環(huán)和一個(gè)用于訓(xùn)練meta-learner的外循環(huán)。內(nèi)部和外部循環(huán)經(jīng)過協(xié)作培訓(xùn),以找到可以快速適應(yīng)不同任務(wù)的元初始化,其中跨任務(wù)的一些一般知識(shí)由meta-learner獲取(Finn、Abbeel和Levine 2017)。受元學(xué)習(xí)“l(fā)earning to learn”范式的啟發(fā),我們開發(fā)了一種快速方法來訓(xùn)練DFKD問題的元合成器,該方法可以快速適應(yīng)快速數(shù)據(jù)合成。
3.方法
問題設(shè)置
給定一個(gè)教師模型ft(x;θt),在一個(gè)標(biāo)記但不可訪問的訓(xùn)練集上預(yù)先訓(xùn)練Dt=Σni{(xi,yi)|xi∈X,yi∈ Y}(參考: ),無數(shù)據(jù)知識(shí)蒸餾(DFKD)的目標(biāo)是通過反轉(zhuǎn)預(yù)先訓(xùn)練的模型的N個(gè)樣本構(gòu)建一個(gè)合成數(shù)據(jù)集D=Σni{xi|xi∈X} ,可以通過模仿教師的行為來訓(xùn)練可比較的學(xué)生模型fs(X;θs)。通常,D的合成由預(yù)先訓(xùn)練的反轉(zhuǎn)loss驅(qū)動(dòng)L:X→ R、 根據(jù)預(yù)培訓(xùn)教師模型中的一些統(tǒng)計(jì)信息,這表明輸入樣本x是否來自培訓(xùn)領(lǐng)域(Yin等人,2019年)。因此,單個(gè)數(shù)據(jù)點(diǎn)x的優(yōu)化可以形式化如下:
為了獲得大小為N的完整合成集D‘={x1,x2,…,xN},DFKD重復(fù)上述優(yōu)化以構(gòu)造一組樣本,這將導(dǎo)致一系列方程1形式的優(yōu)化問題。值得注意的是,不同實(shí)例xi的損失函數(shù),表示為Li,可以是不同的,因此可以構(gòu)造多樣的數(shù)據(jù)集D來從教師那里獲取全面的知識(shí)。為此,我們考慮DFKD的一個(gè)廣義數(shù)據(jù)合成問題,它利用一組反轉(zhuǎn) loss:L= {L1,L2,…,LN}來處理合成數(shù)據(jù)集,如下:
在DFKD中,求解方程2的一種常用方法是以一批一批的方式直接優(yōu)化不同的樣本(Yin等人2019;Fang等人2019;Chawla等人2021)。如圖2(a)所示,基于批處理的方法合成不同的獨(dú)立的實(shí)例,只考慮樣本之間的關(guān)系。盡管取得了令人鼓舞的結(jié)果,但DFKD方法通常存在數(shù)據(jù)合成效率低下的問題,因?yàn)橹谱鞔笠?guī)模數(shù)據(jù)集需要解決方程1中的大量優(yōu)化問題,每個(gè)問題都需要數(shù)千步才能收斂(Yin等人,2019年)。通常,來自同一領(lǐng)域的數(shù)據(jù)可能共享一些共同的特征,這些特征可以被重用以合成不同的樣本。在這項(xiàng)工作中,我們提出了FastDFKD,這是一種新的、有效的學(xué)習(xí)共同特征的方法,可以加速方程2的優(yōu)化。
圖2:提出的元特征重用圖,以及它與其他合成策略的區(qū)別。(a) 數(shù)據(jù)實(shí)例獨(dú)立合成,無需特征重用;(b) 數(shù)據(jù)實(shí)例是按順序合成的,重復(fù)使用以前的結(jié)果作為初始化。(c) 建議的公共特征重用學(xué)習(xí)元生成器以實(shí)現(xiàn)快速自適應(yīng)。
無數(shù)據(jù)知識(shí)蒸餾
綜述:我們提出的方法的核心是重用公共特征。我們的動(dòng)機(jī)源于這樣一個(gè)事實(shí):來自同一領(lǐng)域的數(shù)據(jù)通常共享一些可重用的模式,這些模式可以被重用以合成不同的實(shí)例。以下各節(jié)從生成的角度為公共特征開發(fā)了一個(gè)新的定義,并建議FastDFKD通過元學(xué)習(xí)過程捕捉公共特征以進(jìn)行快速合成。
相同特征:作為實(shí)現(xiàn)快速無數(shù)據(jù)訓(xùn)練的關(guān)鍵步驟,需要明確定義公共特征,以構(gòu)建網(wǎng)絡(luò)訓(xùn)練的優(yōu)化目標(biāo)。如圖2(b)所示,一種簡單的重用策略是順序特征重用,在之前的合成中學(xué)習(xí)到的特征直接用作初始化來制作新樣本。然而,這樣一個(gè)簡單的方案會(huì)有問題,因?yàn)閷W(xué)習(xí)到的特征只來自一個(gè)數(shù)據(jù)點(diǎn),這可能并不總是可用于其他樣本。為了解決這個(gè)問題,我們從生成的角度對公共特征進(jìn)行了更自然的定義。讓我們考慮生成碼G(z;θ),它具有潛(latent)代碼Z和可訓(xùn)練參數(shù)θ,滿足每個(gè)樣本xi∈ D’,可以發(fā)現(xiàn)潛代碼Zi生成xi= G(Zi;θ)。生成器描述了不同實(shí)例xi的生成過程。在某種程度上,一組樣本D’={x1,x2,…,xN}之間是否存在共同特征通常與不同數(shù)據(jù)實(shí)例的相似性高度相關(guān),這意味著如果我們能夠找到使不同樣本的代碼z={z1,z2,…,zN}在潛在空間中接近的最佳參數(shù)θ,生成器可以隱式捕獲共同特征。基于此,可以通過解決以下問題來學(xué)習(xí)共同特征:
其中dz和dx指latent空間和輸入空間中的距離度量。上述優(yōu)化旨在找到數(shù)據(jù)集D’的生成過程,該數(shù)據(jù)集在潛在latent空間中的z距離盡可能小,這樣,通過學(xué)習(xí)到的公共特征,可以通過在潛在代碼z中導(dǎo)航有效地獲得不同的樣本。然而,在無數(shù)據(jù)設(shè)置下,合成數(shù)據(jù)集D‘在我們合成它之前是不可用的。因此,我們用DFKD的反演損失L替換等式3的dx上定義的第二項(xiàng),這導(dǎo)致了公共特征學(xué)習(xí)的無數(shù)據(jù)目標(biāo):
然而,由于生成模型的容量有限,且GAN訓(xùn)練困難,學(xué)習(xí)一個(gè)完美的生成器來同時(shí)合成完整的合成集D’幾乎是困難的(Luo等人,2020)。為了解決這個(gè)問題,我們對等式4做了一些放寬,并且不強(qiáng)制生成器G捕獲整個(gè)數(shù)據(jù)集的所有特征。相反,我們訓(xùn)練了一個(gè)生成器,允許快速適應(yīng)k步梯度下降中的不同樣本,這自然會(huì)導(dǎo)致元學(xué)習(xí)問題。
元生成器:等式4很難優(yōu)化,因?yàn)樗枰靡粋€(gè)生成網(wǎng)絡(luò)生成完整的數(shù)據(jù)集D‘,包括許多不可重用的特性。相反,我們可以訓(xùn)練一個(gè)只包含公共特征的生成器,并為數(shù)據(jù)合成過程動(dòng)態(tài)合成其他缺失的特征,如圖2(c)所示。具體而言,我們放松了公共特征學(xué)習(xí)的目標(biāo),以訓(xùn)練一個(gè)輕量級(jí)生成器,該生成器可以適應(yīng)在k-step中合成不同的實(shí)例,形式化為元學(xué)習(xí)問題:
其中是元學(xué)習(xí)的內(nèi)循環(huán),它指的是從θ的估計(jì)值和代碼Z^初始化的k步優(yōu)化,用于合成XI。內(nèi)部循環(huán)可以展開,如下所示:
值得注意的是,等式5的作用與等式4中的公共特征損失類似。內(nèi)環(huán),即k步自適應(yīng),旨在通過顯式優(yōu)化等式4的第二項(xiàng)來學(xué)習(xí)用于合成的生成器。另一方面,外循環(huán)試圖通過隱式優(yōu)化等式4的第一項(xiàng),使不同的樣本在k步優(yōu)化中可達(dá)。
優(yōu)化:優(yōu)化方程6自然會(huì)導(dǎo)致元學(xué)習(xí)問題,需要一個(gè)有用的初始化(?z,?θ)來快速適應(yīng)。經(jīng)過k步梯度下降,我們得到了一組新的參數(shù),在損失函數(shù)Li的指導(dǎo)下,它提供了梯度θ,如下所示:
其中θ? = U kLi(?z;?θ)指使用等式6的k步自適應(yīng)的優(yōu)化結(jié)果,x?i=G(z*i;θ?i)=G(U kLi(?z;?θ))是指在損失Li指導(dǎo)下的合成結(jié)果。然而,請注意,等式6中的k步自適應(yīng)涉及k梯度更新:
式中,gk指在等式6的第k步計(jì)算的梯度,這將高階梯度引入生成器訓(xùn)練,并使反向傳播非常低效。受元學(xué)習(xí)領(lǐng)域先前工作(Nichol、Achiam和Schulman 2018)的啟發(fā),我們應(yīng)用一階近似來進(jìn)一步加速梯度計(jì)算,將3中的高階梯度視為常數(shù),并用恒等式映射替換U’i(?θ)。在這種情況下,方程式7中的梯度計(jì)算僅涉及一階梯度,可簡化如下:
一階近似直接使用內(nèi)部循環(huán)中自適應(yīng)生成器上計(jì)算的梯度來更新元生成器。此外,還有一種更有效的梯度近似,稱為爬行動(dòng)物(Nichol、Achiam和Schulman 2018),可以通過使用自適應(yīng)生成器和元生成器之間的參數(shù)差近似等式9中的梯度來實(shí)現(xiàn),這進(jìn)一步將等式9簡化為 :
綜上所述,元生成器的優(yōu)化如下所示:
方法總結(jié)
算法1總結(jié)了該方法,包括三個(gè)階段:1)數(shù)據(jù)合成的k步自適應(yīng);2) 共同特征學(xué)習(xí)的元學(xué)習(xí)步驟;3) 通過優(yōu)化如下式的KL偏差來更新學(xué)生模型的一些KD步驟:
其中B是從合成集合D’中取樣的小批量。該方法允許較小的k值進(jìn)行數(shù)據(jù)合成,顯著提高了DFKD的效率。
4.實(shí)驗(yàn)
見原文
總結(jié)
以上是生活随笔為你收集整理的【论文翻译_无数据知识蒸馏_元学习_2022】Up to 100× Faster Data-free Knowledge Distillation的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 内建函数大全
- 下一篇: WinHex(三)