深度学习核心技术精讲100篇(六)-keras 实战系列之知识蒸馏(Knowledge Distilling)
前言
深度學習在這兩年的發展可謂是突飛猛進,為了提升模型性能,模型的參數量變得越來越多,模型自身也變得越來越大。在圖像領域中基于Resnet的卷積神經網絡模型,不斷延伸著網絡深度。而在自然語言處理領域(NLP)領域,BERT,GPT等超大模型的誕生也緊隨其后。這些巨型模型在準確性上大部分時候都吊打其他一眾小參數量模型,可是它們在部署階段,往往需要占用巨大內存資源,同時運行起來也極其耗時,這與工業界對模型吃資源少,低延時的要求完全背道而馳。所以很多在學術界呼風喚雨的強大模型在企業的運用過程中卻沒有那么順風順水。
知識蒸餾
為解決上述問題,我們需要將參數量巨大的模型,壓縮成小參數量模型,這樣就可以在不失精度的情況下,使得模型占用資源少,運行快,所以如何將這些大模型壓縮,同時保持住頂尖的準確率,成了學術界一個專門的研究領域。2015年Geoffrey Hinton 發表的Distilling the Knowledge in a Neural Network的論文中提出了知識蒸餾技術,就是為了解決模型壓而生的。至于文章的細節這里博主不做過多介紹,想了解的同學們可以好好研讀原文。不過這篇文章的主要思想就如下方圖片所示:用一個老師模型(大參數模型)去教一個學生模型(小參數模型),在實做上就是用讓學生模型去學習已經在目標數據集上訓練過的老師模型。盡管學生模型最終依然達不到老師模型的準確性,但是被老師教過的學生模型會比自己單獨訓練的學生模型更加強大。
這里大家可能會產生疑惑,為什么讓學生模型去學習目標數據集會比
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的深度学习核心技术精讲100篇(六)-keras 实战系列之知识蒸馏(Knowledge Distilling)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tableau必知必会之连接shapef
- 下一篇: Tableau必知必会之如何做嵌套组合饼