深度學習不斷增長的能源耗費和性能成本,促使社區通過選擇性修剪組件來減少神經網絡的規模。與生物學上的相似之處是,稀疏網絡即使不能比原來的密集網絡更好,也能得到同樣好的推廣。稀疏性可以減少常規網絡的內存占用,以適應移動設備,也可以縮短不斷增長的網絡的訓練時間。在本文中,我們調研了深度學習中的稀疏性之前的工作,并為推理和訓練提供了一個廣泛的稀疏化教程。我們描述了去除和添加神經網絡元素的方法,實現模型稀疏性的不同訓練策略,以及在實踐中利用稀疏性的機制。我們的工作從300多篇研究論文中提煉思想,并為希望利用稀疏性的實踐者提供指導,以及為目標是推動前沿發展的研究人員提供指導。我們在稀疏化中包括必要的數學方法背景,描述諸如早期結構適應、稀疏性和訓練過程之間的復雜關系等現象,并展示在真實硬件上實現加速的技術。我們還定義了一個修剪參數效率的度量,可以作為不同稀疏網絡比較的基線。最后,我們推測稀疏性如何改善未來的工作,并概述該領域的主要開放問題。
在計算機視覺、自然語言處理、知識表示、推薦系統、藥物發現等領域,深度學習在解決非常復雜的現實世界問題方面展現了無與倫比的前景。隨著這一發展,機器學習領域正從傳統的特征工程向神經結構工程發展。然而,對于如何選擇正確的架構來解決特定的任務,我們仍然知之甚少。在模型設計中,采用了卷積層中的平移等方差、遞歸、結構權重共享、池化或局部化等方法來引入強歸納偏差。然而,任務所需的精確模型大小和容量仍然未知,一個常見的策略是訓練過度參數化的模型,并將它們壓縮成更小的表示。
生物的大腦,特別是人類的大腦,是分層的、稀疏的和周期性的結構[Friston 2008],我們可以得出一些類似于今天人工神經網絡中的歸納偏差。稀疏性在生物大腦的縮放中扮演著重要的角色——大腦的神經元越多,大腦就越稀疏[Herculano-Houzel et al. 2010]。此外,研究表明,人類的大腦開始稀疏,在大量修剪之后有一個致密化的早期階段,然后保持在一個相對穩定的稀疏水平。然而,即使是完全發育成熟的大腦,每天也會改變多達40%的突觸[Hawkins 2017]。許多今天的工程修剪技術具有直觀的生物學類比,我們將在整篇文章中提到并在第8節討論。然而,計算基質(生物組織和CMOS)導致了非常不同的限制。
人工深度學習模型傳統上是密集和過度參數化的,有時甚至可以記憶數據中的隨機模式[Zhang et al. 2017],或者95%的參數可以從剩余的5%中預測出來[Denil et al. 2014]。這可能與經驗證據有關,表明使用隨機梯度下降(SGD)訓練過度參數化模型比使用更緊湊的表示更容易Glorot et al. 2011a; Kaplan et al. 2020; Li et al. 2020a; Mhaskar and Poggio 2016]. Brutzkus et al. [2017] 和Du et al. [2019]表明,這種梯度下降技術可證明以良好的泛化最優地訓練(淺)過參數化網絡。具體來說,他們指出,過度參數化會導致一種強大的“類凸性”,這有利于梯度下降的收斂性。最近的理論結果[Allen-Zhu et al. 2019; Neyshabur et al. 2018]似乎支持這些發現,并指出訓練動力學和泛化依賴于過度參數化。
這種過度參數化是以模型訓練和推理過程中額外的內存和計算工作為代價的。特別是,對于移動設備和電池驅動設備的推理,以及在成本意識較強的環境下,稀疏模型表示可以帶來巨大的節省。具體地說,稀疏模型更容易存儲,并且常常節省計算量。此外,過度參數化的模型往往會過度擬合數據,并降低泛化到看不見的例子。緊跟著Occam 's razor,稀疏化也可以看作是某種形式的正則化,可以通過有效降低模型中的噪聲來提高模型質量。具體來說,最小描述長度框架提供了一個具有貝葉斯解釋和數據壓縮清晰解釋的吸引人的公式[Grünwald 2007],我們稍后會討論。
許多工作,特別是老的工作,集中在通過稀疏化改進泛化。早期的研究[Mozer和Smolensky 1988]關注的是具有數十到數百個參數的模型,也說明了它們的簡化版本有更好的可解釋性。然而,隨著今天的模型使用數百萬或數十億個參數,稀疏性是否會顯著提高可解釋性和可解釋性就有待觀察了。Bartoldson等人[2020]最近的工作將剪枝作為“噪聲”,類似于dropout或數據增強來解釋泛化。其他近期的研究發現,稀疏性可以提高對抗對抗攻擊的魯棒性[Cosentino et al. 2019; Gopalakrishnan et al. 2018; Guo et al. 2018; Madaan et al. 2020; Rakin et al. 2020; Sehwag et al. 2020; Verdenius et al. 2020]。
最近,一組更大的工作集中在提高計算效率的同時保持模型的精度。現代網絡在計算上的使用是昂貴的——例如,Inception-V3 [Szegedy等人2016],一個最先進的目標識別網絡,需要57億次算術運算和2700萬個參數進行評估;GPT-3 [Brown et al. 2020],一種最先進的自然語言處理網絡的實驗狀態需要1750億個參數(350 GiB,假設每個參數16位)來評估。此外,訓練這樣的深度神經模型變得越來越昂貴,而且最大的語言模型已經需要超級計算機進行訓練,每次訓練可能要花費數百萬美元[Brown等人2020]。因此,研究訓練過程中的稀疏性對于管理訓練成本是非常重要的。
我們綜述的結果表明,今天的稀疏化方法可以導致模型尺寸減少10-100倍,并在計算、存儲和能源效率方面獲得相應的理論收益,而不會顯著降低精度。如果這些加速是在高效的硬件實現中實現的,那么所獲得的性能可能會導致一個階段的變化,使更復雜的、可能是革命性的任務得到實際解決。此外,我們還觀察到,在稀疏化方法方面的進展速度正在加快,因此,即使在我們編寫本論文的最后幾個月里,也發表了一些改進現有技術的新方法。
我們的目標是總結現有的技術,并且在第2-5節首先關注設計模型的純定性方面。然后,在第6節和第7節中,我們將解釋實現這些設計組合的架構選擇,包括性能結果。
近年來,自然語言處理的研究方法取得了一些突破。這些突破來源于兩個新的建模框架以及在計算和詞匯資源的可用性的改進。在這個研討會小冊子中,我們將回顧這些框架,以一種可以被視為現代自然語言處理開端的方法論開始:詞嵌入。我們將進一步討論將嵌入式集成到端到端可訓練方法中,即卷積神經網絡和遞歸神經網絡。這本小冊子的第二章將討論基于注意力的模型的影響,因為它們是最近大多數最先進的架構的基礎。因此,我們也將在本章中花很大一部分時間討論遷移學習方法在現代自然語言處理中的應用。最后一章將會是一個關于自然語言生成的說明性用例,用于評估最先進的模型的訓練前資源和基準任務/數據集。
//compstat-lmu.github.io/seminar_nlp_ss20/
在過去的幾十年里,人工智能技術的重要性和應用不斷得到關注。在當今時代,它已經與構成人類塑造環境的大部分環境密不可分。因此,商業、研究和開發、信息服務、工程、社會服務和醫學等無數部門已經不可逆轉地受到人工智能能力的影響。人工智能有三個主要領域組成了這項技術:語音識別、計算機視覺和自然語言處理(見Yeung (2020))。在這本書中,我們將仔細研究自然語言處理(NLP)的現代方法。
這本小冊子詳細介紹了用于自然語言處理的現代方法,如深度學習和遷移學習。此外,本研究亦會研究可用于訓練自然語言處理任務的資源,并會展示一個將自然語言處理應用于自然語言生成的用例。
為了分析和理解人類語言,自然語言處理程序需要從單詞和句子中提取信息。由于神經網絡和其他機器學習算法需要數字輸入來進行訓練,因此應用了使用密集向量表示單詞的詞嵌入。這些通常是通過有多個隱藏層的神經網絡學習的,深度神經網絡。為了解決容易的任務,可以應用簡單的結構神經網絡。為了克服這些簡單結構的局限性,采用了遞歸和卷積神經網絡。因此,遞歸神經網絡用于學習不需要預先定義最佳固定維數的序列的模型,卷積神經網絡用于句子分類。第二章簡要介紹了NLP中的深度學習。第三章將介紹現代自然語言處理的基礎和應用。在第四章和第五章中,將解釋和討論遞歸神經網絡和卷積神經網絡及其在自然語言處理中的應用。
遷移學習是每個任務或領域的學習模型的替代選擇。在這里,可以使用相關任務或領域的現有標記數據來訓練模型,并將其應用到感興趣的任務或領域。這種方法的優點是不需要在目標域中進行長時間的訓練,并且可以節省訓練模型的時間,同時仍然可以(在很大程度上)獲得更好的性能。遷移學習中使用的一個概念是注意力,它使解碼器能夠注意到整個輸入序列,或自注意,它允許一個Transformer 模型處理所有輸入單詞,并建模一個句子中所有單詞之間的關系,這使得快速建模一個句子中的長期依賴性成為可能。遷移學習的概念將在小冊子的第6章簡要介紹。第七章將通過ELMo、ULMFiT和GPT模型來描述遷移學習和LSTMs。第八章將詳細闡述注意力和自注意力的概念。第九章將遷移學習與自注意力相結合,介紹了BERT模型、GTP2模型和XLNet模型。
為NLP建模,需要資源。為了找到任務的最佳模型,可以使用基準測試。為了在基準實驗中比較不同的模型,需要諸如精確匹配、Fscore、困惑度或雙語評估替補學習或準確性等指標。小冊子的第十章簡要介紹了自然語言處理的資源及其使用方法。第11章將解釋不同的指標,深入了解基準數據集SQuAD、CoQa、GLUE和SuperGLUE、AQuA-Rat、SNLI和LAMBADA,以及可以找到資源的預訓練模型和數據庫,如“帶代碼的論文”和“大壞的NLP數據庫”。
在小冊子的最后一章中,介紹了生成性NLP處理自然語言生成,從而在人類語言中生成可理解的文本。因此,不同的算法將被描述,聊天機器人和圖像字幕將被展示,以說明應用的可能性。
本文對自然語言處理中各種方法的介紹是接下來討論的基礎。小冊子的各個章節將介紹現代的NLP方法,并提供了一個更詳細的討論,以及各種示例的潛力和限制。
受生物過程的啟發,人工神經網絡的理論基礎于20世紀40年代奠定[McCulloch and Pitts, 1943]。神經元的放電代表一個命題,通過激活或抑制連接來模擬神經網絡中的邏輯演算。感知器(perceptron),一種解釋單個人工神經元功能的算法,發明于20世紀50年代末[Rosenblatt, 1958]。隨之而來的是我們現在熟悉的網絡的分層結構,以及反向傳播機制,這一范式的學習過程的核心。Rumelhart等人[1986]展示了反向傳播機制如何在對人和家庭關系進行編碼時,在中間隱藏層上產生有用的表示。術語深度學習是相當新的,NLP的“接管”是最近才出現的,主要是由于硬件的進步使得NLP的大型語料庫的理論模型在計算上可行且高效,包括單詞語義表示的歸納[Mikolov et al., 2013c]。當NLP采用神經網絡時,神經網絡已經完全形成。它們帶來了許多架構和數學模型,這些都是機器學習社區在這幾十年里發展起來的。這種相互作用是雙向的:自然語言處理任務的特殊要求刺激了進一步的發展和創新。在語義關系研究中采用深度學習,帶來了不同于前幾章探討的方法和建模假設。
我們在5.2節以深度學習的高級概述開始本章。然后我們再回顧與語義關系相關的研究問題。語義關系的深度學習通常在一個體系結構中結合了對包含候選關系的整個句子的處理。論證的含義的表達將與上下文的表達和關系線索交織在一起——關系論證和周圍的文本之間的表達。為了使事情更清楚,并允許未經嘗試的組合,單詞表示(屬性特征,第5.3節)是分開的關系線索和上下文(關系特征,第5.4節)。第5.5節討論了對數據集的關注,特別是對遠程監督的深度學習解決方案:如何自動獲取和處理大量有噪聲的訓練數據。第5.6節討論語義關系的學習和建模,無論是作為特定結構還是作為神經模型;它展示了在不同的學習模式中,論點的表征和上下文線索是如何相互交織的。
深度學習是機器學習和人工智能研究的最新趨勢,作為一個十余年來快速發展的嶄新領域,越來越受到研究者的關注。卷積神經網絡(CNN)模型是深度學習模型中最重要的一種經典結構,其性能在近年來深度學習任務上逐步提高。由于可以自動學習樣本數據的特征表示,卷積神經網絡已經廣泛應用于圖像分類、目標檢測、語義分割以及自然語言處理等領域。首先分析了典型卷積神經網絡模型為提高其性能增加網絡深度以及寬度的模型結構,分析了采用注意力機制進一步提升模型性能的網絡結構,然后歸納分析了目前的特殊模型結構,最后總結并討論了卷積神經網絡在相關領域的應用,并對未來的研究方向進行展望。
地址: //fcst.ceaj.org/CN/abstract/abstract2521.shtml
近年來,圖神經網絡(GNNs)由于具有建模和從圖結構數據中學習的能力,在機器學習領域得到了迅猛發展。這種能力在數據具有內在關聯的各種領域具有很強的影響,而傳統的神經網絡在這些領域的表現并不好。事實上,正如最近的評論可以證明的那樣,GNN領域的研究已經迅速增長,并導致了各種GNN算法變體的發展,以及在化學、神經學、電子或通信網絡等領域的突破性應用的探索。然而,在目前的研究階段,GNN的有效處理仍然是一個開放的挑戰。除了它們的新穎性之外,由于它們依賴于輸入圖,它們的密集和稀疏操作的組合,或者在某些應用中需要伸縮到巨大的圖,GNN很難計算。在此背景下,本文旨在做出兩大貢獻。一方面,從計算的角度對GNNs領域進行了綜述。這包括一個關于GNN基本原理的簡短教程,在過去十年中該領域發展的概述,以及在不同GNN算法變體的多個階段中執行的操作的總結。另一方面,對現有的軟硬件加速方案進行了深入分析,總結出一種軟硬件結合、圖感知、以通信為中心的GNN加速方案。
神經網絡在諸多應用領域展現了巨大的潛力,成為當前最熱門的研究方向之一。神經網絡的訓練主要通過求解一個優化問題來完成,但這是一個困難的非線性優化問題,傳統的優化理論難以直接應用。在神經網絡和優化的交叉領域,長期以來研究人員積累了大量的理論研究知識,不過這些研究或過于理論而不被大部分實踐者所了解,或過于偏工程而不被理論學者所理解和欣賞。本文的目的是總結目前對于神經網絡優化基本理論和算法的現狀,架起理論和實踐、優化和機器學習界之間的橋梁。
對苦于調參常感到困惑的工程師而言,本文可以提供一些已有的理論理解以供參考,并提供一些思考的方式。對理論學者而言,本文力圖解釋其作為數學問題的困難之所在以及目前的理論進展,以期吸引更多研究者投身神經網絡優化理論和算法研究。
本文概述了神經網絡的算法和優化理論。首先,我們討論梯度爆炸/消失問題和更一般的譜控制問題,然后討論實際中常用的解決方案,包括初始化方法和歸一化方法。其次,我們回顧用于訓練神經網絡的一般優化方法,如SGD、自適應梯度方法和大規模分布式訓練方法,以及這些算法的現有理論結果。第三,我們回顧了最近關于神經網絡訓練的全局問題的研究,包括局部極值、模式連接、彩票假設和無限寬度分析等方面的結果。
當前的深度學習研究以基準評價為主。如果一種方法在專門的測試集上有良好的經驗表現,那么它就被認為是有利的。這種心態無縫地反映在持續學習的重現領域,在這里研究的是持續到達的基準數據集。核心挑戰是如何保護之前獲得的表示,以免由于迭代參數更新而出現災難性地遺忘的情況。然而,各個方法的比較是與現實應用程序隔離的,通常通過監視累積的測試集性能來判斷。封閉世界的假設仍然占主導地位。假設在部署過程中,一個模型保證會遇到來自與用于訓練的相同分布的數據。這帶來了一個巨大的挑戰,因為眾所周知,神經網絡會對未知的實例提供過于自信的錯誤預測,并在數據損壞的情況下崩潰。在這個工作我們認為值得注意的教訓來自開放數據集識別,識別的統計偏差以外的數據觀測數據集,和相鄰的主動學習領域,數據增量查詢等預期的性能收益最大化,這些常常在深度學習的時代被忽略。基于這些遺忘的教訓,我們提出了一個統一的觀點,以搭建持續學習,主動學習和開放集識別在深度神經網絡的橋梁。我們的結果表明,這不僅有利于每個個體范式,而且突出了在一個共同框架中的自然協同作用。我們從經驗上證明了在減輕災難性遺忘、主動學習中查詢數據、選擇任務順序等方面的改進,同時在以前提出的方法失敗的地方展示了強大的開放世界應用。
//www.zhuanzhi.ai/paper/e5bee7a1e93a93ef97e1c
概述:
隨著實用機器學習系統的不斷成熟,社區發現了對持續學習[1]、[2]的興趣。與廣泛練習的孤立學習不同,在孤立學習中,系統的算法訓練階段被限制在一個基于先前收集的i.i.d數據集的單一階段,持續學習需要利用隨著時間的推移而到來的數據的學習過程。盡管這種范式已經在許多機器學習系統中找到了各種應用,回顧一下最近關于終身機器學習[3]的書,深度學習的出現似乎已經將當前研究的焦點轉向了一種稱為“災難性推理”或“災難性遺忘”的現象[4],[5],正如最近的評論[6],[7],[8],[9]和對深度持續學習[8],[10],[11]的實證調查所表明的那樣。后者是機器學習模型的一個特殊效應,機器學習模型貪婪地根據給定的數據群更新參數,比如神經網絡迭代地更新其權值,使用隨機梯度估計。當包括導致數據分布發生任何變化的不斷到達的數據時,學習到的表示集被單向引導,以接近系統當前公開的數據實例上的任何任務的解決方案。自然的結果是取代以前學到的表征,導致突然忘記以前獲得的信息。
盡管目前的研究主要集中在通過專門機制的設計來緩解持續深度學習中的這種遺忘,但我們認為,一種非常不同形式的災難性遺忘的風險正在增長,即忘記從過去的文獻中吸取教訓的危險。盡管在連續的訓練中保留神經網絡表示的努力值得稱贊,但除了只捕獲災難性遺忘[12]的度量之外,我們還高度關注了實際的需求和權衡,例如包括內存占用、計算成本、數據存儲成本、任務序列長度和訓練迭代次數等。如果在部署[14]、[15]、[16]期間遇到看不見的未知數據或小故障,那么大多數當前系統會立即崩潰,這幾乎可以被視為誤導。封閉世界的假設似乎無所不在,即認為模型始終只會遇到與訓練過程中遇到的數據分布相同的數據,這在真實的開放世界中是非常不現實的,因為在開放世界中,數據可以根據不同的程度變化,而這些變化是不現實的,無法捕獲到訓練集中,或者用戶能夠幾乎任意地向系統輸入預測信息。盡管當神經網絡遇到不可見的、未知的數據實例時,不可避免地會產生完全沒有意義的預測,這是眾所周知的事實,已經被暴露了幾十年了,但是當前的努力是為了通過不斷學習來規避這一挑戰。選擇例外嘗試解決識別不可見的和未知的示例、拒絕荒謬的預測或將它們放在一邊供以后使用的任務,通常總結在開放集識別的傘下。然而,大多數現有的深度連續學習系統仍然是黑盒,不幸的是,對于未知數據的錯誤預測、數據集的異常值或常見的圖像損壞[16],這些系統并沒有表現出理想的魯棒性。
除了目前的基準測試實踐仍然局限于封閉的世界之外,另一個不幸的趨勢是對創建的持續學習數據集的本質缺乏理解。持續生成模型(如[17]的作者的工作,[18],[19],[20],[21],[22]),以及類增量持續學習的大部分工作(如[12]中給出的工作,[23],[24],[25],[26],[27],[28])一般調查sequentialized版本的經過時間考驗的視覺分類基準如MNIST [29], CIFAR[30]或ImageNet[31],單獨的類只是分成分離集和序列所示。為了在基準中保持可比性,關于任務排序的影響或任務之間重疊的影響的問題通常會被忽略。值得注意的是,從鄰近領域的主動機器學習(半監督學習的一種特殊形式)中吸取的經驗教訓,似乎并沒有整合到現代的連續學習實踐中。在主動學習中,目標是學會在讓系統自己查詢接下來要包含哪些數據的挑戰下,逐步地找到與任務解決方案最接近的方法。因此,它可以被視為緩解災難性遺忘的對抗劑。當前的持續學習忙于維護在每個步驟中獲得的信息,而不是無休止地積累所有的數據,而主動學習則關注于識別合適的數據以納入增量訓練系統的補充問題。盡管在主動學習方面的早期開創性工作已經迅速識別出了通過使用啟發式[32]、[33]、[34]所面臨的強大應用的挑戰和陷阱,但后者在深度學習[35]、[36]、[37]、[38]的時代再次占據主導地位,這些挑戰將再次面臨。
在這項工作中,我們第一次努力建立一個原則性和鞏固的深度持續學習、主動學習和在開放的世界中學習的觀點。我們首先單獨回顧每一個主題,然后繼續找出在現代深度學習中似乎較少受到關注的以前學到的教訓。我們將繼續爭論,這些看似獨立的主題不僅從另一個角度受益,而且應該結合起來看待。在這個意義上,我們建議將當前的持續學習實踐擴展到一個更廣泛的視角,將持續學習作為一個總括性術語,自然地包含并建立在先前的主動學習和開放集識別工作之上。本文的主要目的并不是引入新的技術或提倡一種特定的方法作為通用的解決方案,而是對最近提出的神經網絡[39]和[40]中基于變分貝葉斯推理的方法進行了改進和擴展,以說明一種走向全面框架的可能選擇。重要的是,它作為論證的基礎,努力闡明生成建模作為深度學習系統關鍵組成部分的必要性。我們強調了在這篇論文中發展的觀點的重要性,通過實證證明,概述了未來研究的含義和有前景的方向。
【導讀】知識蒸餾是一種典型的模型壓縮和加速方法,在很多應用場景對此有需求。來自悉尼大學的學者發布了《知識蒸餾》的綜述論文,值的關注。
近年來,深度神經網絡在工業和學術界取得了巨大的成功,特別是在視覺識別和神經語言處理方面的應用。深度學習的巨大成功,主要歸功于其巨大的可擴展性,既有大規模的數據樣本,也有數十億的模型參數。然而,在資源有限的設備如移動電話和嵌入式設備上部署這些笨重的深模型也帶來了巨大的挑戰,不僅因為計算量大,而且存儲空間大。為此,開發了各種模型壓縮和加速技術,如剪枝、量化和神經結構搜索。知識蒸餾是一種典型的模型壓縮和加速方法,旨在從大教師模型中學習小學生模型,越來越受到社會的關注。本文從知識分類、訓練方案、知識提取算法以及應用等方面對知識提取進行了綜述。此外,我們簡要回顧了知識提煉的挑戰,并對未來的研究課題提供了一些見解。
概述
在過去的幾年里,深度學習在人工智能領域取得了巨大的成功,包括計算機視覺(Krizhevsky et al., 2012)、強化學習(Silver et al., 2016)和神經語言處理(Devlin et al., 2018)的各種應用。借助最近許多技術,包括殘差連接(He et al., 2016)和批處理歸一化(Ioffe and Szegedy, 2015),我們可以輕松地在強大的GPU或TPU集群上訓練具有數千層的深度模型。例如,只需不到10分鐘就可以在數百萬張圖像的數據集上訓練ResNet模型(Deng et al. , 2009 ; Sun et al. , 2019); 訓練一個強大的BERT模型進行語言理解只需要不到一個半小時 (Devlin et al., 2018; You et al., 2019).。雖然大規模的深度模型帶來了令人難以置信的性能,但其龐大的計算復雜度和海量的存儲需求給實時應用的部署帶來了巨大的挑戰,特別是對于那些資源有限的設備,比如嵌入式人臉識別系統和自動駕駛汽車。
為了開發高效的深度模型,最近的工作通常集中在1)基于深度可分離卷積的高效基本塊,如MobileNets (Howard et al. , 2017 ; Sandler et al. , 2018) 和ShuffleNets (Zhang et al. , 2018a ; Ma et al. , 2018); (2)模型壓縮和加速技術,主要包括以下類別(Cheng et al., 2018)。
參數修剪和共享: 這些方法主要是去除深層神經網絡中不重要的參數,去除的參數對性能影響不大。該類別又分為模型量化(Wu et al., 2016)和二值化(Courbariaux et al., 2015)、參數共享(Han et al., 2015)和結構矩陣(Sindhwani et al., 2015)。
低秩分解: 這些方法通過矩陣/張量分解來探索深度神經網絡參數的冗余性(Denton et al., 2014)。
傳輸/壓縮卷積濾波器: 這些方法通過傳輸/壓縮卷積濾波器來減少不必要的參數(Zhai et al., 2016)。
知識蒸餾(KD): 這些方法通常將知識從一個較大的深度神經網絡提取到一個較小的網絡中(Hinton et al., 2015)。
對模型壓縮和加速的全面回顧超出了本文涵蓋的范圍,而我們關注的是知識蒸餾,這已經得到越來越多的研究社區關注。在實踐中,大型深度模型往往會取得非常好的性能,因為過參數化提高了泛化性能 (Brutzkus and Globerson, 2019; Allen-Zhu et al., 2019; Arora et al., 2018)。知識蒸餾通過在大教師模型的監督下學習小學生模型,從而探究深度模型中參數的冗余性,用于推理(Bucilua et al., 2006; Ba and Caruana, 2014; Hinton et al., 2015; Urban et al., 2016),而知識蒸餾的關鍵問題是如何將知識從大教師模型轉移到小學生模型。一般情況下,知識蒸餾的師生框架如圖1所示。雖然在實踐中取得了巨大的成功,但在理論或經驗上理解知識提煉方法的工作并不多(Cheng et al., 2020; Phuong and Lampert, 2019; Cho and Hariharan, 2019)。具體來說,為了理解知識蒸餾的工作機制,Phuong和Lampert在深度線性分類器的情況下,從理論上證明了學習精餾學生網絡快速收斂的泛化邊界(Phuong和Lampert, 2019)。這一解釋理論上回答了學生學習的內容和速度,并揭示了決定蒸餾成功的因素。蒸餾的成功依賴于數據幾何、蒸餾目標的優化偏差和學生分類器的強單調性。Cheng等人量化了來自深度神經網絡中間層的視覺概念知識,以解釋知識蒸餾(Cheng et al., 2020)。Cho和Hariharan對知識蒸餾的有效性進行了詳細的實證分析(Cho和Hariharan, 2019)。實證分析發現,由于模型容量的差距,較大的模型不一定是更好的老師(Mirzadeh et al., 2019),而精餾會對學生的學習產生不利影響。據我們所知,(Cho and Hariharan, 2019)忽略了對教師和學生之間不同知識、不同蒸餾和相互感情的經驗評價。此外,通過實證分析,從標簽平滑、教師和先驗對最優輸出層幾何形狀的預測置信度等角度探討了對知識蒸餾的理解(Tang et al., 2020)。
模型壓縮的知識蒸餾思想與人類的學習方案非常相似。為此,近年來的知識蒸餾方法不僅擴展到了師生學習(Hinton et al., 2015),還擴展到了相互學習(Zhang et al., 2018b)、自學(Yuan et al., 2019)、輔助教學(Mirzadeh et al., 2019)和終身學習(Zhai et al., 2019)。知識蒸餾的大部分擴展集中于壓縮深度神經網絡,因此輕量級的學生網絡可以很容易地部署在諸如視覺識別、語音識別和自然語言處理(NLP)等應用程序中。此外,知識蒸餾中從一個模型到另一個模型的知識轉移符號也可以擴展到其他任務,如對抗攻擊(Papernot et al., 2016b)、數據增強(Lee et al., 2019a;Gordon和Duh, 2019),數據隱私和安全(Wang等,2019a)。
本文對知識蒸餾的研究進行了綜述。本綜述的主要目的是1) 全面概述知識蒸餾,包括動機的背景,基本符號和公式,以及幾種典型知識,蒸餾和算法; 2) 全面回顧知識蒸餾的最新進展,包括理論、應用和在不同現實場景下的擴展; 3) 從知識遷移的不同角度,包括不同類型的知識、訓練方案、知識提煉算法/結構和應用,闡述知識蒸餾的一些挑戰和見解。本文組織概況如圖2所示。具體地說,本文的其余部分結構如下。第二節給出了知識蒸餾的重要概念和常規模型。知識和蒸餾的種類分別在第3節和第4節中進行了總結。現有的關于知識提煉中的師生結構的研究在第5部分進行了說明。第6節對許多最新的知識蒸餾方法進行了全面的總結和介紹。知識蒸餾的廣泛應用將在第7節的不同方面加以說明。第8節討論了知識蒸餾中具有挑戰性的問題和未來的方向。最后,在第9節給出結論。
本備忘單是機器學習手冊的濃縮版,包含了許多關于機器學習的經典方程和圖表,旨在幫助您快速回憶起機器學習中的知識和思想。
這個備忘單有兩個顯著的優點:
清晰的符號。數學公式使用了許多令人困惑的符號。例如,X可以是一個集合,一個隨機變量,或者一個矩陣。這是非常混亂的,使讀者很難理解數學公式的意義。本備忘單試圖規范符號的使用,所有符號都有明確的預先定義,請參見小節。
更少的思維跳躍。在許多機器學習的書籍中,作者省略了數學證明過程中的一些中間步驟,這可能會節省一些空間,但是會給讀者理解這個公式帶來困難,讀者會在中間迷失。
由于硬件資源有限,訓練深度學習模型的目標通常是在訓練和推理的時間和記憶約束下使準確性最大化。在這種情況下,我們研究了模型大小的影響,重點研究了受計算限制的NLP任務的Transformer模型:自我監督的預訓練和高資源機器翻譯。我們首先表明,盡管較小的Transformer模型在每次迭代中執行得更快,但是更廣泛和更深入的模型在更少的步驟中收斂。此外,這種收斂速度通常超過使用大型模型的額外計算開銷。因此,最具計算效率的訓練策略是反直覺地訓練非常大的模型,但是在少量的迭代之后停止。
這導致大型Transformer 模型的訓練效率與小型Transformer 模型的推理效率之間存在明顯的權衡。然而,我們證明大型模型比小型模型對量化和剪枝等壓縮技術有更強的魯棒性。因此,我們可以同時利用兩個方面的優勢:高度壓縮的大型模型比輕度壓縮的小型模型獲得更高的精度。
A Survey of Model Compression and Acceleration for Deep Neural Networks 深度卷積神經網絡(CNNs)最近在許多視覺識別任務中取得了巨大的成功。然而,現有的深度神經網絡模型在計算上是昂貴的和內存密集型的,這阻礙了它們在低內存資源的設備或有嚴格時間延遲要求的應用程序中的部署。因此,在不顯著降低模型性能的情況下,在深度網絡中進行模型壓縮和加速是一種自然的思路。在過去幾年中,這方面取得了巨大的進展。本文綜述了近年來發展起來的壓縮和加速CNNs模型的先進技術。這些技術大致分為四種方案: 參數剪枝和共享、低秩因子分解、傳輸/緊湊卷積過濾器和知識蒸餾。首先介紹參數修剪和共享的方法,然后介紹其他技術。對于每種方案,我們都提供了關于性能、相關應用程序、優點和缺點等方面的詳細分析。然后我們將討論一些最近比較成功的方法,例如,動態容量網絡和隨機深度網絡。然后,我們調查評估矩陣、用于評估模型性能的主要數據集和最近的基準測試工作。最后,對全文進行總結,并對今后的研究方向進行了展望。