亚洲男人的天堂2018av,欧美草比,久久久久久免费视频精选,国色天香在线看免费,久久久久亚洲av成人片仓井空

【導讀】如今在越來越多的情況下,設備數據無法通過云端處理。尤其在工業機器人和自動駕駛汽車領域,它們需要高速處理,但當數據流增大而產生處理時延時會非常危險。針對日益多樣化的邊緣硬件,至今沒有一個高效的功能模型設計的AI解決方案。最近來自麻省理工學院韓松等《移動設備深度學習:方法系統應用

深度神經網絡(DNNs)在人工智能(AI)領域取得了前所未有的成功,包括計算機視覺、自然語言處理和語音識別。然而,其卓越的性能是以計算復雜度為代價的,這極大地阻礙了其在許多資源受限設備(如移動電話和物聯網設備)中的應用。因此,為了實現大量的邊緣人工智能應用,需要在保持DNNs的高精度的同時,提升效率瓶頸的方法和技術。本文綜述了有效的深度學習方法、系統和應用。首先介紹了常用的模型壓縮方法,包括剪枝法、因式分解法、量化法以及緊湊模型設計。為了減少這些手工解決方案的巨大設計成本,我們討論了每個解決方案的AutoML框架,例如神經體系結構搜索(NAS)和自動修剪和量化。然后,我們將介紹有效的設備上訓練,以支持基于移動設備上的本地數據的用戶定制。除了一般的加速技術,我們還展示了幾個特定于任務的加速,用于點云、視頻和自然語言處理,利用它們的空間稀疏性和時間/令牌冗余。最后,為了支持所有這些算法的進步,我們從軟件和硬件兩個角度介紹了高效的深度學習系統設計。

//www.zhuanzhi.ai/paper/cfebf5f04cbacdfaf6936db4f5d10021

引言

深度神經網絡(DNNs)已經徹底改變了人工智能(AI)領域,并在計算機視覺[118,155,263]、自然語言處理[22,71,271,291]和語音識別[69,122,328]等領域取得了令人矚目的成績。它們可以應用于各種現實場景,如手機[131,217,329],自動駕駛汽車[5,20,59,194]和智能醫院[116,183,338]。然而,它們的卓越性能是以高計算復雜度為代價的。例如,最先進的機器翻譯模型[291]需要超過10G的乘法累加(multiply-and-accumulate, mac)來處理一個只有30個單詞的句子;目前流行的LiDAR感知模型[56]需要每秒超過2000G mac(即10幀)。

如此高的計算成本遠遠超出了大多數移動設備的能力,從汽車到移動電話和物聯網設備,因為它們的硬件資源受到外形因素、電池和散熱的嚴格限制。然而,這些計算工作量不能委托給云服務器,因為它們對延遲(例如,自動駕駛)和/或隱私(例如,醫療保健)非常敏感[199,360]。因此,高效的深度學習是移動AI應用的一大需求。為了加快神經網絡推理的速度,研究者們提出了多種模型壓縮技術,包括剪枝[115,121,195]、低秩分解[149,332,352]和量化[62,114,133]。除了建立在現有的大型模型之上,研究人員還探索了直接從零開始設計高效的神經網絡,包括MobileNets[125,250]、ShuffleNets[202,351]和SqueezeNets[202,351]。這些解決方案通常需要大量人力的努力,因為有一堆參數需要共同調整,以實現最佳性能:例如,修剪比和每一層的量化位寬。為此,有很多探索使用自動機器學習(AutoML)調節參數解決人類的設計過程的耗時,如神經結構搜索(NAS)[29、106、187、277、366),自動修剪(120、196、336)和自動量化(299、300、306)。然而,AutoML的好處并不是免費的,因為它會顯著增加碳足跡: 進化Transformer [264]產生了5輛美國汽車的終生二氧化碳排放量(見圖2)。為了實現綠色和可持續的人工智能,研究人員提出了高效搜索高效神經結構[25,296],該神經結構可以達到相同的精度水平,同時減少碳足跡的數量級。

深度學習可以引入較大的碳足跡:例如,進化Transformer[264]產生5輛汽車的終身碳排放量。因此,高效的深度學習對于綠色和可持續的人工智能至關重要。

除了推理之外,神經網絡訓練也可能非常昂貴,這阻礙了設備上的訓練,從而阻礙了移動設備上的用戶定制。為了解決這一問題,研究人員提出了各種高效的記憶訓練算法,如梯度檢查點[44]、激活剪枝[65]和低比特量化[356]。在大多數用例中,移動模型只需要對本地用戶數據進行少量的微調,以提供專門化。因此,另一種研究試圖提高遷移學習的效率[26,214]。最近,研究人員也引入了聯邦學習[151],在不損害隱私的情況下聚合用戶的訓練模型。除了原則上可以應用于任何任務的一般加速外,在特定領域的加速方面已經有了廣泛的研究。在本文中,我們將重點研究點云處理、視頻理解和自然語言處理,因為它們廣泛應用于移動應用,如自動駕駛和移動視覺/NLP。一方面,由于內存占用較大,它們的計算成本比傳統2D視覺要高得多。另一方面,它們還通過利用和刪除空間和時間冗余提供了獨特的加速機會:空間冗余(點云)、時間冗余(視頻)和標記級冗余(自然語言)。

然而,并不是所有的算法改進都能轉化為硬件上可測量的加速。例如,通用推理庫(如cuDNN[52])和硬件(如CPU、GPU)不支持稀疏和低位計算(由細粒度剪枝和量化引入)。最近在設計專業軟件系統[43,72,137,138]和硬件系統[4,48,113,219,256,298,353]方面的努力逐漸彌合了這一差距。專門的軟件系統探索神經網絡內部和內部操作的并行性,并通過啟發式規則甚至基于學習的方法優化計算圖和內存調度。專門的硬件系統從硬件架構層面直接支持修剪網絡的稀疏性和混合精度量化。軟件和硬件系統的專業化開辟了一個與算法空間正交的新的設計空間,可以進一步利用這個空間來釋放專業化未實現的潛力。因此,研究人員探索了多種協同設計解決方案,如自動分配不同平臺上的計算資源用于神經網絡模型[140,144,211,212],自動調整硬件架構[335,366],甚至聯合搜索神經網絡和加速器設計,包括處理元素之間的連接和循環調度[181]。

