睡眠 应该用 a加权 c加权_在神经网络中提取知识:学习用较小的模型学得更好...
在傳統的機器學習中,為了獲得最先進的(SOTA)性能,我們經常訓練一系列整合模型來克服單個模型的弱點。 但是,要獲得SOTA性能,通常需要使用具有數百萬個參數的大型模型進行大量計算。 SOTA模型(例如VGG16 / 19,ResNet50)分別具有138+百萬和23+百萬個參數。 在邊緣設備部署這些模型是不可行的。
智能手機和IoT傳感器等邊緣設備是資源受限的設備,無法在不影響設備性能的情況下進行訓練或實時推斷。 因此,研究集中在將大型模型壓縮為小型緊湊的模型,將其部署在邊緣設備時性能損失最小至零。
以下是一些可用的模型壓縮技術,盡管它不限于以下內容:
· 修剪和量化
· 低階分解
· 神經網絡架構搜索(NAS)
· 知識蒸餾
在這篇文章中,重點將放在[1]提出的知識蒸餾上,參考鏈接[2]提供了上面列出的模型壓縮技術列表的詳盡概述。
知識蒸餾
知識蒸餾是利用從一個大型模型或模型集合中提取的知識來訓練一個緊湊的神經網絡。利用這些知識,我們可以在不嚴重影響緊湊模型性能的情況下,有效地訓練小型緊湊模型。
大、小模型
我們稱大模型或模型集合為繁瑣模型或教師網絡,而稱小而緊湊的模型為學生網絡。
一個簡單的類比是,一個大腦小巧緊湊的學生為了考試而學習,他試圖從老師那里吸收盡可能多的信息。然而老師只是教所有的東西,學生不知道在考試中會出哪些問題,盡力吸收所有的東西。
在這里,壓縮是通過將知識從教師中提取到學生中而進行的。
在提取知識之前,繁瑣的模型或教師網絡應達到SOTA性能,此模型由于其存儲數據的能力而通常過擬合。 盡管過擬合,但繁瑣的模型也應該很好地推廣到新數據。 繁瑣模型的目的是使正確類別的平均對數概率最大化。 較可能正確的類別將被分配較高的概率得分,而錯誤的類別將被賦予較低的概率。
下面的示例顯示了在給定的"鹿"圖像上進行推理時以及softmax之后的結果。下圖。要獲得預測,我們采用最大類概率評分的argmax,這將使我們有60%的機會是正確的。
然而,鑒于上面的圖2。(為了說明的目的),我們知道與"船"相比,"馬"與"鹿"非常相似。因此,在推斷過程中,我們有60%是正確的,39%是錯誤的。由于"鹿"與"馬"之間存在一定的空間相似性,因此網絡預測"馬"的準確性是不容置疑的。如果在網絡中提供"我認為這幅圖60%是鹿,39%是馬"的信息,如[deer: 0.6, horse: 0.39, ship: 0.01],那么網絡就會提供更多的信息(高熵)。使用類概率作為目標類比僅僅使用原始目標提供了更多的信息。
蒸餾
教師將預測類別概率的知識提取給學生作為"軟目標"。這些數據集又稱為"轉移集",其目標為教師提供的類別概率,如上圖所示。蒸餾過程是通過在softmax函數中引入一個超參數T(溫度)來進行的,這樣教師模型就可以為學生模型生成一個適當的傳遞集目標的軟目標集合。
軟目標擅長幫助模型泛化,并且可以充當正則化函數來防止模型過于自信。
訓練教師和學生模型
首先,我們訓練繁瑣/教師模型,因為我們要求繁瑣的模型很好地歸納為新數據。 在蒸餾過程中,學生模型目標函數是兩個不同目標函數Loss1和Loss2的加權平均值。
loss1 軟目標的交叉熵損失
溫度T > 1乘以權重參數alpha的教師q和學生p的兩個溫度softmax的交叉熵損失(CE)。
loss2 硬目標的交叉熵損失
正確標簽和T = 1的學生硬目標的交叉熵(CE)損失。Loss2很少注意(1- alpha)學生模型為匹配軟目標而制定的硬目標(student_pred) q來自教師模型。
學生模型的目標是蒸餾損失,它是Loss1和Loss2之和。
然后在訓練學生模型時,以最大程度地減少其蒸餾損失。
結果
MNIST實驗
下表1是論文[1]的結果,該論文顯示了使用在MNIST數據集上訓練了60,000個訓練案例的教師、學生和提煉模型的性能。 所有模型都是兩層神經網絡,分別具有1200、800和800個神經元,分別用于教師,學生和提煉模型。 當使用精簡模型與學生模型進行比較時,溫度設置為20時,教師和精簡模型之間的測試誤差相當。但是,僅使用具有硬目標的學生模型時,其推廣性就變的很差。
語音識別實驗
下表2是論文[1]的另一個結果。 教師模型是由85M參數組成的語音模型,該參數是根據2000個小時的英語口語數據進行訓練的,其中包含大約700M的訓練示例。 表2中的第一行是在100%的訓練示例上訓練的基線模型,其準確性為58.9%。 第二行僅使用3%的訓練示例進行訓練,這會導致嚴重的過度擬合。最后,第三行是用3%的訓練樣本用同樣的3%的軟目標訓練得到的同樣的語音模型,只用3%的訓練數據就可以達到57%的準確率。
結論
知識蒸餾是一種用于將計算帶到邊緣設備的模型壓縮技術。 目標是擁有一個緊湊的小型模型來模仿繁瑣模型的性能。 這是通過使用軟目標來實現的,這些目標充當正則化器,以允許小型緊湊的學生模型泛化并從教師模型中恢復幾乎所有信息。
根據Statista[3]的數據,到2025年,聯網設備的安裝總數預計將達到215億。隨著大量的邊緣設備的出現,為邊緣設備帶來計算是使邊緣設備更智能的一個日益增長的挑戰。知識蒸餾允許我們執行模型壓縮而不影響性能的邊緣設備。
引用
[1] Hinton, Geoffrey, Oriol Vinyals, and Jeff Dean. "Distilling the knowledge in a neural network." arXiv preprint arXiv:1503.02531 (2015).
[2] An overview of model compression techniques for deep learning in space
[3] IoT number of connected devices worldwide
作者:Kelvin
deephub翻譯組
總結
以上是生活随笔為你收集整理的睡眠 应该用 a加权 c加权_在神经网络中提取知识:学习用较小的模型学得更好...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wps xml转换表格_这功能WPS卖近
- 下一篇: 如何免费提升自己电脑的性能如何提升电脑性