最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

「深度學習中知識蒸餾」研究綜述

2023-02-07 09:54 作者:極市平臺  | 我要投稿

來源丨專知

編輯丨極市平臺

在人工智能迅速發(fā)展的今天,深度神經(jīng)網(wǎng)絡廣泛應用于各個研究領域并取得了巨大的成功,但也同樣面 臨著諸多挑戰(zhàn).首先,為了解決復雜的問題和提高模型的訓練效果,模型的網(wǎng)絡結構逐漸被設計得深而復雜,難以適應移動計算發(fā)展對低資源、低功耗的需求.知識蒸餾最初作為一種從大型教師模型向淺層學生模型遷移知識、提升性能的學習范式被用于模型壓縮.然而隨著知識蒸餾的發(fā)展,其教師學生的架構作為一種特殊的遷移學習方式,演化出了豐富多樣的變體和架構,并被逐漸擴展到各種深度學習任務和場景中,包括計算機視覺、自然語言處理、推薦系統(tǒng)等等.另外,通過神經(jīng)網(wǎng)絡模型之間遷移知識的學習方式,可以聯(lián)結跨模態(tài)或跨域的學習任務,避免知 識遺忘;還能實現(xiàn)模型和數(shù)據(jù)的分離,達到保護隱私數(shù)據(jù)的目的.知識蒸餾在人工智能各個領域發(fā)揮著越來越重要的作用,是解決很多實際問題的一種通用手段.本文將近些年來知識蒸餾的主要研究成果進行梳理并加以總結,分析該領域所面臨的挑戰(zhàn),詳細闡述知識蒸餾的學習框架,從多種分類角度對知識蒸餾的相關工作進行對比和分析,介紹了主要的應用場景,在最后對未來的發(fā)展趨勢提出了見解

隨著深度神經(jīng)網(wǎng)絡的崛起和演化,深度學習在計算機視覺、自然語言處理、推薦系統(tǒng)等各個人工智能的相關領域中已經(jīng)取得了重大突破.但是,深度學習在實際應用過程中的也存在著一些巨大的挑戰(zhàn).首先,為了應對錯綜復雜的學習任務,深度學習的網(wǎng)絡模型往往會被設計得深而復雜:比如早期的LeNet模型只有5層,發(fā)展到目前的通用的ResNet系列模型已經(jīng)有152層;伴隨著模型的復雜化,模型的參數(shù)也在逐漸加重.早期的模型參數(shù)量通常只有幾萬,而目前的模型參數(shù)動輒幾百萬.這些模型的訓練和部署都需要消耗大量的計算資源,且模型很難直接應用在目前較為流行的嵌入式設備和移動設備中.其次,深度學習應用最成功的領域是監(jiān)督學習,其在很多任務上的表現(xiàn)幾乎已經(jīng)超越了人類的表現(xiàn).但是,監(jiān)督學習需要依賴大量的人工標簽;而要實現(xiàn)大規(guī)模的標簽任務是非常困難的事情,一方面是數(shù)據(jù)集的獲取,在現(xiàn)實場景中的一些數(shù)據(jù)集往往很難直接獲?。热?,在醫(yī)療行業(yè)需要保護患者的隱私數(shù)據(jù),因而數(shù)據(jù)集通常是不對外開放的.另一方面,大量的用戶數(shù)據(jù)主要集中在各個行業(yè)的頭部公司的手中,一些中小型公司無法積累足夠多的真實用戶數(shù)據(jù),因此模型的效果往往是不理想的;此 外,標注過程中本身就需要耗費很大的人力、物力、財力,這將極大限制人工智能在各個行業(yè)中的發(fā)展和應用.最后,從產(chǎn)業(yè)發(fā)展的角度來看,工業(yè)化將逐漸過渡到智能化,邊緣計算逐漸興起預示著AI將逐漸與小型化智能化的設備深度融合,這也要求模型更加的便捷、高效、輕量以適應這些設備的部署.

針對深度學習目前在行業(yè)中現(xiàn)狀中的不足, Hinton等人于2015首次提出了知識蒸餾(Knowledge Distillation,KD)[10],利用復雜的深層網(wǎng)絡模型向淺層的小型網(wǎng)絡模型遷移知識.這種學習模型的優(yōu)勢在于它能夠重用現(xiàn)有的模型資源,并將其中蘊含的信息用于指導新的訓練階段;在跨領域應用中還改變了以往任務或場景變化都需要重新制作數(shù)據(jù)集和訓練模型的困境,極大地節(jié)省了深度神經(jīng)網(wǎng)絡訓練和應用的成本.通過知識蒸餾不僅能夠實現(xiàn)跨領域和跨模態(tài)數(shù)據(jù)之間的聯(lián)合學習還能將模型和知識表示進行分離,從而在訓練過程中將教師模型作為 “黑盒”處理,可以避免直接暴露敏感數(shù)據(jù),達到隱私保護效果.