已有許多研究涉及模型壓縮[50,54,68]、自動化機器學習[78,119,317]、高效硬件架構設計[272]和特定任務優化[283]。本文旨在涵蓋更廣泛的有效深度學習方法和應用:從手動到自動,從新的原語/操作設計到設計空間探索,從訓練到推理,從算法到硬件,從通用到特定應用的優化。我們相信,這篇綜述論文將為這一領域提供一個更全面的視角。本文其余部分的結構如下(圖1): * 第二節討論了各種模型壓縮方法,包括剪枝、低秩分解、量化、知識精餾和緊湊模型設計。 * 第三節研究用于模型壓縮和神經結構搜索的AutoML框架。 * 第四節描述了有效的設備上訓練(一般/遷移學習技術)。 * 第五節研究點云、視頻和語言的特定應用程序加速。 * 第六節介紹了深度學習的高效軟件/硬件設計。

左:有效深度學習解決方案的范圍(從推理到訓練,從算法到軟件/硬件系統,從一般到特定領域)。右:論文組織概述。

模型壓縮

深度神經網絡通常是過度參數化的。剪枝去除神經網絡中的冗余元素,以減少模型大小和計算成本(圖3)。

低秩分解利用矩陣/張量分解來降低深度神經網絡中卷積層或全連通層的復雜性。利用低秩濾波器加速卷積的思想在信號處理領域已經研究了很長時間。 網絡量化通過減少表示深度網絡所需的每權重比特數來壓縮網絡(圖4)。量化網絡在硬件支持下可以有更快的推理速度。 知識蒸餾(KD)[23,123]可以將在大模型(教師)中學習到的“暗知識”轉移到較小模型(學生)中,以提高較小模型的表現。小模型要么是一個壓縮模型,要么是一個淺/窄模型。Bucilua等[23]通過訓練學生網絡匹配輸出logit來達到目標;Hinton等人[123]在softmax輸出中引入了temperature 的概念,并訓練學生模擬教師模型的softmax輸出的軟化分布。KD算法雖然實現簡單,但在各種圖像分類任務中都有很好的效果。 除了壓縮現有的深度神經網絡,另一個被廣泛采用的提高效率的方法是設計新的神經網絡結構。一個CNN模型通常由卷積層、池化層和全連接層組成,其中大部分的計算來自卷積層。例如,在ResNet-50[118]中,超過99%的乘法累加操作(multiple -accumulate operations, MACs)來自卷積層。因此,設計高效的卷積層是構建高效CNN架構的核心。目前廣泛使用的有效卷積層有1×1/點態卷積、群卷積和深度卷積三種。

自動壓縮和神經結構搜索

上述模型壓縮策略和高效的神經網絡架構的成功依賴于手工制作的啟發式,這需要領域專家探索較大的設計空間,在模型大小、延遲、能量和準確性之間進行權衡。這是耗時且次優的。在本節中,我們將描述處理此挑戰的自動化方法。

上圖報告了ImageNet上自動設計和人工設計CNN模型的總結結果。NAS節省了工程師的人工成本,并提供了比人工設計的CNN更好的模型。除了ImageNet分類,自動設計的CNN模型在目標檢測[46,91,278,367]和語義分割[40,184]方面也優于手動設計的CNN模型。

高效設備學習

在現實世界的邊緣人工智能應用中,智能邊緣設備每天通過傳感器收集新數據,同時被期望在不犧牲隱私的情況下提供高質量的定制服務。這些都對高效的人工智能技術提出了新的挑戰,這些技術不僅可以運行推斷,而且還可以根據新收集的數據不斷調整模型(即設備上學習)。雖然設備學習可以實現許多有吸引力的應用,但這是一個極具挑戰性的問題。首先,邊緣設備是內存受限的。例如,一個樹莓派1模型a只有256MB的內存,這足以進行推理,但仍然不足以進行訓練(圖9),即使使用輕量級的神經網絡(MobileNetV2[250])。此外,內存被各種設備上的應用程序(例如,其他深度學習模型)和操作系統共享。單個應用程序可能只分配了總內存的一小部分,這使得這個挑戰更加關鍵。第二,邊緣設備是能量受限的。訪問DRAM比訪問片內SRAM多消耗兩個數量級的能量。激活的大內存占用不能適應有限的片內SRAM,因此它必須訪問DRAM。例如,在批處理大小為16的情況下,MobileNetV2的訓練內存接近1GB,這遠遠大于AMD EPYC CPU的SRAM大小(圖9),更不用說低端平臺了。如果訓練存儲器能與片上SRAM相匹配,將大大提高速度和能源效率。

付費5元查看完整內容

相關內容

GNN是當下關注的焦點,以往研究提出了各種各樣的GNN算法模型,但是就GNN加速還缺乏綜述性調研。來自中科院計算所、清華大學等學者發布了《圖神經網絡加速算法研究》綜述論文闡述GNN加速算法體系值得關注!

圖神經網絡(GNN)是近年來研究的一個熱點,在各種應用中得到了廣泛的應用。然而,隨著使用更大的數據和更深入的模型,毫無疑問,迫切需要加速GNN以實現更高效的執行。在本文中,我們從算法的角度對GNN的加速方法進行了全面的研究。我們首先提出一種新的分類法,將現有的加速方法分為五類。在分類的基礎上,對這些方法進行了系統的討論,并重點討論了它們之間的相關性。接下來,我們對這些方法的效率和特點進行了比較。最后,對未來的研究提出了展望。

//www.zhuanzhi.ai/paper/12669ebd689ecd66a552eb36ed6946ef

引言

