Distilling the Knowledge in a Neural Network 筆記

1. 介紹

在論文中,作者提出了先訓(xùn)練一個大的笨重的模型,再使用distilling來將笨重的模型的知識遷移到小的模型中,用于實(shí)際部署。
通常情況下,我們認(rèn)為一個模型的知識保存在它的參數(shù)中,這使得我們很難想象到如何來改變模型,而不丟失知識。然后,另一種較為抽象的對待知識的角度,是將知識看作是輸入到輸出的映射。
一種簡單地將大模型的泛化性能轉(zhuǎn)移到小模型的方式是,將大模型得到的類別概率作為小模型的soft targets來訓(xùn)練。
當(dāng)soft targets有很高的entropy時,它們能夠提供足夠多的信息,同時擁有較低的variance,所以小模型只需要很小的數(shù)據(jù)就能訓(xùn)練,也可以使用很大的學(xué)習(xí)率。

2. Distillation

通常情況下,我們使用softmax來將logitz_i轉(zhuǎn)變?yōu)楦怕?img class="math-inline" src="https://math.jianshu.com/math?formula=q_i" alt="q_i" mathimg="1">,如下:

(1)

T
是temperature,通常設(shè)置為
1
,一個大的
T
會產(chǎn)生更加soft的概率分布。

在最簡單的distillation中,通過在一個由笨重模型產(chǎn)生的transfer set上訓(xùn)練,并且使用soft target作為目標(biāo),也就是在softmax中使用大的T來產(chǎn)生概率。在訓(xùn)練distilled模型時,使用相同的T訓(xùn)練,來進(jìn)行知識遷移。

作者發(fā)現(xiàn)使用真實(shí)label和soft target的加權(quán)平均能夠得到很好的效果。也就是loss分兩部分,一部分是soft targets和預(yù)測值的cross entropy,但是使用和笨重模型產(chǎn)生soft target時相同的大的T值來計(jì)算softmax。另一部分是真實(shí)label和預(yù)測值的cross entropy,這時T為1。
soft targets產(chǎn)生的梯度多了一個\frac{1}{T^2},因此應(yīng)該乘一個T^2。

2.1 Matching logits is a special case of distillation

假設(shè)distilled模型產(chǎn)生了logit z_i,笨重的模型產(chǎn)生的logits v_i,以及soft target 概率p_i,transfer learning使用的temperature為T,那么梯度為:

2

如果temperature相對于logits的大小來說比較高,可以使用如下近似:
3

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容