知識蒸餾作為一種新興的、通用的模型壓縮和 遷移學習架構,在最近幾年展現(xiàn)出蓬勃的活力,其發(fā) 展歷程也大致經(jīng)歷了初創(chuàng)期,發(fā)展期和繁榮期.在初創(chuàng)期,知識蒸餾從輸出層逐漸過渡到中間層,這時期知識的形式相對簡單,較為代表性的中間層特征蒸餾的方法為Hints.到了發(fā)展期,知識的形式逐漸豐富、多元,不再局限于單一的節(jié)點,這一時期較為代表性的蒸餾方法有AT、FT.在2019年前后,知識蒸餾逐漸吸引了深度學習各個領域研究人員的目光,使其應用得到了廣泛拓展,比如在模型應用上逐漸結合了跨模態(tài)、跨領域、持續(xù)學習、隱私保護等;在和其他領域交叉過程中又逐漸結合了對抗學習、強化學習、元學習、自動機器學習、自監(jiān)督學習等.如下圖1為知識蒸餾的發(fā)展歷程和各個時期較為代表性的工作.

知識蒸餾雖然有了較為廣闊的發(fā)展,但是在其發(fā)展過程和實際應用中也同樣面臨著這一些挑戰(zhàn);知識蒸餾的挑戰(zhàn)主要可以分為實際應用中面臨的挑戰(zhàn)和模型本身理論上的挑戰(zhàn).應用中的挑戰(zhàn)主要有 模型問題、成本問題;而理論上面存在的主要挑戰(zhàn)也是目前深度學習普遍存在的一些挑戰(zhàn),包括模型的不可解釋性等:

模型問題.在實際工業(yè)應用中針對不同的任務教師模型多樣,而如果教師和學生模型不匹配,可能會使學生模型無法模仿深層大容量的教師模型,即大模型往往不能成為更好的老師.因此,應用中需要 考慮深層模型和淺層模型之間的容量差距,選擇相匹配的教師-學生模型.

成本問題.模型訓練過程對超參數(shù)較為敏感以及對損失函數(shù)依賴較大,而相關原因很難用原理去解 釋,需要大量的實驗,因而模型的試錯成本相對較高.

可解釋性不足.關于知識蒸餾的原理解釋主要是從輸出層標簽平滑正則化、數(shù)據(jù)增強等角度出發(fā),而關于其他層的方法原理解釋相對不足;目前,雖然關于泛化邊界的研究也在興起,但是并不能全面解釋知識的泛化問題,還需要有更進一步的探究,才能保證理論的完備性.

目前,知識蒸餾已經(jīng)成為一個熱門的研究課題,關于知識蒸餾的論文和研究成果非常豐富.各種新 方法、新任務、新場景下的研究紛繁復雜,使得初學者難以窺其全貌.當前已有兩篇關于知識蒸餾的綜述,均發(fā)表于2021年.相較于前者,本文在分類上作了進一步細化,如在知識形式上,本文關注到了參數(shù)知識及蒸餾中常見的中間層的同構和異構問題;雖然該文獻中也提及了基于圖的算法,但是本文以為基于圖形式構建的知識表示是一種新興的、獨立的、特殊的知識形式,單獨歸為一類更為合理.相較于后者[40]本文在結構分類上更加宏觀,以知識 形式、學習方式和學習目的為主要內容將知識蒸餾的基礎解析清楚,而后在此基礎之上對其交叉領域和主要應用進行展開.本文的主要貢獻可總結如下:

(1)結構較為完善,分類更加細化.對于知識的分類,本文是依據(jù)知識蒸餾的發(fā)展脈絡對其進行歸類并細化,增加了中間層知識、參數(shù)知識、圖表示知識,完整地涵蓋了目前知識的全部形式.在文章的結構上,既保證了分類的綜合性,又避免了過多分類造成的雜糅,更為宏觀.

