NYU Google: 知识蒸馏无处不在,但它真的有用吗?
文 | 小偉
編 | 小軼
導(dǎo)師: 小偉,聽(tīng)說(shuō)你對(duì)知識(shí)蒸餾比較了解,你來(lái)給我說(shuō)說(shuō)知識(shí)蒸餾有什么用?
我: 知識(shí)蒸餾是一種很典型的模型壓縮的方法,我們可以用它來(lái)有效地從大型教師模型學(xué)習(xí)小型學(xué)生模型,并且學(xué)生模型的性能也很不錯(cuò)。
導(dǎo)師: 那它既然叫知識(shí)蒸餾,你怎么知道學(xué)生模型是不是真的充分學(xué)到了教師模型的知識(shí)呢?
我: 這不簡(jiǎn)單嘛,學(xué)生模型的效果好不就說(shuō)明學(xué)到充足的知識(shí)了。
導(dǎo)師:一看你就不關(guān)心最新的學(xué)術(shù)進(jìn)展,天天是不是忙著吃雞了!最近NYU和Google聯(lián)合發(fā)了一篇文章,仔細(xì)探索了知識(shí)蒸餾中學(xué)生模型的精度和蒸餾效果之間的關(guān)系,快去讀一讀!
我: 好嘞~
論文標(biāo)題:
Does Knowledge Distillation Really Work?
論文地址:
https://arxiv.org/pdf/2106.05945
arxiv訪問(wèn)慢的小伙伴也可以在 【夕小瑤的賣(mài)萌屋】訂閱號(hào)后臺(tái)回復(fù)關(guān)鍵詞 【0825】 下載論文PDF~
隨著自然語(yǔ)言處理進(jìn)入了預(yù)訓(xùn)練模型的時(shí)代,模型的規(guī)模也在極速增長(zhǎng),GPT-3甚至有1750億參數(shù)。如何在資源有限的情況下部署使用這些龐大的模型是一個(gè)很大的挑戰(zhàn)。
目前知識(shí)蒸餾在解決這一問(wèn)題中的方法中占據(jù)了重要的地位。我們可以通過(guò)知識(shí)蒸餾來(lái)學(xué)習(xí)容易使用的小型學(xué)生模型,但是它真的可以起到蒸餾教師模型知識(shí)的效果嗎?在這篇文章中,作者對(duì)這一問(wèn)題進(jìn)行了詳細(xì)的探索與解答,下面我們就來(lái)一探究竟。
概要
盡管目前有很多知識(shí)蒸餾相關(guān)的研究,但它們主要集中于如何提高學(xué)生模型的泛化性(generalization),往往忽視了學(xué)生模型的預(yù)測(cè)和教師模型的預(yù)測(cè)的匹配程度(fidelity),我們可以簡(jiǎn)單稱(chēng)之為學(xué)生模型的匹配度。相比泛化性,匹配度更好的反映了學(xué)生模型蒸餾到了多少教師模型含有的知識(shí)。
本文對(duì)這兩種概念做了詳細(xì)的解釋與區(qū)分,并且指出獲得良好的匹配度對(duì)學(xué)生模型來(lái)說(shuō)往往是很困難的。
基于此現(xiàn)象,作者探索了兩種可能導(dǎo)致這種困難的原因:
Identifiability: 蒸餾數(shù)據(jù)不夠充足,所以在訓(xùn)練數(shù)據(jù)上學(xué)生-教師預(yù)測(cè)可以匹配并不意味著在測(cè)試數(shù)據(jù)上也可以匹配。
Optimization: 我們不能很好地解決蒸餾優(yōu)化問(wèn)題,所以不管是在訓(xùn)練數(shù)據(jù)還是測(cè)試數(shù)據(jù)上,學(xué)生模型的匹配度都比較低。
為什么需要匹配度?
之前的研究已經(jīng)揭示了知識(shí)蒸餾通常會(huì)提高學(xué)生模型的泛化能力,所以我們?yōu)槭裁催€要關(guān)心學(xué)生模型的匹配度呢?
首先是學(xué)生模型的泛化性能和教師模型的泛化性能往往有比較大的差距,提高匹配度是消除學(xué)生和教師泛化性能差異最顯而易見(jiàn)的方法。
其次良好的學(xué)生模型匹配度可以提高知識(shí)蒸餾的可解釋性與可信賴(lài)性。
最后,將匹配度和泛化性解耦可以幫助更好的理解知識(shí)蒸餾是怎么工作的以及如何在各種應(yīng)用程序中更好的利用它
學(xué)生模型的匹配度高嗎?
作者使用3個(gè)ResNet-56網(wǎng)絡(luò)的集成來(lái)作為教師模型,使用單個(gè)的ResNet-56網(wǎng)絡(luò)來(lái)作為學(xué)生模型進(jìn)行知識(shí)蒸餾。
如Figure 1(b)顯示,學(xué)生模型和教師模型的預(yù)測(cè)之前有著顯著的差距(Low Test Agreement),也就是低匹配度。
導(dǎo)致低匹配度的原因
學(xué)生模型的匹配度比較差,是什么原因?qū)е碌哪?#xff1f;
作者給出了兩個(gè)可能的原因,并進(jìn)行了相應(yīng)的探索與驗(yàn)證。
首先可能是蒸餾數(shù)據(jù)不夠充足
作者設(shè)計(jì)實(shí)驗(yàn)探索了在蒸餾過(guò)程中使用不同的數(shù)據(jù)增強(qiáng)策略是否可以提高學(xué)生模型的匹配度。
如Figure 3所示,實(shí)驗(yàn)結(jié)果證明雖然數(shù)據(jù)增強(qiáng)在縮小學(xué)生-教師模型預(yù)測(cè)差距上是有用的,但它帶來(lái)的改進(jìn)很小,所以蒸餾數(shù)據(jù)不足不是導(dǎo)致低匹配度的主要原因。
既然蒸餾數(shù)據(jù)數(shù)量不足不是主要原因,那么會(huì)不會(huì)是蒸餾數(shù)據(jù)的分布偏移導(dǎo)致的呢?
作者同樣設(shè)計(jì)了實(shí)驗(yàn)來(lái)驗(yàn)證這一猜想。Figure 4中的實(shí)驗(yàn)結(jié)果顯示調(diào)整蒸餾數(shù)據(jù)的分布可以帶來(lái)微小的改進(jìn),這也證明了數(shù)據(jù)的錯(cuò)誤選擇不是導(dǎo)致低匹配度的主要原因。
其次可能是蒸餾過(guò)程中的優(yōu)化有問(wèn)題
既然數(shù)據(jù)不夠充足或者分布有偏移不是主要原因,那么會(huì)不會(huì)是因?yàn)閷W(xué)生模型本來(lái)就沒(méi)有充分的學(xué)習(xí)訓(xùn)練集,導(dǎo)致即使是在訓(xùn)練數(shù)據(jù)上學(xué)生-教師預(yù)測(cè)的差異都很大呢?
為了驗(yàn)證這一猜想,作者使用ResNet-56以及CIFAR-100設(shè)計(jì)了簡(jiǎn)單的蒸餾實(shí)驗(yàn)。
如Figure 5所示,當(dāng)使用廣泛的數(shù)據(jù)增強(qiáng)策略時(shí),即使是在訓(xùn)練集上,學(xué)生模型的匹配度也會(huì)比較低。這印證了我們的猜想,學(xué)生模型沒(méi)有充分的學(xué)習(xí)訓(xùn)練數(shù)據(jù)。
那么為什么即使是在訓(xùn)練集上,學(xué)生-教師模型預(yù)測(cè)的匹配度都很低呢?原因其實(shí)很簡(jiǎn)單,知識(shí)蒸餾的優(yōu)化會(huì)收斂于次優(yōu)解,從而導(dǎo)致低匹配度。
總結(jié)
作者總結(jié)了本文的關(guān)鍵發(fā)現(xiàn):
學(xué)生模型的泛化性能(generalization)和匹配度(fidelity)的變化趨勢(shì)并不一致
學(xué)生模型的匹配度(fidelity)和蒸餾的校準(zhǔn)(calibration)有很大的關(guān)聯(lián)
知識(shí)蒸餾過(guò)程中的優(yōu)化是很困難的,這也是導(dǎo)致低匹配度的主要原因
蒸餾優(yōu)化的復(fù)雜度以及蒸餾數(shù)據(jù)的質(zhì)量之間存在均衡(trade-off)
Final Question
現(xiàn)在回到我們最開(kāi)始的問(wèn)題,知識(shí)蒸餾真的有用嗎?
毫無(wú)疑問(wèn),它是有用的,因?yàn)樗ǔ?梢蕴岣邔W(xué)生模型的泛化性能;同時(shí)它也是沒(méi)用的,因?yàn)樗偸菍⒑苡邢薜闹R(shí)從教師傳遞到學(xué)生,這與它的名字知識(shí)蒸餾相去甚遠(yuǎn)。所以我們是不是可以改稱(chēng)它為knowledge enhancement?
小伙伴,你們?cè)趺纯茨?#xff1f;
最后的最后,
導(dǎo)師: 小伙子不錯(cuò)啊,論文讀得又快又精準(zhǔn),這周的Reading Group就交給你了。
我: 嗚嗚嗚,又是我,滾去讀論文了~
尋求報(bào)道、約稿、文案投放:
添加微信xixiaoyao-1,備注“商務(wù)合作”
后臺(tái)回復(fù)關(guān)鍵詞【入群】
加入賣(mài)萌屋NLP/IR/Rec與求職討論群
后臺(tái)回復(fù)關(guān)鍵詞【頂會(huì)】
獲取ACL、CIKM等各大頂會(huì)論文集!
總結(jié)
以上是生活随笔為你收集整理的NYU Google: 知识蒸馏无处不在,但它真的有用吗?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 在深度学习顶会ICLR 2020上,Tr
- 下一篇: 为什么搜索与推荐场景用AUC评价模型好坏