圖神經網絡(GNN) [Scarselli et al., 2008]是一種基于深度學習的模型,將神經網絡應用于圖學習和表示。它們是基于理論的[Pope et al., 2019; Ying et al., 2019]和技術熟練[Kipf and Welling, 2017; Velickovi ˇ c′ et al., 2018],在不同的圖形相關任務上保持最先進的性能[Hamilton et al., 2017; Xu et al., 2019]。近年來,由于GNNs在各種應用方面取得了顯著的成功,人們對GNNs的研究興趣不斷增加,這加速了關注不同研究領域的綜述的出現。一些綜述[Wu et al., 2020; Zhang et al., 2020; Battaglia et al., 2018]密切關注GNN模型和通用應用,而其他人[Wang et al., 2021b; Zhang et al., 2021]強調GNNs的具體用法。此外,硬件相關架構[Abadal et al., 2021; Han et al., 2021];研究人員還著重考察了GNN的軟件相關算法[Lamb et al., 2020]。因此,上述綜述進一步促進了GNN的廣泛使用。然而,隨著GNN在新興場景中的廣泛應用,人們發現GNN存在一些障礙,導致其執行緩慢。接下來,我們將討論限制GNN執行效率的障礙,并提出我們的動機。

動機: 為什么GNN需要加速?

首先,圖數據的爆炸式增長對大規模數據集上的GNN訓練提出了巨大的挑戰。以前,許多基于圖的任務通常是在小規模數據集上執行的,這些數據集與實際應用中的圖相比相對較小,這不利于模型的可擴展性和實際使用。因此,文獻[Hu et al., 2020a]提出了在大規模的圖數據集進行深入研究,使得GNNs的執行(即訓練和推斷)一個耗時的過程。其次,在巧妙避免過平滑問題的前提下[Rong et al., 2020],使用更深層、更復雜的結構是獲得具有良好表達能力的GNN模型的一種有希望的方法[Chiang et al., 2019; Rong et al., 2020],另一方面,這將增加訓練表現良好模型的時間成本。第三,特殊設備,如邊緣設備,一般對GNN訓練和推理有嚴格的時間限制,特別是在時間敏感的任務中。由于計算和存儲資源有限,這些設備上的訓練和推理時間很容易變得難以忍受。因此,無論在訓練還是推理方面,都迫切需要對GNN進行加速。

然而,目前還沒有文獻從算法層面系統地研究GNN的加速方法。實際上,算法級別的改進不僅提高了模型的精度,而且加速了模型的學習[Chen et al., 2018b; Bojchevski et al., 2020]。我們認為,GNN的算法加速方法將大大有利于訓練和推理過程,同時,GNN框架的整體性能[Fey and Lenssen, 2019; Wang et al., 2019a],因為一個設計良好的框架加上一個優化的算法可以從經驗上獲得雙重提升[Lin et al., 2020]。因此,盡管有一些關于圖相關框架和硬件加速器的有見地的綜述,但對GNN算法加速方法的全面綜述是非常值得期待的,這正是本工作的目標和重點。

本文從算法的角度對gnn的加速方法進行了全面的綜述,重點介紹了算法層和模型層的改進。綜上所述,我們的貢獻如下:

  1. 新分類(New Taxonomy):我們將現有方法分為五類,采用雙層分類法,綜合考慮優化因素和核心機制(見第2節)。

  2. 系統回顧:我們對現有的方法進行全面的綜述,并對這些方法進行分類介紹。此外,我們著重討論這些方法之間的共同點和獨特之處(見第3節)。

  3. 綜合比較: 我們對典型加速方法的訓練時間性能進行總結,并進一步從整體上進行綜合比較,其中特別突出了這些方法之間的相關性(見第4節)。

  4. 未來展望: 在總體比較的基礎上,我們討論了GNN加速的一些潛在前景,以供參考(見第5節)。

圖神經網絡加速體系

GNN加速方法的分類。通過雙層決策,即GNN執行的優化因子(第一級)和這些方法的核心機制(第二級),將這些方法分為五類。此外,它們的目標強調了五類方法。例如,“圖稀疏化”和“圖分區”方法可以通過高效的內存訪問或使用來加速GNN的執行。

圖1展示了現有GNN算法加速方法的雙層分類。首先,根據優化因子將方法分為兩大類。“圖級”是指通過修改圖的拓撲或密度,對用于訓練和推理的圖進行優化。“模型級”表示對GNN的模型進行優化,包括對模型結構或權重的修改。并根據執行機制將這些方法分為五類,即圖采樣算法、圖稀疏化算法、圖劃分算法、GNN簡化算法和GNN壓縮算法。以“圖采樣”為例,表示用一種特定的采樣方法來訓練模型,加快收斂速度。在最后一層,我們通過優化目標來標記這些方法,例如,圖采樣通過降低計算成本來獲得加速。詳細的討論將在第3節中給出。

圖神經網絡加速方法

Graph-level改進

傳統的GNN,特別是GCNs的訓練是全批處理的,限制了每次模型更新一次

圖級改進的說明: (a) 對2跳鄰居進行抽樣的圖抽樣方法; (b) 一種去除無用邊的圖稀疏化方法; c)一種圖分區方法,將圖劃分為兩個保存了節點副本的子圖。

Model-Level 改進

模型簡化

GNN簡化是一種特定于模型的方法,它簡化了GNN中的操作流程,旨在提高GNN訓練和推理的計算效率。廣泛應用的GNN模型GCN的層傳播如式1所示,將空間維上的鄰近信息線性聚合和非線性激活相結合,更新節點表示。

模型壓縮

目前的深度學習應用通常嚴重依賴于龐大的數據和復雜的模型。這樣的模型具有很好的代表性,但是包含了數億個參數,使得模型訓練成為一個難以忍受的耗時過程。模型壓縮技術是將復雜的模型,如深度神經網絡(DNNs)[Cheng et al., 2017],壓縮為保存的參數通常較少的輕量級模型,廣泛用于加速訓練和推理,節省計算成本。本文回顧了在GNN中應用模型壓縮以提高計算效率的新趨勢,并根據其機理對這些方法進行了討論。

圖神經網絡加速方法比較與分析

在本節中,模型效率(通過相對訓練時間反映)的比較如圖3所示。請注意,不同類別的方法是用鏈線劃分的,而相同類別的方法使用相同的數據集和平臺進行比較。所有數據均來自文獻[Liu et al., 2021b;Mao等人,2021年;Md等,2021]。我們還在表2和表3中對現有方法進行了全面的總結和比較。我們特別注意以下幾個方面。