(2)對比詳細,便于掌握.本文以表格的方式對同的方法之間的優(yōu)缺點、適用場景等進行詳細的總結對比,以及對比了不同知識形式蒸餾的形式化方法,使得讀者能夠快速準確地區(qū)分其中的不同點.

(3)內容完整,覆蓋全面.本文遵循了主題式分類原則不僅分析了單篇文獻,還分析相關領域中知識蒸餾的重要研究.除此之外,本文以獨立章節(jié)對知識蒸餾的學習目的,原理和解釋,發(fā)展趨勢等方面做了較為全面的闡釋.

本文接下來將從知識蒸餾的整體框架從發(fā),并對其各個分類進行詳細的闡述,使得讀者能夠從宏 觀上對知識蒸餾有更全面的了解,以便更好地開展相關領域的學習與研究.本文將按照以下結構組織:第2節(jié)首先介紹知識蒸餾的理論基礎及分類;第3~6節(jié)分別按照知識傳遞形式、學習方式、學習目的、交叉領域的順序,從4個不同角度對知識蒸餾的相關工作進行分類和對比,并分析不同研究方向面臨的機遇和挑戰(zhàn);第7節(jié)列舉知識蒸餾在計算機視覺、自然語言處理、推薦系統(tǒng)等領域的一些應用性成果;第8節(jié)對知識蒸餾的原理和可解釋性方面的工作進行梳理;最后,對知識蒸餾在深度學習場景下的未來發(fā)展趨勢提出一些見解,并進行全文總結.

理論基礎及分類

知識蒸餾本質上屬于遷移學習的范疇,其主要思路是將已訓練完善的模型作為教師模型,通過控制“溫度”從模型的輸出結果中“蒸餾”出“知識”用于學生模型的訓練,并希望輕量級的學生模型能夠學到教師模型的“知識”,達到和教師模型相同的表現(xiàn). 這里的“知識”狹義上的解釋是教師模型的輸出中包含了某種相似性,這種相似性能夠被用遷移并輔助其他模型的訓練,文獻[10]稱之為“暗知識”;廣義上的解釋是教師模型能夠被利用的一切知識形式, 如特征、參數(shù)、模塊等等.而“蒸餾”是指通過某些方法(如控制參數(shù)),能夠放大這種知識的相似性,并使其顯現(xiàn)的過程;由于這一操作類似于化學實驗中 “蒸餾”的操作,因而被形象地稱為“知識蒸餾”.

如圖3是知識蒸餾模型的整體結構.其由一個多層的教師模型和學生模型組成,教師模型主要負責向學生模型傳遞知識,這里的“知識”包括了標簽知識、中間層知識、參數(shù)知識、結構化知識、圖表示知識.在知識的遷移過程中,通過在線或離線等不同的學習方式將“知識”從教師網(wǎng)絡轉移到了學生網(wǎng)絡.為了便于讀者快速學習和對比其中的差異,作者將不同知識傳遞形式下的蒸餾方法的形式化表示及其相關解釋整理為表1所示結果.此外,本文對知識蒸餾相關研究進行了總結,主要從知識傳遞形式、學習的方式、學習的目的、交叉領域、主要應用等方面對其進行分類,其分類框架如圖4所示,具體內容將在后續(xù)的文章中展開

知識傳遞形式

知識蒸餾方法的核心在于“知識”的設計、提取和遷移方式的選擇,通常不同類型的知識來源于網(wǎng)絡模型不同組件或位置的輸出.根據(jù)知識在教師-學生模型之間傳遞的形式可以將其歸類為標簽知識、中間層知識、參數(shù)知識、結構化知識和圖表示知識.標簽知識一般指在模型最后輸出的logits概率分布中的軟化目標信息;中間層知識一般是在網(wǎng)絡中間層輸出的特征圖中表達的高層次信息;參數(shù)知識是訓練好的教師模型中存儲的參數(shù)信息;結構化知識通常是考慮多個樣本之間或單個樣本上下文的相互關系;圖表示知識一般是將特征向量映射至圖結構來表示其中的關系,以滿足非結構化數(shù)據(jù)表示的學習需求.本節(jié)主要對蒸餾知識的5類傳遞形式加以介紹,理清主流的知識蒸餾基礎方法,后面介紹的各類蒸餾方法或具體應用都是以此為基礎.相關的優(yōu)缺點和實驗對比,見表2~表4所示.

學習方式

