【簡介】近些年深度神經網絡幾乎在各個領域都取得了巨大的成功。然而,這些深度模型在尺寸上過于巨大,有幾百萬甚至上億的參數,造成了巨大的計算開銷,致使模型難以部署和落地。除此之外,模型的表現還高度依賴于大量的標注數據。為了使模型得到更加高效的訓練和處理標記數據不足的難題,知識蒸餾(KD)被用來遷移從一個模型到另一個模型學習到的知識。這個過程也經常被描述為student-teacher(S-T)學習框架,并且已經被廣泛應用到模型壓縮和知識遷移中。這篇論文主要介紹了知識蒸餾和student-teacher學習模型。首先,我們對于KD是什么,它是如何工作的提供了一個解釋和描述。然后,我們對近些年知識蒸餾方法的研究進展和典型用于視覺任務的S-T學習框架進行了一個全面的調研。最后,我們討論了知識蒸餾和S-T模型未來的發展方向和研究前景,以及目前這些方法所面臨的開放性挑戰。
介紹
深度神經網絡的成功主要依賴于精心設計的DNN架構。在大規模機器學習任務中,尤其是圖像識別和語音識別任務,大多數基于DNN的模型都是憑借大量的參數來提取特征從而保證模型的泛化能力。這種笨重的模型通常都有非常深和非常寬的特點,需要花費大量的時間進行訓練,而且不可能實時操作。所以,為了加速模型訓練,許多研究人員嘗試著利用預訓練的復雜模型來獲得輕量級的DNN模型,從而使得這些模型可以被部署應用。這是一篇關于知識蒸餾(KD)和student-teacher(S-T)學習模型的論文。一般來講,知識蒸餾被視作一種機制:當只給出小型的訓練集,其中包含相同或不同種類的樣本的時候,這種機制能夠使得人類快速學習新的,復雜的概念。在深度學習中,知識蒸餾是一個有效的方法,目前已經被廣泛的應用在了從一個網絡到另一個網絡的信息轉移上。知識蒸餾主要被應用在模型壓縮和知識遷移這兩個領域,對于模型壓縮,一個較小的學生模型被訓練來模仿一個預先訓練好的較大的模型。盡管知識和任務種類多樣,但是S-T框架是他們的一個相同點,其中提供知識的模型被稱作teacher,學習知識的模型被稱作student。我們對現有的知識蒸餾方法進行了重點分析和分類,其中還伴隨著各種類型的S-T結構的模型壓縮和知識轉移。我們回顧和調查了這一迅速發展的領域,強調了該領域的最新進展。雖然知識蒸餾方法已經應用于視覺智能、語音識別、自然語言處理等各個領域,但本文主要關注的是視覺領域的知識蒸餾方法,所以論文中關于知識蒸餾的大多數闡釋都是基于計算機視覺任務。由于知識蒸餾方法研究最多的領域是模型壓縮,所以我們系統地討論了該領域的技術細節、關鍵性挑戰和發展潛力。同時,重點介紹了在半監督學習、自監督學習等領域的知識遷移方法,重點介紹了以S-T學習框架為基礎的技術。
文章結構
section 2:探討知識蒸餾和S-T學習框架為什么會吸引如此多的關注。 section 3:關于知識蒸餾的理論分析。 section 4-section14:對目前的方法進行分類,并且分析了面臨的挑戰以及該領域的發展前景。 section 15:根據上面的分類結果,我們回答了section 2中提出的問題。 section 16:介紹了知識蒸餾和S-T框架的潛力。 section 17:總結。
隨著圖像處理,語音識別等人工智能技術的發展,很多學習方法尤其是采用深度學習框架的方法取得了優異的性能,在精度和速度方面有了很大的提升,但隨之帶來的問題也很明顯,這些學習方法如果要獲得穩定的學習效果,往往需要使用數量龐大的標注數據進行充分訓練,否則就會出現欠擬合的情況而導致學習性能的下降。因此,隨著任務復雜程度和數據規模的增加,對人工標注數據的數量和質量也提出了更高的要求,造成了標注成本和難度的增大。同時,單一任務的獨立學習往往忽略了來自其他任務的經驗信息,致使訓練冗余重復因而導致了學習資源的浪費,也限制了其性能的提升。為了緩解這些問題,屬于遷移學習范疇的多任務學習方法逐漸引起了研究者的重視。與單任務學習只使用單個任務的樣本信息不同,多任務學習假設不同任務數據分布之間存在一定的相似性,在此基礎上通過共同訓練和優化建立任務之間的聯系。這種訓練模式充分促進任務之間的信息交換并達到了相互學習的目的,尤其是在各自任務樣本容量有限的條件下,各個任務可以從其它任務獲得一定的啟發,借助于學習過程中的信息遷移能間接利用其它任務的數據,從而緩解了對大量標注數據的依賴,也達到了提升各自任務學習性能的目的。在此背景之下,本文首先介紹了相關任務的概念,并按照功能的不同對相關任務的類型進行劃分后再對它們的特點進行逐一描述。然后,本文按照數據處理模式和任務關系建模過程的不同將當前的主流算法劃分為兩大類:結構化多任務學習算法和深度多任務學習算法。其中,結構化多任務學習算法采用線性模型,可以直接針對數據進行結構假設并且使用原有標注特征表述任務關系,同時,又可根據學習對象的不同將其細分為基于任務層面和基于特征層面兩種不同結構,每種結構有判別式方法和生成式方法兩種實現手段。與結構化多任務學習算法的建模過程不同,深度多任務學習算法利用經過多層特征抽象后的深層次信息進行任務關系描述,通過處理特定網絡層中的參數達到信息共享的目的。緊接著,以兩大類算法作為主線,本文詳細分析了不同建模方法中對任務關系的結構假設、實現途徑、各自的優缺點以及方法之間的聯系。最后,本文總結了任務之間相似性及其緊密程度的判別依據,并且分析了多任務作用機制的有效性和內在成因,從歸納偏置和動態求解等角度闡述了多任務信息遷移的特點。 //gb.oversea.cnki.net/KCMS/detail/detail.aspx?filename=JSJX20190417000&dbcode=CJFD&dbname=CAPJ2019
【導讀】知識蒸餾是一種典型的模型壓縮和加速方法,在很多應用場景對此有需求。來自悉尼大學的學者發布了《知識蒸餾》的綜述論文,值的關注。
近年來,深度神經網絡在工業和學術界取得了巨大的成功,特別是在視覺識別和神經語言處理方面的應用。深度學習的巨大成功,主要歸功于其巨大的可擴展性,既有大規模的數據樣本,也有數十億的模型參數。然而,在資源有限的設備如移動電話和嵌入式設備上部署這些笨重的深模型也帶來了巨大的挑戰,不僅因為計算量大,而且存儲空間大。為此,開發了各種模型壓縮和加速技術,如剪枝、量化和神經結構搜索。知識蒸餾是一種典型的模型壓縮和加速方法,旨在從大教師模型中學習小學生模型,越來越受到社會的關注。本文從知識分類、訓練方案、知識提取算法以及應用等方面對知識提取進行了綜述。此外,我們簡要回顧了知識提煉的挑戰,并對未來的研究課題提供了一些見解。
概述
在過去的幾年里,深度學習在人工智能領域取得了巨大的成功,包括計算機視覺(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節給出結論。
最新的技術進步提高了交通運輸的質量。新的數據驅動方法為所有基于控制的系統(如交通、機器人、物聯網和電力系統)帶來了新的研究方向。將數據驅動的應用與運輸系統相結合在最近的運輸應用程序中起著關鍵的作用。本文綜述了基于深度強化學習(RL)的交通控制的最新應用。其中,詳細討論了基于深度RL的交通信號控制(TSC)的應用,這在文獻中已經得到了廣泛的研究。綜合討論了TSC的不同問題求解方法、RL參數和仿真環境。在文獻中,也有一些基于深度RL模型的自主駕駛應用研究。我們的調查廣泛地總結了這一領域的現有工作,并根據應用程序類型、控制模型和研究的算法對它們進行了分類。最后,我們討論了基于深度可編程邏輯語言的交通應用所面臨的挑戰和有待解決的問題。
深度神經網絡(DNN)是實現人類在許多學習任務上的水平的不可缺少的機器學習工具。然而,由于其黑箱特性,很難理解輸入數據的哪些方面驅動了網絡的決策。在現實世界中,人類需要根據輸出的dna做出可操作的決定。這種決策支持系統可以在關鍵領域找到,如立法、執法等。重要的是,做出高層決策的人員能夠確保DNN決策是由數據特征的組合驅動的,這些數據特征在決策支持系統的部署上下文中是適當的,并且所做的決策在法律上或倫理上是可辯護的。由于DNN技術發展的驚人速度,解釋DNN決策過程的新方法和研究已經發展成為一個活躍的研究領域。在定義什么是能夠解釋深度學習系統的行為和評估系統的“解釋能力”時所存在的普遍困惑,進一步加劇了這種復雜性。為了緩解這一問題,本文提供了一個“領域指南”,為那些在該領域沒有經驗的人提供深度學習解釋能力指南: i)討論了研究人員在可解釋性研究中增強的深度學習系統的特征,ii)將可解釋性放在其他相關的深度學習研究領域的背景下,iii)介紹了定義基礎方法空間的三個簡單維度。
【簡介】隨著深度表示學習的發展,強化學習(RL)已經成為了一個強大的學習框架,其可以在高維度空間中學習復雜的規則。這篇綜述總結了深度強化學習(DRL)算法,提供了采用強化學習的自動駕駛任務的分類方法,重點介紹了算法上的關鍵挑戰和在現實世界中將強化學習部署在自動駕駛方面的作用,以及最終評估,測試和加強強化學習和模仿學習健壯性的現有解決方案。
論文鏈接: //arxiv.org/abs/2002.00444
介紹:
自動駕駛(AD)系統由多個感知級任務組成,由于采用了深度學習架構,這些任務現在已經達到了很高的精度。除了感知任務之外,自主駕駛系統還包含多個其他任務,傳統的監督學習方法已經不再適用。首先,當對agent行為的預測發生變化時,從自動駕駛agent所處的環境中接收到的未來傳感器觀察到的結果,例如獲取市區最佳駕駛速度的任務。其次,監督信號(如碰撞時間(TTC),相對于agent最佳軌跡的側向誤差)表示agent的動態變化以及環境中的不確定性。這些問題都需要定義隨機損失函數來使其最大化。最后,agent需要學習當前環境新的配置參數,預測其所處的環境中每一時刻的最優決策。這表明在觀察agent和其所處環境的情況下,一個高維度的空間能夠給出大量唯一的配置參數。在這些場景中,我們的目標是解決一個連續決策的問題。在這篇綜述中,我們將介紹強化學習的概念,強化學習是一種很有前景的解決方案和任務分類方法,特別是在驅動策略、預測感知、路徑規劃以及低層控制器設計等領域。我們還重點回顧了強化學習在自動駕駛領域當中各種現實的應用。最后,我們通過闡述應用當前諸如模仿學習和Q學習等強化學習算法時所面臨的算力挑戰和風險來激勵使用者對強化學習作出改進。
章節目錄:
section2: 介紹一個典型的自動駕駛系統及其各個組件。
section3: 對深度強化學習進行介紹,并簡要討論關鍵概念。
section4: 探討在強化學習基本框架上對其進行更深層次,更加復雜的擴展。
section5: 對強化學習用于自動駕駛領域的所面臨的問題提供一個概述。
section6: 介紹將強化學習部署到真實世界自動駕駛系統中所面臨的挑戰。
section7: 總結
【導讀】由于深度神經網絡具有強大的學習不同層次視覺特征的能力,因此被廣泛應用于目標檢測,語義分割,圖像描述等計算機視覺應用當中。從ImageNet這樣的大型圖像數據集中訓練得到的模型被廣泛地用作其他任務的預訓練模型,主要有兩個原因:(1)從大規模數據集中學習得到的參數能夠為其他模型提供一個良好的訓練起點,在其他任務上模型網絡可以更快地收斂。(2)在大規模數據集上訓練的網絡已經學習到了層次特征,這有助于減少其他任務訓練過程中的過擬合問題,特別是當其他任務的數據集較小或標注數據不足的情況。
介紹
為了在計算機視覺應用中學習得到更好的圖像和視頻特征,通常需要大規模的標記數據來訓練深度神經網絡。為了避免收集和標注大量的數據所需的巨大開銷,作為無監督學習方法的一個子方法——自監督學習方法,可以在不使用任何人類標注的標簽的情況下,從大規模無標記數據中學習圖像和視頻的一般性特征。本文對基于深度學習的自監督一般性視覺特征學習方法做了綜述。首先,描述了該領域的動機和一些專業性術語。在此基礎上,總結了常用的用于自監督學習的深度神經網絡體系結構。接下來,回顧了自監督學習方法的模式和評價指標,并介紹了常用的圖像和視頻數據集以及現有的自監督視覺特征學習方法。最后,總結和討論了基于標準數據集的性能比較方法在圖像和視頻特征學習中的應用。
用于圖像特征學習的架構
1.AlexNet:與以往的方法相比,AlexNet極大的提高了在ImageNet數據集上的圖像分類性能。AlexNet架構總共有8層,其中的5層是卷積層,3層是全連接層。ReLU激活函數被運用在每一個卷積層后面。
2.VGG:該模型贏得了ILSVRC2013挑戰賽的第一名。其中的VGG-16由于模型尺寸適中,性能優越,被廣泛使用。
3.ResNet:該網絡闡述了網絡越深越能夠獲得良好的性能。但是由于梯度消失和梯度爆炸,深度神經網絡很難訓練。ResNet使用跳躍連接把前一層的特征直接傳遞到下一個卷積塊來克服梯度消失和梯度爆炸的問題。
4.GoogleNet:22層的深度網絡,以93.3%的準確率贏得了ILSVRC-2014挑戰賽。和之前的網絡相比,它擁有更深的網絡。GoogleNet的基礎模塊inception塊由4個平行的卷積層組成,這4個卷積層的卷積核尺寸不同,每層后面都有一個1x1的卷積操作來降低維度。
5.DenseNet:大多數網絡包括AlexNet, VGG和ResNet都遵循層次結構。圖像被輸入到網絡中,由不同的層提取特征。淺層提取低級的一般性特征,而深層提取特定于任務的高級特征。然而,當一個網絡變得越來越深的時候,更深的網絡層可能會記住完成任務所需的底層特征。為了避免這一問題,DenseNet通過稠密連接將一個卷積塊之前的所有特征作為輸入輸送到神經網絡中的下一個卷積塊。
視頻特征學習架構
Spatiotemporal Convolutional Neural Network
三維卷積運算最早是在3DNet中提出的,用于人類行為識別。與2DConvNets分別提取每一幀的空間信息,然后將它們融合為視頻特征相比,3DConvNets能夠同時從多個幀中同時提取空間和時間特征。
隨著三維卷積在視頻分析任務中的成功應用,出現了3DConvNet的各種變體。比如Hara等人提出了3DResNet,將ResNet中所有的2D卷積層替換為3D卷積層。實驗表明,在多個數據集上,3D卷積層的性能更為優異。
Recurrent Neural Network(RNN)
由于RNN能夠對一個時間序列數據進行動態建模,所以RNN通常被應用于視頻的有序幀序列當中。和標準的RNN相比,LSTM使用內存單元來存儲,修改和訪問內部狀態,從而更好的對視頻幀之間的長時間序列進行建模。基于LSTM的優勢,Donahue提出了long-term recurrent convolutional networks (LRCN)用于人類行為識別。
數據集介紹
1.圖像數據集
2.視頻數據集
YFCC100M:該數據集是從Flicker上收集的多媒體數據集,由1億條多媒體數據組成,其中的99200000條數據是圖片,剩余的800000條數據是視頻。
SceneNet RGB-D:該數據集是一個大型的室內視頻合成數據集。
Moment in Time:該數據集是一個用于視頻內容理解的數據集,內容多樣且分布均衡。
Kinetics:該數據集規模大,質量高,用于人類行為識別。
AudioSet:該數據集由來自YouTube的2084320條人工標記10秒的聲音剪輯組成,這些視頻涵蓋了632個音頻事件。
KITTI:該數據集是在駕駛汽車時收集的,收集數據時的裝備有各種傳感器,包括高分辨率RGB相機、灰度立體聲相機、3D激光掃描儀和高精度GPS測量。
UCF101:該數據集被廣泛使用于人類動作識別。
HMDB51:相比于前面的數據集,該數據集是一個小規模的視頻數據集,用于人流動作識別。
題目: A survey of deep learning techniques for autonomous driving
簡介: 本文目的是研究自動駕駛中深度學習技術的最新技術。首先介紹基于AI的自動駕駛架構、CNN和RNN、以及DRL范例。這些方法為駕駛場景感知、路徑規劃、行為決策和運動控制算法奠定基礎。該文研究深度學習方法構建的模塊化“感知-規劃-執行”流水線以及將傳感信息直接映射到轉向命令的端到端系統。此外,設計自動駕駛AI架構遇到的當前挑戰,如安全性、訓練數據源和計算硬件等也進行了討論。該工作有助于深入了解深度學習和自動駕駛AI方法的優越性和局限性,并協助系統的設計選擇。