[论文解读]Explaining Knowledge Distillation by Quantifying the Knowledge
Explaining Knowledge Distillation by Quantifying the Knowledge
簡介
論文標題
- Explaining Knowledge Distillation by Quantifying the Knowledge
- 可解釋性:通過量化知識來解釋知識蒸餾
- 2020.3.7
核心內容
- 本研究核心在于通過定義并量化神經網絡中層特征的“知識量”,從神經網絡表達能力的角度來解釋知識蒸餾算法的成功機理,提出并驗證以下三個Hypotheses
作者本人知乎在下方鏈接
摘要
本文提出了一種通過量化和分析深度神經網絡(DNN)中間層中與任務相關和與任務無關的視覺概念來解釋知識蒸餾成功的方法。更具體地說,提出了以下三個假設。
1.知識蒸餾使DNN比從原始數據中學習更多的視覺概念。
2.知識蒸餾保證了DNN易于同時學習各種視覺概念。然而,在從原始數據學習的場景中,DNN按順序學習視覺概念。
3.知識蒸餾比從原始數據中學習得到更穩定的優化方向。
如何定義并量化DNN所建模的“知識”?
- 本研究中,知識指不依賴人為主觀標注的,與任務相關的一塊圖像區域,如圖中的鳥頭、鳥肚子等。
利用輸入信息的遺忘程度來衡量神經網絡中層特征所建模的“知識量”
依據information-bottleneck[1],DNN對輸入信息是逐層遺忘的。因而我們利用輸入信息的遺忘程度來衡量神經網絡中層特征所建模的“知識量”,并借助條件熵來量化信息遺忘[2,3]。具體如下:
給定輸入圖片,以及DNN中層特征,則信息遺忘可轉化為計算時的信息損失的熵。
我們假設神經網絡往往用一個很小的特征范圍去表示某一概念||f-f*|| < small constant。我們旨在量化“被神經網絡視為表示同一概念的不同圖片的概率分布的熵”。即,我們考慮對輸入圖片加入一個微小擾動,并計算滿足||f-f*|| < small constant時,輸入圖片的熵。
考慮到高斯分布的獨立性,整個圖片的熵可分解成像素級熵的加和,信息遺忘量越少越小,則輸入中蘊含的與任務相關的信息越多,“知識量”也越多
知識點定義
考慮到不同像素上的熵是不一樣的,一個圖片上的“知識點”被定義為那些信息熵比較小的像素,即其信息損失比“平均背景信息熵”明顯小很多的像素點。進一步,這些信息損失比較小的像素點的個數被認為是這個圖片上的知識量。這里“平均背景信息熵”是一個參考值,用來大致衡量神經網絡在與分類無關的圖像區域的信息損失程度。
信息丟棄的定量化
根據信息瓶頸理論[41,36],通過層層逐漸丟棄輸入圖像的信息。[14,26]提出了一種對DNN特定中間層編碼的輸入信息進行量化的方法,即度量DNN在提取該層特征時忽略了多少輸入信息。在給定中間層特征f?=f(X)的情況下,信息丟棄被表示為輸入的條件熵H(X0),如下所示。
H(X′)s.t.??x′∈X′,∥f(x′)?f?∥2≤τH\left(X^{\prime}\right) \text { s.t. } \forall x^{\prime} \in X^{\prime},\left\|f\left(x^{\prime}\right)-f^{*}\right\|^{2} \leq \tau H(X′)?s.t.??x′∈X′,∥f(x′)?f?∥2≤τ
X0表示與特定對象實例的概念相對應的一組圖像。
假設x’獨立同分布并滿足高斯分布x′~N(x,Σ=diag?(σ12,…,σn2))x^{\prime} \sim \mathcal{N}\left(x, \Sigma=\operatorname{diag}\left(\sigma_{1}^{2}, \ldots, \sigma_{n}^{2}\right)\right)x′~N(x,Σ=diag(σ12?,…,σn2?)),其中σ控制每個第i個像素處的擾動大小。n表示輸入圖像的像素數。這樣,高斯分布的假設確保可以將整個圖像的熵H(X0)分解成像素級熵{Hi},如下所示。
H(X′)=∑i=1nHiH\left(X^{\prime}\right)=\sum_{i=1}^{n} H_{i} H(X′)=i=1∑n?Hi?
其中Hi=log?σi+12log?(2πe)H_{i}=\log \sigma_{i}+\frac{1}{2} \log (2 \pi e)Hi?=logσi?+21?log(2πe)測量像素信息的丟棄。
視覺概念的量化–三個假設
假設一
Hypothesis 1旨在證明相比僅從數據集訓練而得的DNN(baseline network),知識蒸餾使得DNN學到更多的“知識點”,即更多的前景“知識量”和更少的背景“知識量”。
分類任務中,相較于背景,前景信息與任務更為相關。從而,一個性能優越的教師網絡會建模更多的前景“知識點”和更少的背景“知識點”,使得學生網絡會學到更可靠的“知識點”,如圖3所示,驗證了Hypothesis 1的正確性。
基礎網絡和學生網絡結構相同,但一個是用知識蒸餾得到的,一個是直接學習得到的
Nconcept?bg?(x)=∑i∈Λbg?w.rt.?x1(Hˉ?Hi>b)Nconcept?fg?(x)=∑i∈Λfgwist?,x1(Hˉ?Hi>b)λ=Ex∈I[Nconcept?fg?(x)/(Nconcept?fg?(x)+Nconcept?bg?(x))]\begin{array}{l} N_{\text {concept }}^{\text {bg }}(x)=\sum_{i \in \Lambda_{\text {bg }} \text { w.rt. } x} \mathbb{1}\left(\bar{H}-H_{i}>b\right) \\ N_{\text {concept }}^{\text {fg }}(x)=\sum_{i \in \Lambda_{f_{g}} \text { wist }, x} \mathbb{1}\left(\bar{H}-H_{i}>b\right) \\ \lambda=\mathbb{E}_{x \in \mathbf{I}}\left[N_{\text {concept }}^{\text {fg }}(x) /\left(N_{\text {concept }}^{\text {fg }}(x)+N_{\text {concept }}^{\text {bg }}(x)\right)\right] \end{array} Nconcept?bg??(x)=∑i∈Λbg???w.rt.?x?1(Hˉ?Hi?>b)Nconcept?fg??(x)=∑i∈Λfg???wist?,x?1(Hˉ?Hi?>b)λ=Ex∈I?[Nconcept?fg??(x)/(Nconcept?fg??(x)+Nconcept?bg??(x))]?
其中NBGX)和NFG(X)分別表示編碼在背景和前景上的視覺概念的數量。
度量λ用于度量特征的區分能力,λ越大越好
非背景的知識點越多,背景的知識點越多 越好
假設二
Hypothesis 2 意圖證明蒸餾使得DNN能夠同時學到不同的“知識點”,即較快的學習速率。考慮到DNN的優化過程并非“一馬平川”,本研究選擇計算網絡優化的路徑長度而非epoch數來刻畫DNN的學習效果。
在網絡的優化過程中,DNN不斷學習新“知識點”,同時遺忘舊“知識點”。因而,我們選擇衡量在第k個epoch,即DNN獲得最豐富前景知識量時,網絡的學習效果(隨輸入圖片的不同而變化)
上圖為DNN學習的兩個階段 1.學習新知識點 2. 遺忘掉沒有用的知識點
DNN的學習速率快體現在兩個方面:
即,我們在考察對于不同的輸入樣本,DNN是否可以同時學習其前景知識點,并在同一訓練階段建模到各個圖片的最豐富的前景知識量。對于所有輸入樣本,當DNN的前景“知識量”最多時,網絡優化的路徑長度的均值 與方差分別定量刻畫了DNN是否快速、同時地學習“知識點”。均值和方差越小,代表DNN能夠快速并同時學到不同知識。
Dmean?=EI∈I[∑k=1m^∥wk?wk?1∥∥w0∥]Dstd?=Var?I∈I[∑k=1m^∥wk?wk?1∥∥w0∥]\begin{aligned} D_{\text {mean }} &=\underset{I \in \mathbf{I}}{\mathbb{E}}\left[\sum_{k=1}^{\hat{m}} \frac{\left\|w_{k}-w_{k-1}\right\|}{\left\|w_{0}\right\|}\right] \\ D_{\text {std }} &=\operatorname{Var}_{I \in \mathbf{I}}\left[\sum_{k=1}^{\hat{m}} \frac{\left\|w_{k}-w_{k-1}\right\|}{\left\|w_{0}\right\|}\right] \end{aligned} Dmean??Dstd???=I∈IE?[k=1∑m^?∥w0?∥∥wk??wk?1?∥?]=VarI∈I?[k=1∑m^?∥w0?∥∥wk??wk?1?∥?]?
越小就代表著權重收斂的越快
因此,Dean和Dstd的小值表明DNN同時快速地學習各種概念。
假設三
Hypothesis 3 意在證明由于教師網絡的指導,知識蒸餾使得DNN的優化方向更為穩定,更少“繞彎路”。
如圖5所示,在優化前期,由于DNN的優化方向尚未確定,所建模的前景“知識點”不盡相同。
就像狗熊掰棒子,神經網絡早期學習的一些知識點是與任務無關的,并在優化過程后期被逐漸遺忘。
因而DNN在優化過程中那些被遺忘的、錯誤建模的、與任務無關的“知識點”越少,優化方向也就越穩定。所以,我們利用DNN最終用于分類的“知識量”(黑框)與優化過程中學習到的所有“知識量” (綠框)的比值刻畫網絡優化方向的穩定性。比值越高,優化越穩定。
ρ=∥SM(I)∥∥?j=1MSj(I)∥\rho=\frac{\left\|S_{M}(I)\right\|}{\left\|\bigcup_{j=1}^{M} S_{j}(I)\right\|} ρ=∥∥∥??j=1M?Sj?(I)∥∥∥?∥SM?(I)∥?
ρ的值越高,說明DNN越優化,迂回越少1,越穩定,拋棄的特征就越少;
收斂后的模型的知識點比上每次迭代的模型的知識點的并集的一個比例,越大代表遺忘的特征越少
作者本人知乎
總結
以上是生活随笔為你收集整理的[论文解读]Explaining Knowledge Distillation by Quantifying the Knowledge的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 经常玩电脑正确的坐姿_告诉你电脑族的最佳
- 下一篇: uap反编译