總結與未來展望

本文對GNN算法的加速方法進行了全面的綜述,并根據所提出的分類方法對現有文獻中的算法進行了系統的分類、討論和比較。我們相信,通過圖級和模型級的優化,可以促進GNN的執行,獲得更高的效率,有利于不同平臺上與圖相關的任務。盡管近年來GNN加速方法取得了巨大的成功和飛躍,但在這一研究領域仍存在許多有待解決的問題。在此基礎上,提出了未來研究的一些前景。

動態圖的加速: 大多數加速方法采用靜態圖進行研究。然而,動態圖在拓撲和特征空間方面比靜態圖更靈活,因此很難將這些方法直接應用于動態圖。像KD-GCN[Yang等人,2020]和二值化DGCNN [Bahri等人,2021]這樣的壓縮方法利用一個特殊設計的模塊將其擴展到動態圖形,提供了一個動態圖形加速的范例。

硬件友好算法: 通過利用硬件特性,硬件友好算法有利于模型(或算法)在通用平臺上的執行。最近的文獻[Liu et al., 2021c]的目標是彌補圖采樣算法和硬件特性之間的差距,利用位置感知優化來產生顯著的圖采樣速度。然而,這提出了一個問題,在設計GNN加速的硬件友好算法時,應該仔細考慮哪些特征。

算法和硬件協同設計: 不同于GNN的特定領域硬件加速器,如HyGCN [Yan等人,2020b]直接為GNN定制數據路徑,算法和硬件協同設計探索了算法和硬件感知的設計空間。具體來說,在GNN加速的這種前景下,總體上可以通過算法和硬件的同時設計來實現優化的協同效應。然而,據我們所知,目前在這方面的工作還很少。

付費5元查看完整內容

摘要

近年來,更大、更深度的模型層出不窮,并不斷推動各種領域(如自然語言處理(NLP)和計算機視覺(CV))的最先進(SOTA)結果。然而,盡管有很好的結果,但需要注意的是,SOTA模型所需的計算是以指數速度增長的。大規模計算不僅會產生驚人的巨大碳足跡,而且還會對研究的包容性和現實應用的部署產生負面影響。綠色深度學習是一個日益熱門的研究領域,呼吁研究者關注模型訓練和推理過程中的能源使用和碳排放問題。目標是用輕量化和高效的技術產生新的結果。許多技術可以用來實現這一目標,如模型壓縮和知識蒸餾。本文對綠色深度學習技術的發展進行了系統的綜述。我們將這些方法分為四類:(1)緊湊的網絡,(2)高效的訓練策略,(3)高效的推理方法,(4)高效的數據使用。對于每一類,我們都討論已經取得的進展和尚未解決的挑戰。

//www.zhuanzhi.ai/paper/71afe2b393a19f309bcf1aa03131b4fa

引言

十年前,人工智能(AI)主要關注淺層模型,比如結構感知器(McDonald et al., 2010;Huang et al., 2012;Li & Ji, 2014)和條件隨機場(Ghosh et al., 2011; Sutton & McCallum, 2012; Zheng et al., 2015)。這些淺層模型只需要有限的計算。大多數AI方法都可以部署在CPU上。

近年來,強大的GPU變得越來越容易使用,這使得部署更大的模型成為可能,這加速了深度學習的發展。深度學習模型的概念在20世紀90年代被廣泛應用,如卷積神經網絡(CNNs) (LeCun et al., 1998)和長短期網絡(LSTMs) (Hochreiter & Schmidhuber, 1997)。由于受到硬件容量和大規模數據資源的限制,這些模型直到最近幾年才開始流行。Collobert等人(2011)提出了第一個面向NLP任務的系統深度學習框架。Krizhevsky等人(2012)提出了一種基于卷積的深度網絡,在圖像分類挑戰中排名第一。這些研究是激勵人工智能參與者深入學習的良好先驅。

在深度學習時代,獲取SOTA結果是一個熱門方向。根據Schwartz et al. (2020a),我們將這種研究趨勢稱為Red AI。最近,研究人員注意到它比SOTA結果更難獲得優勢。對于CV和NLP等傳統人工智能領域,新的人工智能模型/算法所取得的進步正在減少。許多流行的研究基準正在達到它們的性能上限。

紅色AI的趨勢需要大量的計算來獲得更好的結果。例如,正如Schwartz等人(2020a)所報道的,用于訓練深度學習模型的計算量在6年內增加了30萬倍。這些計算不僅會造成昂貴的財務成本,還會導致過度的碳足跡。前者危害人工智能的包容性,后者危害我們的環境。我們將深度學習所需的計算源分為以下三類: 模型規模、參數調優和訓練數據。

綠色學習是由Schwartz等人(2020a)最先提出的一個術語,目前正受到越來越多的關注。形式上,綠色深度學習或綠色人工智能呼吁研究人員在不增加計算成本的情況下獲得SOTA結果,理想情況下是減少計算成本。與紅色人工智能不惜一切代價推動最先進的結果不同,綠色深度學習鼓勵人工智能參與者使用盡可能少的計算來實現可比或更好的結果。

為所有人工智能研究人員和工程師開發微小但強大的網絡是一個長期目標。在這個目標的驅動下,提出了幾個流行的微型網絡(Howard et al., 2017; Chollet, 2017; Tan & Le, 2019)。例如,Howard等人(2017)提出的MobileNet就是一種基于深度可分離卷積的高效架構。類似的想法已在例外(Chollet, 2017)采用。最近,為了探索極小的網絡,人們提出了先進的訓練/推理/網絡手術方法。例如,EdgeBERT (Tambe et al., 2021)提議建立一個可以在物聯網設備上運行的非常小的網絡。采用量化、剪枝、提前退出等先進方法,進一步減少模型參數和運行計算量。