類似于人類教師和學生間的學習模式,神經(jīng)網(wǎng)絡的知識蒸餾學習方式也有著多種模式.其中,學生模型基于預訓練好的、參數(shù)固定的教師模型進行蒸餾學習被稱為離線蒸餾.相應地,教師和學生模型同時參與訓練和參數(shù)更新的模式則稱為在線蒸餾.如果學生模型不依賴于外在模型而是利用自身信息進行蒸餾學習,則被稱為自蒸餾學習,如圖7所示.一般而言,蒸餾框架都是由一個教師模型和一個學生模型組成,而有多個模型參與的蒸餾稱為多模型蒸餾;目前,大部分蒸餾框架都是默認源訓練數(shù)據(jù)集可用的,但最近的很多研究在不使用任何已知數(shù)據(jù)集的情況下實現(xiàn)蒸餾,這類統(tǒng)稱為零樣本蒸餾(又稱為無數(shù)據(jù)蒸餾,).特別地,出于一些隱私保護等目的,教師模型可以享有一些特權信息而學生模型無法訪問,在這種約束下,形成特權蒸餾 學習.接下來,將分別介紹不同蒸餾學習方式的代表性工作.

主要應用

計算機視覺

計算機視覺一直是人工智能的研究熱點領域之一.近年來,知識蒸餾被廣泛應用于各種視覺任務達到模型壓縮、遷移學習和隱私保護等目標.雖然知識蒸餾的應用十分廣泛,但是由于各個研究方向的熱度不同,所以相關研究的論文數(shù)量也會有很大的差異.本文重點引用了知識蒸餾在視覺上的熱點方向,并列舉相關論文的方法供讀者查閱學習,而對于其他一些方向可能存在取舍.目前,應用知識蒸餾的視覺研究主要集中在視覺檢測和視覺分類上.視覺檢測主要有目標檢測、人臉識別、行人檢測、姿勢檢測;而視覺分類的研究熱點主要是語義分割,如表5所示.另外,視覺中還有一些其他應用比如視頻分類[105]、深度估計和光流/場景流估計[169]等等.

自然語言處理