在本次綜述中,我們對綠色深度學習技術進行了系統的綜述。首先構建綠色技術分類,然后將相關技術分為緊湊網絡、節能訓練策略、節能推理和高效數據利用四大類。在每個類別中,我們回顧綠色技術的當前進展,并探討潛在問題。值得注意的是,由于缺乏統一的標準度量,構建綠色技術分類法具有挑戰性。例如,BERT在訓練過程中需要大量的計算。如果只考慮訓練成本,BERT就不能被視為綠色技術。然而,BERT可以用更少的訓練示例來改善下游性能。從遷移移能力上看,BERT絕對是一種綠色技術。因此,一項技術是否被定義為綠色是值得懷疑的。我們將盡量避免給出有偏見的定義。如果一項技術有可能降低深度學習的成本,我們將把它納入綠色技術分類。我們從以下幾個方面回顧了綠色深度學習技術:

  • 緊湊架構設計。本部分主要關注小型網絡。我們將這一章分成兩個子章,即組件設計和組件組裝。組件設計專注于具有競爭性結果的微妙組件,但計算量少得多。組件組裝描述了如何高效地構建網絡。

  • 節能訓練策略。以往的研究提出了幾種有效的訓練方法。在本調查中,我們將這些研究分為四類,包括初始化、規范化、漸進式訓練和高效AutoML。

  • 節能推理。在本章中,我們描述了一些方法,旨在從一個較大的網絡中得到一個較小但具有可比性的網絡來進行有效的推理,包括模型修剪、低秩因子分解、量化、蒸餾。

  • 有效數據使用。本章列出了有效利用訓練數據的算法。我們專注于兩個流行的方向:主動學習和預先訓練的模式作為少樣本學習者。

付費5元查看完整內容

摘要

近年來,深度神經模型在幾乎每個領域都取得了成功,甚至解決了最復雜的問題。然而,這些模型的尺寸非常大,有數百萬(甚至數十億)個參數,需要強大的計算能力,以至于無法部署在邊緣設備上。此外,性能提升高度依賴于大量的標記數據。為了實現更快的速度和處理由于缺乏標記數據而引起的問題,知識蒸餾(KD)被提出,知識蒸餾是將從一個模型學到的信息遷移到另一個模型。KD通常以所謂的“學生-教師”(S-T)學習框架為特征,被廣泛應用于模型壓縮和知識轉移。本文是關于KD和S-T學習的研究,這兩種學習方法是近年來研究比較活躍的。首先,我們旨在解釋KD是什么以及它如何/為什么起作用。然后,我們對KD方法和S-T框架在視覺任務中的最新進展進行了全面的調研。總的來說,我們調研了推動這一研究領域的一些基本問題,并全面概括了研究進展和技術細節。系統分析了KD在視覺應用中的研究現狀。最后,我們討論了現有方法的潛力和開放挑戰,并展望了KD和S-T學習的未來方向。

引言

深度神經網絡(DNNs)的成功與否,通常取決于DNN體系結構的精心設計。在大規模機器學習中,特別是在圖像和語音識別等任務中,大多數基于DNN的模型都被過度參數化,以提取最顯著的特征,確保泛化。這種笨重的模型通常深度和寬度都很大,訓練時需要相當多的計算量,很難實時操作。因此,為了獲得更快的速度,許多研究人員一直試圖利用訓練過的笨重模型來獲得輕量級的DNN模型,這些模型可以部署在邊緣設備上。也就是說,當這個笨重的模型經過訓練后,可以使用它學習一個更適合實時應用或部署[1]的小模型,如圖1(a)所示。

另一方面,DNNs的性能也嚴重依賴于非常大且高質量的標簽來訓練數據集。由于這個原因,許多人都在努力減少標記訓練數據的數量,同時又不太影響DNNs的性能。處理這樣缺乏數據的情況的一種流行方法是從一個源任務轉移知識,以促進對目標任務的學習。一個典型的例子是半監督學習,在這種學習中,一個模型只用一小組有標記的數據和一大組沒有標記的數據來訓練。由于未標記的樣本的監督代價未定義,應用一致性代價或正則化方法來匹配標記和未標記數據的預測是至關重要的。在這種情況下,知識在假定教師和學生[2]雙重角色的模型內轉移。對于未標記的數據,學生照常學習;然而,教師產生目標,然后學生使用這些目標進行學習。如圖1(b)所示,這種學習度量的共同目標是在沒有額外訓練的情況下,從學生身上形成一個更好的教師模型。另一個典型的例子是自監督學習(self-supervised learning),該模型是用輸入轉換(例如,旋轉、翻轉、顏色變化、裁剪)構建的人工標簽來訓練的。在這種情況下,來自輸入轉換的知識被轉移到監督模型本身,以提高其性能,如圖1?所示。

本論文是關于知識蒸餾(KD)和師生學習(S-T)的研究,這是近年來研究的熱點。一般來說,KD被廣泛認為是一種主要的機制,當只給予具有相同或不同類別[3]的小訓練集時,KD可以使人類快速學習新的復雜概念。在深度學習中,KD是一種有效的技術,被廣泛用于在進行建設性訓練的同時將信息從一個網絡轉移到另一個網絡。KD最初由[4]定義,由Hinton等人[1]推廣。KD被廣泛應用于兩個不同的領域:模型壓縮(見圖1(a))和知識轉移(見圖1(b)和?)。對于模型壓縮,一個較小的學生模型被訓練來模擬一個預先訓練過的更大的模型或模型集合。雖然基于目的定義了各種形式的知識,但KD的一個共同特征是通過它的S-T框架來表征的,其中提供知識的模型稱為教師,學習知識的模型稱為學生。

在本研究中,我們重點分析和分類現有的KD方法,并結合不同類型的S-T結構,用于模型壓縮和知識遷移。我們回顧和調研這一迅速發展的領域,并特別強調最近的進展。KD方法在視覺智能、語音識別、自然語言處理(natural language processing, NLP)等各個領域都有應用,但本文主要關注的是視覺領域的KD方法,因為大部分的演示都是在計算機視覺任務上進行的。利用視覺中的KD原型可以方便地解釋用于自然語言處理和語音識別的KD方法。由于目前研究最多的KD方法是用于模型壓縮,我們系統地討論了其技術細節、挑戰和潛力。同時,我們也關注了半監督學習、自我監督學習等知識轉移的KD方法,重點關注了以S-T學習作為學習度量方式的技術。

我們將探索推動這一研究領域發展的一些基本問題。具體來說,KD和S-T學習的理論原理是什么?是什么讓一種蒸餾方法比其他方法更好?使用多個老師比使用一個老師好嗎?更大的模型總是能造就更好的老師和更魯棒的學生嗎?只有在教師模型存在的情況下,學生才能學習知識嗎?學生能自學嗎?離線KD總是比在線學習好嗎?

在討論這些問題的同時,我們結合現有KD方法的潛力,并結合S-T框架展望KD方法的未來發展方向。我們特別強調最近開發的技術的重要性,如神經結構搜索(NAS),圖神經網絡(GNNs),和增強KD的門控機制。此外,我們也強調KD方法的潛力,以解決在特定的領域的挑戰性的問題,如軌道變化是在12個360°的視覺和基于事件的視覺。

本文的主要貢獻有三個方面:

(1)對KD和S-T學習方法進行了全面的概述,包括問題定義、理論分析、一系列具有深度學習的KD方法以及視覺應用。

(2) 對KD方法和S-T框架的最新進展進行了分層、結構化的系統綜述和分析,并對每個類別的潛力和挑戰提出了見解和總結。

(3) 討論問題和開放問題,確定新的趨勢和未來的方向,為該研究領域提供深刻的指導。

本文的組織結構如下。首先,在第二章我們解釋了為什么我們需要關注KD和S-T學習。

請解釋為什么我們需要在第二節中關注KD和S-T學習。第三章對KD進行了理論分析。從第4節到第8節,我們對一些現有的方法進行了分類,從**基于教師數量的KD、基于數據格式的KD、在線/離線KD、基于標簽的KD,到具有新穎學習指標的KD第三章對KD進行了理論分析。從第4節到第8節,我們對一些現有的方法進行了分類,從基于教師數量的KD、基于數據格式的KD、在線/離線KD、基于標簽的KD,到具有新穎學習指標的KD。在討論這些KD方法的技術細節的基礎上,我們也分析了它們的挑戰和潛力。在第9節中,根據分類法,我們將討論第1節中提出的問題的答案。第10節介紹了KD和S-T學習的未來潛力,并在第11節給出了結論。由于篇幅有限,關于KD方法相關的新學習指標和KD應用方法的詳細介紹在suppll材料的第8和9節中給出。這份手稿還包括分類法/比較表和一些插圖的數字,這是不包括在這里由于缺乏空間。

圖2展示了KD和S-T學習的分類圖。

付費5元查看完整內容

深度學習已經在計算機視覺、自然語言理解、語音識別、信息檢索等領域掀起了一場革命。然而,隨著深度學習模型的不斷改進,其參數數量、延遲時間、訓練所需資源等都有了顯著增加。因此,關注模型的度量也變得很重要,而不僅僅是它的質量。我們提出深度學習中的效率問題,隨后對模型效率的五個核心領域(包括建模技術、基礎設施和硬件)以及其中的開創性工作進行了全面調研。我們還提供了一個基于實驗的指南和代碼,供從業者優化他們的模型訓練和部署。我們相信,這是在高效深度學習領域的第一次全面綜述,涵蓋了從建模技術到硬件支持的模型效率景觀。我們的希望是,這個綜述將為讀者提供心理模型和必要的理解,應用通用的效率技術,立即獲得顯著的改進,并促使他們的想法,進一步的研究和實驗,以實現額外的收益。

//www.zhuanzhi.ai/paper/0f8f07193a10367d2246a95c3c7785bb

引言

在過去的十年里,利用神經網絡進行深度學習一直是訓練新的機器學習模型的主要方法。它的崛起通常歸功于2012年的ImageNet競賽[45]。那一年,多倫多大學的一個團隊提交了一個深度卷積網絡(AlexNet[92],以首席開發人員Alex Krizhevsky的名字命名),其表現比排名第二的好41%。這一開創性工作的結果是,人們競相創造具有越來越多參數和復雜性的更深度網絡。一些模型架構,如VGGNet [141], Inception [146], ResNet[73]等,在隨后幾年的ImageNet競賽中連續打破了先前的記錄,同時它們的占用空間(模型大小,延遲等)也在增加。

這種效應在自然語言理解(NLU)中也得到了關注,其中主要基于注意力層的Transformer[154]體系結構刺激了通用語言編碼器(如BERT[47]、GPT-3[26]等)的開發。BERT在發布時擊敗了11個NLU基準測試。GPT-3還通過其API在行業的多個地方得到了應用。這些域之間的共同方面是模型占用空間的快速增長(參見圖1),以及與訓練和部署它們相關的成本。

深度學習研究一直專注于提高現有SOTA性能,圖像分類、文本分類等基準的逐步改進與網絡復雜度、參數數量、訓練網絡所需的訓練資源數量、預測延遲等的增加有關。例如,GPT-3包含1750億個參數,僅訓練一次迭代([26])就要花費數百萬美元。這排除了試驗/嘗試不同超參數組合的成本,這在計算上也是昂貴的。

雖然這些模型可以很好地執行它們所接受的任務,但它們可能不足以在現實世界中進行直接部署。在培訓或部署模型時,深度學習從業者可能面臨以下挑戰。

可持續的服務器端擴展: 訓練和部署大型深度學習模型的成本很高。雖然訓練可能是一次性成本(或者如果使用的是預先訓練的模型,則可能是免費的),但是部署并讓推理運行很長一段時間,在服務器端RAM、CPU等方面的消耗仍然是昂貴的。對于谷歌、Facebook、亞馬遜等機構來說,數據中心的碳足跡也是一個非常現實的問題,這些機構每年在數據中心的資本支出上都要花費數十億美元。

終端設備上部署: 某些深度學習應用程序需要在物聯網和智能設備上實時運行(模型推斷直接發生在設備上),原因有很多(隱私、連通性、響應性)。因此,必須為目標設備優化模型。

隱私和數據敏感性: 當用戶數據可能很敏感時,能夠使用盡可能少的數據進行訓練是至關重要的。因此,使用一小部分數據高效地訓練模型意味著所需的數據收集較少。

新的應用: 某些新的應用提供了新的約束(關于模型質量或足跡),現有的現成模型可能無法解決。