自然語言處理((Natural Language Process, NLP)的發(fā)展非常迅速,從RNN,LSTM,ELMo再到如今非常熱門的BERT,其模型結構逐漸變的非常的深而復雜,需要耗費大量的資源和時間.這樣的模型幾乎無法直接部署.因而,獲得輕量級、高效、有效的語言模型顯得極為迫切.于是,知識蒸餾在NLP領域也得到了極大的重視.目前,結合知識蒸餾較為廣泛的NLP任務主要有機器翻譯(Neural Machine Translation, N MT),問答系統(tǒng)(Question Answer System, QAS)等領域.如表6,本節(jié)列舉了知識蒸餾結合神經(jīng)機器翻譯和問答系統(tǒng)的代表性的研究工作.另外,BERT模型在近些年被廣泛應用于NLP的各個領域,其重要性不言而喻,因此,我們在表6中一并列舉并在下面對其作詳細介紹.

BERT模型是近年來自然語言中,應用最廣泛的工具之一,它是由雙向編碼器表示的transformer模型組成.由于其強大的編碼表示能力,目前在自然語言的各個任務中被廣泛應用.但是,BERT模型結構 非常復雜,參數(shù)量巨大,很難直接應用于模型的訓練.目前的應用主要采用的預訓練加微調的方法,因此,對BERT模型的壓縮顯得尤為必要.目前,這方面的研究已經(jīng)吸引的很多研究者的關注.提出的方法主要有剪枝、量化、蒸餾、參數(shù)共享、權重分解.但是,量化對模型的提升效果有限,權重分解和參數(shù)共 享等工作相對較少.因此,主要工作集中在剪枝和蒸餾.此處將主要介紹表中列舉的較為經(jīng)典的幾種模型.

首先,知識蒸餾結合BERT較早的方法是 Distilled BiLSTM[221]于 2019 年提出,其主要思想是將 BERT-large 蒸餾到了單層的BiLSTM 中,其效果接近 EMLO,其將速度提升15 倍的同時使模型的參數(shù)量減少 100 倍。后來的研究方法逐漸豐富,如 BERT-PKD[222]主要從教師的中間層提取豐富的知識,避免在蒸餾最后一層擬合過快的現(xiàn)象。DistillBERT[223]在預訓練階段進行蒸餾,能夠將模型尺寸減小了 40% ,同時能將速度能提升 60%,并且保留教師模型 97%的語言理解能力,其效果好于 BERT-PKD。TinyBERT[224]提出的框架,分別在預訓練和微調階段蒸餾教師模型,得到了速度提升 9.4 倍但參數(shù)量減少 7.5 倍的 4 層BERT,其效果可以達到教師模型的 96.8%。同樣,用這種方法訓出的 6 層模型的性能超過了BERT-PKD 和 DistillBERT,甚至接近 BERT-base 的性能。上述介紹的幾種模型都利用了層次剪枝結合蒸餾的操作。MobileBERT[225]則主要通過削減每層的維度,在保留 24 層的情況下,可以減少了 4.3 倍的參數(shù)的同時提升 4 倍速度。在 GLUE 上也只比BERT-base 低了 0.6 個點,效果好于 TinyBERT 和DistillBERT。此外,MobileBERT 與 TinyBERT 還有一點不同,就是在預訓練階段蒸餾之后,直接在MobileBERT 上用任務數(shù)據(jù)微調,而不需要再進行微調階段的蒸餾,更加便捷。

綜上,BERT 壓縮在近些年的發(fā)展還是較為顯著的。這些方法對后 BERT 時代出現(xiàn)的大型預訓練模型的如 GPT 系列等單向或雙向 Transformer 模型的壓縮具有很大借鑒意義。

推薦系統(tǒng)

近些年,推薦系統(tǒng)(Recommender Systems, RS) 被廣泛應用于電商、短視頻、音樂等系統(tǒng)中,對各個行業(yè)的發(fā)展起到了很大的促進作用.推薦系統(tǒng)通過分析用戶的行為,從而得出用戶的偏好,為用戶推薦個性化的服務.因此,推薦系統(tǒng)在相關行業(yè)中具有很高的商業(yè)價值.深度學習應用于推薦系統(tǒng)同樣面臨著模型復雜度和效率的問題.但是,目前關于推薦系統(tǒng)和知識蒸餾的工作還相對較少.本文在表7中整理了目前收集到的相關文獻,可供研究人員參考.

總結

近年來,知識蒸餾逐漸成為研究熱點而目前絕大多數(shù)優(yōu)秀的論文都是以英文形式存在,關于系統(tǒng)性介紹知識蒸餾的中文文獻相對缺失;并且知識蒸餾發(fā)展過程中融入了多個人工智能領域,相關文獻紛繁復雜,不易于研究人員對該領域的快速、全面地了解.鑒于此,本文對知識蒸餾的相關文獻進行了分類整理和對比,并以中文形式對知識蒸餾領域的研究進展進行了廣泛而全面的介紹.首先介紹了知識蒸餾的背景和整體框架.然后分別按照知識傳遞的形式、學習方式、學習目的、交叉領域的結合對知識蒸餾的相關工作進行了分類介紹和對比,分析了各類方法的優(yōu)缺點和面臨的挑戰(zhàn),并對研究趨勢提出了見解.

本文還從計算機視覺、自然語言處理和推薦系統(tǒng)等方面概述了知識蒸餾在不同任務和場景的具體應用,對知識蒸餾原理和可解釋性的研究進行了探討.最后,從4個主要方面闡述了對知識蒸餾未來發(fā)展趨勢的分析.知識蒸餾通過教師-學生的結構為深度神經(jīng)網(wǎng)絡提供了一種新的學習范式,實現(xiàn)了信息在異構或同構的不同模型之間的傳遞.不僅能夠幫助壓縮模型和提升性能,還可以聯(lián)結跨域、跨模態(tài)的知識,同時避免隱私數(shù)據(jù)的直接訪問,在深度學習背景下的多種人工智能研究領域具有廣泛的應用價值和研究意義.目前,有關知識蒸餾的中文綜述性文章還比較缺失.希望本文對知識蒸餾未來的研究提供有力的借鑒和參考.


「深度學習中知識蒸餾」研究綜述的評論 (共 條)

分享到微博請遵守國家法律
安西县| 伊金霍洛旗| 迁安市| 锦屏县| 武宣县| 克山县| 惠来县| 宁河县| 台南市| 武川县| 望都县| 新源县| 阿鲁科尔沁旗| 泉州市| 达日县| 漠河县| 虞城县| 遵化市| 新民市| 抚顺市| 安宁市| 弋阳县| 都安| 开平市| 临湘市| 建阳市| 元阳县| 临海市| 驻马店市| 闵行区| 奉化市| 栾城县| 延长县| 巴林左旗| 华池县| 神池县| 南昌市| 卓尼县| 长沙市| 江华| 莆田市|