模型爆炸: 雖然一個單一的模型可能工作得很好,但為不同的應用在相同的基礎設施(托管)上訓練和/或部署多個模型可能會耗盡可用資源。

高效深度學習

圍繞上述挑戰的共同主題是效率。我們可以進一步細分如下:

推理效率: 這主要處理部署推理模型(計算給定輸入的模型輸出)的人會問的問題。型號小嗎?它快嗎,等等?更具體地說,模型有多少參數、磁盤大小、推斷期間的RAM消耗、推斷延遲等。

訓練效率: 這涉及到訓練模型的人會問的問題,比如模型需要多長時間來訓練?有多少設備?模型能適應內存嗎?等。它可能還包括這樣的問題,模型需要多少數據才能在給定的任務上實現期望的性能?

在本節中,我們將介紹mental模型來思考與高效深度學習相關的算法、技術和工具的集合。我們提出在五個主要領域構建它們,前四個集中在建模上,最后一個圍繞基礎設施和工具。

(1) 壓縮技術: 這些是用于優化模型架構的通用技術和算法,通常是通過壓縮層數。一個經典的例子是量化[82],它試圖壓縮一層的權矩陣,通過降低其精度(例如。(從32位浮點值到8位無符號整數),質量損失最小。

(2) 學習技術: 這些算法專注于不同的訓練模型(做出更少的預測錯誤,需要更少的數據,收斂更快等)。如果需要的話,通過削減參數的數量,可以將改進的質量轉換為更小的內存占用/更高效的模型。學習技術的一個例子是蒸餾[75],它通過學習模仿較大的模型來提高較小模型的準確性。

(3) 自動化: 這些是使用自動化改進給定模型的核心度量的工具。一個例子是超參數優化(HPO)[61],優化超參數有助于提高精度,然后可以用較少參數的模型進行交換。類似地,體系結構搜索[167]也屬于這一類,其中體系結構本身進行了調優,搜索有助于找到一個模型,該模型既優化了損耗/準確性,又優化了一些其他指標,如模型延遲、模型大小等。

(4) 高效架構: 這些是從頭開始設計的基本塊(卷積層、注意力等),是對之前使用的基線方法(分別是完全連接層和RNN)的重大飛躍。例如,卷積層引入了參數共享用于圖像分類,避免了為每個輸入像素學習單獨的權值,也使其對過擬合具有魯棒性。同樣,注意力層[21]解決了Seq2Seq模型中的信息瓶頸問題。這些架構可以直接用于提高效率。

(5) 基礎設施: 最后,我們還需要基礎設施和工具來幫助我們構建和利用有效的模型。這包括模型訓練框架,如Tensorflow[1]、PyTorch[119]等(以及部署高效模型所需的工具,如Tensorflow Lite (TFLite)、PyTorch Mobile等)。我們依賴于基礎設施和工具來利用高效模型的收益。例如,要獲得量化模型的規模和延遲改進,我們需要推理平臺支持量化模式下的常見神經網絡層。

付費5元查看完整內容

邊緣計算在自動駕駛的環境感知和數據處理方面有著極其重要的應用。自動駕駛汽車可以通過從邊緣節點獲得環境信息來擴大自身的感知范圍,也可以向邊緣節點卸載計算任務以解決計算資源不足的問題。相比于云計算,邊緣計算避免了長距離數據傳輸所導致的高時延,能給自動駕駛車輛提供更快速的響應,并且降低了主干網絡的負載。基于此,首先介紹了基于邊緣計算的自動駕駛汽車協同感知和任務卸載技術及相關挑戰性問題,然后對協同感知和任務卸載技術的研究現狀進行了分析總結,最后討論了該領域有待進一步研究的問題。

付費5元查看完整內容

很長一段時間以來,計算機架構和系統被優化,以使機器學習(ML)算法或模型的有效執行。現在,是時候重新考慮ML和系統之間的關系,并讓ML改變計算機架構和系統的設計方式。這包含著雙重意義:提高設計師的工作效率,完成良性循環。在本文中,我們對將ML應用于系統設計的工作進行了全面的回顧,這些工作可以分為兩大類: 基于ML的建模,它涉及到性能指標的預測或其他一些感興趣的標準,以及直接利用ML作為設計工具的基于ML的設計方法。對于基于ML的建模,我們討論現有的研究基于它們的系統目標級別,從電路級別到架構/系統級別。對于基于ML的設計方法,我們遵循自底向上的路徑來回顧當前的工作,包括(微)體系結構設計(內存、分支預測、NoC)、體系結構/系統和工作負載(資源分配和管理、數據中心管理和安全)之間的協調、編譯器和設計自動化。我們進一步提供了未來的機遇和潛在的方向,并展望了將ML應用于計算機體系結構和系統將在社區中蓬勃發展。

//www.zhuanzhi.ai/paper/73124e0addcfed8cc8f738faf5f8c398

機器學習(ML)已經在許多領域創造了奇跡,包括計算機視覺[81,207,213],語音識別[76,83],自然語言處理[38,146,210],藥物發現[148,198],機器人[77,86,140],玩電子游戲[15,167,226],以及許多其他領域[103,128,195,206]。在某些情況下,ML能夠達到或超過人類的性能。例如,在大規模ImageNet數據集上,ResNet[81]比human獲得了更好的top-5錯誤率;AlphaGo Zero可以打敗人類專業圍棋選手[206];從單人游戲(如Atari[167])到多人游戲(如《星際爭霸2》[226]和《Dota 2[15]》),訓練人工代理玩電子游戲也取得了重大進展。

目前的ML模型大多是深度神經網絡(DNNs)及其變體(如多層感知器、卷積神經網絡、遞歸神經網絡),對內存和計算資源的要求都很高。隨著人們尋求更好的人工智能,有一種趨勢是更大、更有表現力和更復雜的模型。隨著摩爾定律帶來的收益遞減,這一趨勢促使計算機體系結構/系統的進步,以更快、更節能的方式實現ML模型。針對ML工作負載,在不同層次的系統和體系結構設計上進行了改進。在算法層面,對ML模型進行剪枝、量化和壓縮[79,92],以消除計算復雜度,提高硬件效率;在硬件層面,在內存中處理(PIM)的復興和near-data處理(NDP)(73, 179),也出現專門的架構和加速器,從那些專門為卷積神經網絡(CNN)優化(例如ShiDianNao [57], Eyeriss[31]和基本[178])那些為通用款設計加速度(例如DaDianNao [30], TPU[108],和DNPU [204]);在器件層面,將新興的非易失性存儲器技術應用于體系結構設計中,如電阻式隨機存取存儲器(ReRAM)[234]、相變存儲器(PCM)[25]、自旋傳遞轉矩磁性隨機存取存儲器(STT-MRAM)[85],將計算和內存結合在一起,提供了另一種有前景的選擇(如PRIME[35]、ISAAC[200]和Resparc[7])。

在日益復雜的工作負載及其不同的性能、精度和功率目標的驅動下,設計體系結構/系統是一件不簡單而費力的事情。通常,這些設計是由人類專家基于直覺和啟發式做出的,這需要ML和體系結構/系統方面的專業知識,在這種情況下,特別是在更復雜的系統中,無法保證良好的可伸縮性和最佳結果。因此,對于體系結構和系統設計來說,朝著更加自動化和強大的方法發展似乎是很自然的,ML和系統設計之間的關系也正在被重新考慮。通常,架構和系統優化是為了加速ML模型的執行和提高性能,不可否認的是,ML的革命在一定程度上依賴于處理能力的提高,如更好地利用并行性、數據重用和稀疏性等。近年來,有跡象表明將ML應用于增強系統設計,具有很大的發展潛力。將ML應用于系統設計有兩個意義: 1減輕人類專家手工設計系統的負擔,提高設計者的工作效率; 2閉合正反饋回路,即:,架構/系統為ML,同時ML為架構/系統,形成一個良性循環,鼓勵雙方的改進。

一般來說,將ML應用于系統設計的現有工作分為兩類。1 ML技術用于系統建模,它涉及性能指標或一些感興趣的標準(例如功耗、延遲、吞吐量等)。在系統設計過程中,需要對系統行為進行快速、準確的預測。傳統上,系統建模是通過周期精確或功能虛擬平臺和指令集模擬器(ISSs)的形式來實現的(例如gem5 [18], Simics[150])。盡管這些方法可以提供準確的評估,但它們也帶來了與性能建模相關的昂貴的計算成本,限制了對大規模和復雜系統的可伸縮性; 同時,長時間的模擬限制了設計師的才能,因為只能探索整個設計空間的一小部分。采用ML技術作為設計方法,直接加強架構/系統設計。ML擅長提取特性,在沒有顯式編程的情況下做出決策,并根據經驗自動改進自身。因此,將ML技術作為設計工具,可以更主動、更智能地探索設計空間,通過更好地理解資源的復雜、非線性交互等來管理資源,從而提供真正的最優解決方案。

在本文中,我們概述了將ML應用于計算機體系結構/系統,并總結了ML技術可以解決哪些系統問題以及ML技術如何解決這些問題,如圖4所示。本文還討論了ML在系統設計中的應用所面臨的挑戰和前景。本文組織如下。第2節簡要介紹了常用的ML技術;第3節回顧了使用ML技術進行系統建模的研究,從電路級到架構/系統級;第4節介紹了利用ML技術作為設計工具直接增強體系結構/系統設計的研究,包括(微)體系結構設計(內存、分支預測、NoC)、體系結構/系統和工作負載(資源分配和管理、數據中心管理和安全)之間的協調、編譯器和設計自動化;第5節討論了將ML應用于系統設計的挑戰和未來前景,以傳達設計考慮的見解;第六部分是本文的總結。

付費5元查看完整內容

【導讀】知識蒸餾是一種典型的模型壓縮和加速方法,在很多應用場景對此有需求。來自悉尼大學的學者發布了《知識蒸餾》的綜述論文,值的關注。

//arxiv.org/abs/2006.05525

近年來,深度神經網絡在工業和學術界取得了巨大的成功,特別是在視覺識別和神經語言處理方面的應用。深度學習的巨大成功,主要歸功于其巨大的可擴展性,既有大規模的數據樣本,也有數十億的模型參數。然而,在資源有限的設備如移動電話和嵌入式設備上部署這些笨重的深模型也帶來了巨大的挑戰,不僅因為計算量大,而且存儲空間大。為此,開發了各種模型壓縮和加速技術,如剪枝、量化和神經結構搜索。知識蒸餾是一種典型的模型壓縮和加速方法,旨在從大教師模型中學習小學生模型,越來越受到社會的關注。本文從知識分類、訓練方案、知識提取算法以及應用等方面對知識提取進行了綜述。此外,我們簡要回顧了知識提煉的挑戰,并對未來的研究課題提供了一些見解。

概述

在過去的幾年里,深度學習在人工智能領域取得了巨大的成功,包括計算機視覺(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節給出結論。

付費5元查看完整內容

A Survey of Model Compression and Acceleration for Deep Neural Networks 深度卷積神經網絡(CNNs)最近在許多視覺識別任務中取得了巨大的成功。然而,現有的深度神經網絡模型在計算上是昂貴的和內存密集型的,這阻礙了它們在低內存資源的設備或有嚴格時間延遲要求的應用程序中的部署。因此,在不顯著降低模型性能的情況下,在深度網絡中進行模型壓縮和加速是一種自然的思路。在過去幾年中,這方面取得了巨大的進展。本文綜述了近年來發展起來的壓縮和加速CNNs模型的先進技術。這些技術大致分為四種方案: 參數剪枝和共享、低秩因子分解、傳輸/緊湊卷積過濾器和知識蒸餾。首先介紹參數修剪和共享的方法,然后介紹其他技術。對于每種方案,我們都提供了關于性能、相關應用程序、優點和缺點等方面的詳細分析。然后我們將討論一些最近比較成功的方法,例如,動態容量網絡和隨機深度網絡。然后,我們調查評估矩陣、用于評估模型性能的主要數據集和最近的基準測試工作。最后,對全文進行總結,并對今后的研究方向進行了展望。

付費5元查看完整內容
北京阿比特科技有限公司