近年來,憑借大規模數據集和龐大的計算資源,使得以深度學習為代表的人工智能算法在諸多領域取得成功。其中計算機視覺領域的圖像分類技術蓬勃發展,并涌現出許多成熟的視覺任務分類任務模型。這些模型均需要利用大量的標注樣本進行訓練,但在實際場景中因諸多限制導致數據量稀少,往往很難獲得相應規模的高質量標注樣本。因此如何使用少量樣本進行學習已經逐漸成為當前的研究熱點。小樣本學習旨在通過少量樣本實現對新類別樣本的高效識別與處理。針對分類任務系統梳理了當前小樣本圖像分類的相關工作,小樣本學習主要采用元學習、度量學習和數據增強等深度學習方法。從有監督、半監督和無監督等層次歸納總結了小樣本圖像分類的研究進展和典型技術模型,以及這些模型方法在若干公共數據集上的表現,并從機制、優勢、局限性等方法進行對比分析。最后討論了當前小樣本圖像分類面臨的技術難點以及未來的發展趨勢。大規模標注數據集是深度學習成功的必要條 件之一[1-4]。在現實世界的真實場景中,許多領域并 不具有獲得大規模數據集的條件,這對于工作開展 十分不便;也有一些領域,涉及到隱私、成本、道 德等問題也很難獲得高質量數據。例如,在醫療診 斷領域,醫學圖像的來源是病例,而病例會因為隱 私等問題獲取難度較大;在半導體芯片缺陷檢測領 域,會面臨半導體芯片的型號不同和缺陷數據較少 等問題。為了解決諸多領域中數據有限和獲取難度較 大的問題,小樣本學習(Few-shot Learning,FSL) [5-8]方法被提出。小樣本學習是指訓練類別樣本較少 的情況下,進行相關的學習任務。機器通過學習大 量的基類(Base class)后,僅僅需要少量樣本就能快 速學習到新類(New class)。通常情況下,小樣本學 習能夠利用類別中的少量樣本,即一個或者幾個樣 本進行學習。例如,一個小朋友去動物園并沒有見 過‘黃鶯’這個動物,但是閱讀過有關動物書籍,書 籍上有‘黃鶯’的信息,通過學習書上的內容,小朋 友就知道動物園中那個動物是‘黃鶯’。這是因為人 們可以高效的利用以往的先驗知識,對現在的任務 快速理解。人們這種快速理解新事物的能力,也是 當前深度學習難以具備的。本文針對小樣本圖像分 類問題介紹小樣本學習的相關技術,主要介紹小樣 本圖像分類,小樣本圖像分類的最終目的是達到人 類的水平[9]。小樣本圖像分類問題建模如圖 1 所示。在圖示 中,將任務劃分為兩部分,訓練集(Training data)也 叫做支持集(Support data),其中分為 N 個數據類別, 每 N 個數據類別包括 K 個樣本,簡稱為 N-way K-shot 問題[10]。測試集(Test data)也叫做查詢集 (Query data)。查詢集的類別屬于支持集中的類別。解決 N-way K-shot 小樣本圖像分類問題,首先從輔 助的數據集學習先驗知識,再在標注有限的目標數 據集上利用已經學習的先驗知識進行圖像分類和 預測。
目前已經有一些關于小樣本學習各方面的綜述,趙凱琳等[11]對小樣本學習進行了綜述介紹,從基于模型微調、數據增強和遷移學習的三個方向來介紹小樣本學習的方法,并且進行了歸納總結;劉春磊等[12]將小樣本學習方法歸納為基于遷移學習的范式和基于元學習的范式,再按照改進策略的不同進行小樣本目標檢測綜述介紹;張振偉等[13]從基于度量學習、數據增強、模型結構、元學習等六個方面對小樣本目標檢測方法進行了總結分析。綜合近些年小樣本學習發展,元學習、度量學習和數據增強等深度學習方法已經逐漸成為解決小樣本圖像處理的主流方法。近些年來,隨著無監督[14]、半監督學習[15]和主動學習[16]的興起和發展,很多研究者也將其應用到小樣本圖像分類問題中。與這些不同綜述[11-13]不同,本文首先將這些方法在有監督、半監督和無監督三種范式下,如圖2 所示,再按照各種情況的不同方法,從度量學習、元學習、偽標注、對比學習等角度進行歸納總結,對比分析了這些方法的性能表現。并總結了各自的核心思想以及使用領域。文章的第一節介紹小樣本圖像分類框架及其數據集;第二、三、四節分別介紹在有監督、半監督和無監督情況下的小樣本圖像分類研究進展,以及在各種監督技術下的小樣本圖像分類方法總結和對比,第五、第六節對小樣本圖像分類方法核心思想、適用領域和優缺點進行對比分析,并提 出小樣本圖像分類的挑戰和未來發展方向。
深度學習模型通常限定在固定數據集中進行訓練,訓練完成之后模型無法隨著時間而擴展其行為. 將已訓練好的模型在新數據上訓練會出現災難性遺忘現象. 持續學習是一種能夠緩解深度學習模型災難性遺 忘的機器學習方法,它旨在不斷擴展模型的適應能力,讓模型能夠在不同時刻學習不同任務的知識. 目前,持 續學習算法主要分為 4 大方面,分別是正則化方法、記憶回放方法、參數孤立方法和綜合方法. 對這 4 大方面 方法的研究進展進行了系統總結與分析,梳理了衡量持續學習算法性能的評估方法,討論了持續學習的新興 研究趨勢. //www.yndxxb.ynu.edu.cn/yndxxbzrkxb/article/doi/10.7540/j.ynu.20220312?viewType=HTML 得益于更大的數據集、更強的計算能力以及 網絡結構創新,深度學習在圖像分類[1]、人臉識別[2] 等任務上已經實現了接近人類甚至超越人類的性 能. 然而大多數神經網絡只能在預先知道所有類的 批量學習設定下進行訓練直至擬合,當有新數據出 現時,必須使用全部數據重新訓練模型,以適應數 據分布變化[3] . 隨著移動設備和互聯網的飛速發展, 人們每天都會拍攝和分享大量圖片和視頻. 而從零 開始重新訓練模型是耗時且低效的,這就要求模型 擁有以序列方式進行持續學習和更新的能力,以適 應每天新產生的數據. 神經網絡從原來的批量學習模式轉變為序列 學習模式時,很容易出現對舊知識的遺忘,這意味 著,在使用新數據更新模型后,模型在先前學習的 任務中所達到的性能會急劇下降[4],出現災難性遺 忘. 早在 30 多年前,人們就在多層感知器中發現了 災難性遺忘現象[5],產生災難性遺忘的根本原因是 新任務訓練過程需要改變神經網絡權值,這不可避 免地修改了某些對于舊任務來說至關重要的權重, 使得模型不再適用于舊任務. 與此相反,人類可以 不斷學習和適應新知識,并且在自身積累新知識的 同時,也會對原有知識進行了補充和修正,學習新 知識很少會導致人類災難性地忘記之前的知識[6] . 如自然視覺系統,先前的知識得到了保留的同時, 新的視覺信息被不斷地整合到已有知識中. 為了克服災難性遺忘,學習系統一方面要在新 任務上表現出獲取新知識和提煉現有知識的能力, 另一方面要防止新任務對現有知識的顯著干擾. 持 續學習,也稱為終身學習,它建立在不斷學習外部 世界的想法之上,神經網絡通過持續學習算法能夠 漸進地學習新知識,并且保留過去學習的內容. 近 年來,如圖 1 所示,持續學習在計算機視覺領域獲 得了蓬勃發展,同時各單位也如火如荼開展著持續 學習的相關比賽[7] . 鑒于持續學習深刻的應用場景 和該領域飛速的發展,本文對持續學習的研究工作 進行綜述,從而幫助讀者掌握持續學習研究的最新 趨勢.
在人工智能迅速發展的今天,深度神經網絡廣泛應用于各個研究領域并取得了巨大的成功,但也同樣面 臨著諸多挑戰.首先,為了解決復雜的問題和提高模型的訓練效果,模型的網絡結構逐漸被設計得深而復雜,難以 適應移動計算發展對低資源、低功耗的需求.知識蒸餾最初作為一種從大型教師模型向淺層學生模型遷移知識、提 升性能的學習范式被用于模型壓縮.然而隨著知識蒸餾的發展,其教師學生的架構作為一種特殊的遷移學習方 式,演化出了豐富多樣的變體和架構,并被逐漸擴展到各種深度學習任務和場景中,包括計算機視覺、自然語言處 理、推薦系統等等.另外,通過神經網絡模型之間遷移知識的學習方式,可以聯結跨模態或跨域的學習任務,避免知 識遺忘;還能實現模型和數據的分離,達到保護隱私數據的目的.知識蒸餾在人工智能各個領域發揮著越來越重要 的作用,是解決很多實際問題的一種通用手段.本文將近些年來知識蒸餾的主要研究成果進行梳理并加以總結,分析該領域所面臨的挑戰,詳細闡述知識蒸餾的學習框架,從多種分類角度對知識蒸餾的相關工作進行對比和分析, 介紹了主要的應用場景,在最后對未來的發展趨勢提出了見解.
隨著深度神經網絡的崛起和演化,深度學習在 計算機視覺、自然語言處理、推薦系統等 各個人工智能的相關領域中已經取得了重大突破. 但是,深度學習在實際應用過程中的也存在著一些 巨大的挑戰.首先,為了應對錯綜復雜的學習任務, 深度學習的網絡模型往往會被設計得深而復雜:比 如早期的LeNet模型只有5層,發展到目前的通用 的ResNet系列模型已經有152層;伴隨著模型的 復雜化,模型的參數也在逐漸加重.早期的模型參數 量通常只有幾萬,而目前的模型參數動輒幾百萬.這 些模型的訓練和部署都需要消耗大量的計算資源, 且模型很難直接應用在目前較為流行的嵌入式設備 和移動設備中.其次,深度學習應用最成功的領域是 監督學習,其在很多任務上的表現幾乎已經超越了 人類的表現.但是,監督學習需要依賴大量的人工標 簽;而要實現大規模的標簽任務是非常困難的事情, 一方面是數據集的獲取,在現實場景中的一些數據 集往往很難直接獲取.比如,在醫療行業需要保護患 者的隱私數據,因而數據集通常是不對外開放的.另 一方面,大量的用戶數據主要集中在各個行業的頭 部公司的手中,一些中小型公司無法積累足夠多的 真實用戶數據,因此模型的效果往往是不理想的;此 外,標注過程中本身就需要耗費很大的人力、物力、 財力,這將極大限制人工智能在各個行業中的發展 和應用.最后,從產業發展的角度來看,工業化將逐 漸過渡到智能化,邊緣計算逐漸興起預示著AI將 逐漸與小型化智能化的設備深度融合,這也要求模 型更加的便捷、高效、輕量以適應這些設備的部署. 針對深度學習目前在行業中現狀中的不足, Hinton等人于2015首次提出了知識蒸餾(Knowledge Distillation,KD)[10],利用復雜的深層網絡模型向淺 層的小型網絡模型遷移知識.這種學習模型的優勢在于它能夠重用現有的模型資源,并將其中蘊含的 信息用于指導新的訓練階段;在跨領域應用中還改 變了以往任務或場景變化都需要重新制作數據集和 訓練模型的困境,極大地節省了深度神經網絡訓練 和應用的成本.通過知識蒸餾不僅能夠實現跨領域 和跨模態數據之間的聯合學習還能將模型和知識 表示進行分離,從而在訓練過程中將教師模型作為 “黑盒”處理,可以避免直接暴露敏感數據,達到隱私 保護效果.
知識蒸餾作為一種新興的、通用的模型壓縮和 遷移學習架構,在最近幾年展現出蓬勃的活力,其發 展歷程也大致經歷了初創期,發展期和繁榮期.在初 創期,知識蒸餾從輸出層逐漸過渡到中間層,這時期 知識的形式相對簡單,較為代表性的中間層特征蒸 餾的方法為Hints.到了發展期,知識的形式逐 漸豐富、多元,不再局限于單一的節點,這一時期較 為代表性的蒸餾方法有AT、FT.在2019年前 后,知識蒸餾逐漸吸引了深度學習各個領域研究人 員的目光,使其應用得到了廣泛拓展,比如在模型應 用上逐漸結合了跨模態、跨領域、持續學習、隱私保護等;在和其他領域交叉過程 中又逐漸結合了對抗學習、強化學習、元 學習、自動機器學習、自監督學習等. 如下圖1為知識蒸餾的發展歷程和各個時期較為代 表性的工作.
知識蒸餾雖然有了較為廣闊的發展,但是在其 發展過程和實際應用中也同樣面臨著這一些挑戰;知識蒸餾的挑戰主要可以分為實際應用中面臨的挑 戰和模型本身理論上的挑戰.應用中的挑戰主要有 模型問題、成本問題;而理論上面存在的主要挑戰也 是目前深度學習普遍存在的一些挑戰,包括模型的 不可解釋性等: 模型問題.在實際工業應用中針對不同的任務 教師模型多樣,而如果教師和學生模型不匹配,可能 會使學生模型無法模仿深層大容量的教師模型,即 大模型往往不能成為更好的老師.因此,應用中需要 考慮深層模型和淺層模型之間的容量差距,選擇相 匹配的教師學生模型. 成本問題.模型訓練過程對超參數較為敏感以及 對損失函數依賴較大,而相關原因很難用原理去解 釋,需要大量的實驗,因而模型的試錯成本相對較高. 可解釋性不足.關于知識蒸餾的原理解釋主要 是從輸出層標簽平滑正則化、數據增強等角度出發, 而關于其他層的方法原理解釋相對不足;目前,雖然 關于泛化邊界的研究也在興起,但是并不能全面解 釋知識的泛化問題,還需要有更進一步的探究,才能 保證理論的完備性.
目前,知識蒸餾已經成為一個熱門的研究課題, 關于知識蒸餾的論文和研究成果非常豐富.各種新 方法、新任務、新場景下的研究紛繁復雜,使得初學 者難以窺其全貌.當前已有兩篇關于知識蒸餾的綜 述,均發表于2021年.相較于前者,本文在 分類上作了進一步細化,如在知識形式上,本文關注 到了參數知識及蒸餾中常見的中間層的同構和異構 問題;雖然該文獻中也提及了基于圖的算法,但是本 文以為基于圖形式構建的知識表示是一種新興的、 獨立的、特殊的知識形式,單獨歸為一類更為合理. 相較于后者[40]本文在結構分類上更加宏觀,以知識 形式、學習方式和學習目的為主要內容將知識蒸餾 的基礎解析清楚,而后在此基礎之上對其交叉領域 和主要應用進行展開.本文的主要貢獻可總結如下:(1)結構較為完善,分類更加細化.對于知識的 分類,本文是依據知識蒸餾的發展脈絡對其進行歸 類并細化,增加了中間層知識、參數知識、圖表示知 識,完整地涵蓋了目前知識的全部形式.在文章的結 構上,既保證了分類的綜合性,又避免了過多分類造 成的雜糅,更為宏觀. (2)對比詳細,便于掌握.本文以表格的方式對 同的方法之間的優缺點、適用場景等進行詳細的總 結對比,以及對比了不同知識形式蒸餾的形式化方 法,使得讀者能夠快速準確地區分其中的不同點.(3)內容完整,覆蓋全面.本文遵循了主題式分 類原則不僅分析了單篇文獻,還分析相關領域中知 識蒸餾的重要研究.除此之外,本文以獨立章節對知 識蒸餾的學習目的,原理和解釋,發展趨勢等方面做 了較為全面的闡釋. 本文接下來將從知識蒸餾的整體框架從發,并 對其各個分類進行詳細的闡述,使得讀者能夠從宏 觀上對知識蒸餾有更全面的了解,以便更好地開展 相關領域的學習與研究.本文將按照以下結構組織:第2節首先介紹知識蒸餾的理論基礎及分類;第3~6節分別按照知識傳遞形式、學習方式、學習 目的、交叉領域的順序,從4個不同角度對知識蒸餾 的相關工作進行分類和對比,并分析不同研究方向 面臨的機遇和挑戰;第7節列舉知識蒸餾在計算機 視覺、自然語言處理、推薦系統等領域的一些應用性 成果;第8節對知識蒸餾的原理和可解釋性方面的 工作進行梳理;最后,對知識蒸餾在深度學習場景 下的未來發展趨勢提出一些見解,并進行全文總結.
理論基礎及分類**
知識蒸餾本質上屬于遷移學習的范疇,其主要 思路是將已訓練完善的模型作為教師模型,通過控 制“溫度”從模型的輸出結果中“蒸餾”出“知識”用于 學生模型的訓練,并希望輕量級的學生模型能夠學 到教師模型的“知識”,達到和教師模型相同的表現. 這里的“知識”狹義上的解釋是教師模型的輸出中 包含了某種相似性,這種相似性能夠被用遷移并輔 助其他模型的訓練,文獻[10]稱之為“暗知識”;廣義 上的解釋是教師模型能夠被利用的一切知識形式, 如特征、參數、模塊等等.而“蒸餾”是指通過某些 方法(如控制參數),能夠放大這種知識的相似性,并 使其顯現的過程;由于這一操作類似于化學實驗中 “蒸餾”的操作,因而被形象地稱為“知識蒸餾”.
如圖3是知識蒸餾模型的整體結構.其由一個 多層的教師模型和學生模型組成,教師模型主要負 責向學生模型傳遞知識,這里的“知識”包括了標簽 知識、中間層知識、參數知識、結構化知識、圖表示知 識.在知識的遷移過程中,通過在線或離線等不同的 學習方式將“知識”從教師網絡轉移到了學生網絡. 為了便于讀者快速學習和對比其中的差異,作者將 不同知識傳遞形式下的蒸餾方法的形式化表示及其 相關解釋整理為表1所示結果.此外,本文對知識蒸 餾相關研究進行了總結,主要從知識傳遞形式、學習 的方式、學習的目的、交叉領域、主要應用等方面對 其進行分類,其分類框架如圖4所示,具體內容將在 后續的文章中展開.
知識傳遞形式
知識蒸餾方法的核心在于“知識”的設計、提取和 遷移方式的選擇,通常不同類型的知識來源于網絡模 型不同組件或位置的輸出.根據知識在教師學生模型 之間傳遞的形式可以將其歸類為標簽知識、中間層知 識、參數知識、結構化知識和圖表示知識.標簽知識一 般指在模型最后輸出的logits概率分布中的軟化目標 信息;中間層知識一般是在網絡中間層輸出的特征圖 中表達的高層次信息;參數知識是訓練好的教師模型 中存儲的參數信息;結構化知識通常是考慮多個樣本 之間或單個樣本上下文的相互關系;圖表示知識一般 是將特征向量映射至圖結構來表示其中的關系,以滿 足非結構化數據表示的學習需求.本節主要對蒸餾知 識的5類傳遞形式加以介紹,理清主流的知識蒸餾基礎 方法,后面介紹的各類蒸餾方法或具體應用都是以此 為基礎.相關的優缺點和實驗對比,見表2~表4所示.
學習方式
類似于人類教師和學生間的學習模式,神經網 絡的知識蒸餾學習方式也有著多種模式.其中,學生 模型基于預訓練好的、參數固定的教師模型進行蒸 餾學習被稱為離線蒸餾.相應 地,教師和學生模型同時參與訓練和參數更新的模 式則稱為在線蒸餾.如果學生 模型不依賴于外在模型而是利用自身信息進行蒸餾 學習,則被稱為自蒸餾學習,如圖7 所示.一般而言,蒸餾框架都是由一個教師模型和一 個學生模型組成,而有多個模型參與的蒸餾稱為多模型蒸餾;目前,大部分 蒸餾框架都是默認源訓練數據集可用的,但最近的 很多研究在不使用任何已知數據集的情況下實現 蒸餾,這類統稱為零樣本蒸餾(又稱為無數據蒸餾,).特別地,出于一些 隱私保護等目的,教師模型可以享有一些特權信息而 學生模型無法訪問,在這種約束下,形成特權蒸餾 學習.接下來,將分別介紹不同蒸餾學習方式的代表性工作.
主要應用
**計算機視覺 **
計算機視覺一直是人工智能的研究熱點領域之 一.近年來,知識蒸餾被廣泛應用于各種視覺任務達 到模型壓縮、遷移學習和隱私保護等目標.雖然知識 蒸餾的應用十分廣泛,但是由于各個研究方向的熱 度不同,所以相關研究的論文數量也會有很大的差異.本文重點引用了知識蒸餾在視覺上的熱點方向, 并列舉相關論文的方法供讀者查閱學習,而對于其 他一些方向可能存在取舍.目前,應用知識蒸餾的視 覺研究主要集中在視覺檢測和視覺分類上.視覺檢 測主要有目標檢測、人臉識別、行人檢測、姿勢檢測;而視覺分類的研究熱點主要是語義分割,如表5所 示.另外,視覺中還有一些其他應用比如視頻分 類[105]、深度估計和光流/場景流估計[169]等等.
**自然語言處理 **
自然語言處理(NaturalLanguageProcess, NLP)的發展非常迅速,從RNN、LSTM、ELMo再 到如今非常熱門的BERT,其模型結構逐漸變的非 常的深而復雜,需要耗費大量的資源和時間.這樣的 模型幾乎無法直接部署.因而,獲得輕量級、高效、有 效的語言模型顯得極為迫切.于是,知識蒸餾在 NLP領域也得到了極大的重視.目前,結合知識蒸 餾較為廣泛的NLP任務主要有機器翻譯(Neural MachineTranslation,NMT),問答系統(Question AnswerSystem,QAS)等領域.如表6,本節列舉了 知識蒸餾結合神經機器翻譯和問答系統的代表性的 研究工作.另外,BERT模型在近些年被廣泛應用于 NLP的各個領域,其重要性不言而喻,因此,我們在 表6中一并列舉并在下面對其作詳細介紹.
BERT模型是近年來自然語言中,應用最廣泛的 工具之一,它是由雙向編碼器表示的Transformer模 型組成.由于其強大的編碼表示能力,目前在自然語 言的各個任務中被廣泛應用.但是,BERT模型結構 非常復雜,參數量巨大,很難直接應用于模型的訓 練.目前的應用主要采用的預訓練加微調的方法,因 此,對BERT模型的壓縮顯得尤為必要.目前,這方 面的研究已經吸引的很多研究者的關注.提出的方法 主要有剪枝、量化、蒸餾、參數共享、權重分解.但是, 量化對模型的提升效果有限,權重分解和參數共 享等工作相對較少.因此,主要工作集中在剪枝和 蒸餾.此處將主要介紹表中列舉的較為經典的幾種 模型.首先,知識蒸餾結合BERT較早的方法是 DistilledBiLSTM[221]于2019年提出,其主要思想是 將BERTlarge蒸餾到了單層的BiLSTM中,其效果 接近EMLO,其將速度提升15倍的同時使模型的參 數量減少100倍.后來的研究方法逐漸豐富,如 BERTPKD[222]主要從教師的中間層提取豐富的知 識,避免在蒸餾最后一層擬合過快的現象.Distill BERT[223]在預訓練階段進行蒸餾,能夠將模型尺寸減 小40%,同時能將速度能提升60%,并且保留教師模 型97%的語言理解能力,其效果好于BERTPKD. TinyBERT[224]提出的框架,分別在預訓練和微調階 段蒸餾教師模型,得到了速度提升9.4倍但參數量 減少7.5倍的4層BERT,其效果可以達到教師模 型的96.8%.同樣,用這種方法訓出的6層模型的 性能超過了BERTPKD和DistillBERT,甚至接近BERTbase的性能.上述介紹的幾種模型都利用了 層次剪枝結合蒸餾的操作.MobileBERT[225]則主要 通過削減每層的維度,在保留24層的情況下,可以 減少4.3倍的參數同時提升4倍速度.在GLUE上 也只比BERTbase低了0.6個點,效果好于Tiny BERT和DistillBERT.此外,MobileBERT與Tiny BERT還有一點不同,就是在預訓練階段蒸餾之后, 直接在推測缺乏MobileBERT有一點不同,就是在 預訓練階段蒸餾之后,直接在MobileBERT上用任 務數據微調,而不需要再進行微調階段的蒸餾,更加 便捷.
綜上,BERT壓縮在近些年的發展還是較為顯 著的.這些方法對后BERT時代出現的大型預訓練 模型的如GPT系列等單向或雙向Transformer模 型的壓縮具有很大借鑒意義.
推薦系統
近些年,推薦系統(RecommenderSystems,RS) 被廣泛應用于電商、短視頻、音樂等系統中,對各個 行業的發展起到了很大的促進作用.推薦系統通 過分析用戶的行為,從而得出用戶的偏好,為用戶 推薦個性化的服務.因此,推薦系統在相關行業中 具有很高的商業價值.深度學習應用于推薦系統 同樣面臨著模型復雜度和效率的問題.但是,目前 關于推薦系統和知識蒸餾的工作還相對較少.本文 在表7中整理了目前收集到的相關文獻,可供研究 人員參考.
總結
近年來,知識蒸餾逐漸成為研究熱點而目前絕 大多數優秀的論文都是以英文形式存在,關于系統 性介紹知識蒸餾的中文文獻相對缺失;并且知識蒸 餾發展過程中融入了多個人工智能領域,相關文獻 紛繁復雜,不易于研究人員對該領域的快速、全面地 了解.鑒于此,本文對知識蒸餾的相關文獻進行了分 類整理和對比,并以中文形式對知識蒸餾領域的研 究進展進行了廣泛而全面的介紹.首先介紹了知識 蒸餾的背景和整體框架.然后分別按照知識傳遞的 形式、學習方式、學習目的、交叉領域的結合對知識 蒸餾的相關工作進行了分類介紹和對比,分析了各 類方法的優缺點和面臨的挑戰,并對研究趨勢提出 了見解.本文還從計算機視覺、自然語言處理和推薦 系統等方面概述了知識蒸餾在不同任務和場景的具 體應用,對知識蒸餾原理和可解釋性的研究進行了 探討.最后,從4個主要方面闡述了對知識蒸餾未來 發展趨勢的分析. 知識蒸餾通過教師學生的結構為深度神經網 絡提供了一種新的學習范式,實現了信息在異構或 同構的不同模型之間的傳遞.不僅能夠幫助壓縮模 型和提升性能,還可以聯結跨域、跨模態的知識,同 時避免隱私數據的直接訪問,在深度學習背景下的 多種人工智能研究領域具有廣泛的應用價值和研究 意義.目前,有關知識蒸餾的中文綜述性文章還比較 缺失.希望本文對知識蒸餾未來的研究提供有力的 借鑒和參考.
目前,以深度學習為代表的人工智能算法憑借超大規模數據集以及強大的計算資源,在圖像分類、生物特征識別、醫療 輔助診斷等領域取得了優秀的成果并成功落地.然而,在許多實際的應用場景中,因諸多限制,研究人員無法獲取到大量樣本 或者獲取樣本的代價過高,因此研究圖像分類任務在小樣本情形下的學習算法成為了推動智能化進程的核心動力,同時也成為 了當下的研究熱點.小樣本學習指在監督信息數量有限的情況下進行學習并解決問題的算法.首先,從機器學習理論的角度 描述了小樣本學習困難的原因;其次,根據小樣本學習算法的設計動機將現有算法歸為表征學習、數據擴充、學習策略三大類, 并分析其優缺點;然后,總結了常用的小樣本學習評價方法以及現有模型在公用數據集上的表現;最后,討論了小樣本圖像分類 技術的難點及未來的研究趨勢,為今后的研究提供參考。
近年來,人工智能技術在大數據時代迎來了高速發展,從 早期的學術探索迅速轉變為實際應用.目前,以深度學習為 代表的人工智能算法憑借超大規模數據集以及強大的計算資 源,在圖像分類、生物特征識別、醫療輔助診斷等領域取得了優秀的成果并成功落地. 然而,當今現實場景中通常并不具備獲得大規模可訓練 數據的條件,這不利于許多傳統行業的智能化轉型.另一方 面,由于圖像分類算法在實際應用中起著關鍵性的作用,因此 面向圖像分類的小樣本學習的關鍵算法研究成為了產業智能 化轉型的驅動引擎之一.
深度學習以大規模數據集為前提,在圖像分類、目標檢 測、文本分析[1G3]等領域取得了顯著的成功.然而在實際場景 中,首先,由于成本、隱私、安全或道德問題,相關研究者很難 或不可能獲得大規模、高質量的數據及標注.例如,在醫療領 域,醫學影像的產生來源于病例,但少量的病例并不能夠輔助 機器對醫療影像進行分析.其次,在算法設計層面,研究者期 望機器學會以人類的方式進行學習,即在獲取少量樣本的情 況下,對樣本進行分類和識別,并且具有快速理解新概念并將 其泛化的能力. 為了能夠在監督信息數量有限的情況下進行學習,針對 小樣本學習(FewGshotLearning)[4G8]的研究應運而生.在小 樣本分類中,模型在一組具有豐富樣本的類別集上進行訓練, 這些類稱為基類,然后在類別不交叉的僅具有少量樣本的另 一組類別集(新類)上進行訓練與測試.
目前,針對小樣本學習的研究工作越來越豐富,隨著深度 學習的發展,涌現了很多新穎的小樣本學習方法[9G11].例如, 在模型表征階段采用自監督學習以更好地表征出圖像[12G15]; 在數據 擴 充 階 段,采 用 從 原 始 域 擴 充 或 從 語 義 空 間 擴 充 等[11,16G17]方式來處理小樣本學習任務;在學習階段,使用遷移 學習、度量學習、元學習等算法[18G24]以更好地尋找到一個有 良好泛化能力的模型.現有的小樣本綜述文獻[25G26]通常從 算法類別的角度進行歸納總結,而本文將從理論誤差分析以 及算法設計 動 機 的 角 度 來 進 行 綜 述,并 覆 蓋 近 年 來 取 得 的 成果. 本文首先從機器學習理論的角度描述了小樣本學習難以 泛化的原因;其次,依據小樣本學習算法的設計動機將現有算 法歸為表征學習、數據擴充、學習策略三大類,并評價其優缺 點;然后,總結了常用的小樣本學習評價方法以及現有模型在 公用數據集上的表現;最后,提出了一些有前景的研究方向, 為今后的研究提供參考。
深度學習在大量領域取得優異成果,但仍然存在著魯棒性和泛化性較差、難以學習和適應未觀測任務、極其依賴大規模數據等問題.近兩年元學習在深度學習上的發展,為解決上述問題提供了新的視野.元學習是一種模仿生物利用先前已有的知識,從而快速學習新的未見事物能力的一種學習定式.元學習的目標是利用已學習的信息,快速適應未學習的新任務.這與實現通用人工智能的目標相契合,對元學習問題的研究也是提高模型的魯棒性和泛化性的關鍵.近年來隨著深度學習的發展,元學習再度成為熱點,目前元學習的研究百家爭鳴、百花齊放. 本文從元學習的起源出發,系統地介紹元學習的發展歷史,包括元學習的由來和原始定義,然后給出當前元學習的通用定義,同時總結當前元學習一些不同方向的研究成果,包括基于度量的元學習方法、基于強泛化新的初始化參數的元學習方法、基于梯度優化器的元學習方法、基于外部記憶單元的元學方法、基于數據增強的元學方法等. 總結其共有的思想和存在的問題,對元學習的研究思想進行分類,并敘述不同方法和其相應的算法.最后論述了元學習研究中常用數據集和評判標準,并從元學習的自適應性、進化性、可解釋性、連續性、可擴展性展望其未來發展趨勢.
引言
隨著計算設備并行計算性能的大幅度 進步,以及近些年深度神經網絡在各個領域 不斷取得重大突破,由深度神經網絡模型衍 生而來的多個機器學習新領域也逐漸成型, 如強化學習、深度強化學習[1] [2] 、深度監督 學習等。在大量訓練數據的加持下,深度神 經網絡技術已經在機器翻譯、機器人控制、 大數據分析、智能推送、模式識別等方面取 得巨大成果[3] [4] [5] 。
實際上在機器學習與其他行業結合的 過程中,并不是所有領域都擁有足夠可以讓 深度神經網絡微調參數至收斂的海量數據, 相當多領域要求快速反應、快速學習,如新 興領域之一的仿人機器人領域,其面臨的現 實環境往往極為復雜且難以預測,若按照傳 統機器學習方法進行訓練則需要模擬所有 可能遇到的環境,工作量極大同時訓練成本 極高,嚴重制約了機器學習在其他領域的擴 展,因此在深度學習取得大量成果后,具有 自我學習能力與強泛化性能的元學習便成 為通用人工智能的關鍵。
元學習(Meta-learning)提出的目的是 針對傳統神經網絡模型泛化性能不足、對新 種類任務適應性較差的特點。在元學習介紹 中往往將元學習的訓練和測試過程類比為 人類在掌握一些基礎技能后可以快速學習并適應新任務,如兒童階段的人類也可以快 速通過一張某動物照片學會認出該動物,即 機 器 學 習 中 的 小 樣 本 學 習 ( Few-shot Learning)[6] [7] ,甚至不需要圖像,僅憑描 述就可學會認識新種類,對應機器學習領域 中的(Zero-shot Learning)[8] ,而不需要大 量該動物的不同照片。人類在幼兒階段掌握 的對世界的大量基礎知識和對行為模式的 認知基礎便對應元學習中的“元”概念,即一 個泛化性能強的初始網絡加上對新任務的 快速適應學習能力,元學習的遠期目標為通 過類似人類的學習能力實現強人工智能,當 前階段體現在對新數據集的快速適應帶來 較好的準確度,因此目前元學習主要表現為 提高泛化性能、獲取好的初始參數、通過少 量計算和新訓練數據即可在模型上實現和 海量訓練數據一樣的識別準確度,近些年基 于元學習,在小樣本學習領域做出了大量研 究[9] [10] [11] [12] [13] [14] [15] [16] [17] ,同時為模擬 人類認知,在 Zero-shot Learning 方向也進行 了大量探索[18] [19] [20] [21] [22] 。
在機器學習盛行之前,就已產生了元學習的相關概念。當時的元學習還停留在認知 教育科學相關領域,用于探討更加合理的教 學方法。Gene V. Glass 在 1976 年首次提出 了“元分析”這一概念[23] ,對大量的分析結 果進行統計分析,這是一種二次分析辦法。G Powell 使用“元分析”的方法對詞匯記憶 進行了研究[24] ,指出“強制”和“誘導”意象有 助于詞匯記憶。Donald B.Maudsley 在 1979 年首次提出了“元學習”這一概念,將其描述 為“學習者意識到并越來越多地控制他們已 經內化的感知、探究、學習和成長習慣的過 程”,Maudsley 將元學習做為在假設、結構、 變化、過程和發展這 5 個方面下的綜合,并 闡述了相關基本原則[25] 。BIGGS J.B 將元學 習描述為“意識到并控制自己的學習的狀 態” [26] ,即學習者對學習環境的感知。P Adey 將元學習的策略用在物理教學上[27] , Vanlehn K 探討了輔導教學中的元學習方法 [28] 。從元分析到元學習,研究人員主要關 注人是如何意識和控制自己學習的。一個具 有高度元學習觀念的學生,能夠從自己采用 的學習方法所產生的結果中獲得反饋信息,進一步評價自己的學習方法,更好地達到學 習目標[29] 。隨后元學習這一概念慢慢滲透 到機器學習領域。P.Chan 提出的元學習是一 種整合多種學習過程的技術,利用元學習的 策略組合多個不同算法設計的分類器,其整 體的準確度優于任何個別的學習算法[30] [31] [32] 。HilanBensusan 提出了基于元學習的決 策樹框架[33] 。Vilalta R 則認為元學習是通 過積累元知識動態地通過經驗來改善偏倚 的一種學習算法[34] 。
Meta-Learning 目前還沒有確切的定義, 一般認為一個元學習系統需結合三個要求:系統必須包含一個學習子系統;利用以前學 習中提取的元知識來獲得經驗,這些元知識 來自單個數據集或不同領域;動態選擇學習偏差。
元學習的目的就是為了設計一種機器學習模型,這種模型有類似上面提到的人的 學習特性,即使用少量樣本數據,快速學習 新的概念或技能。經過不同任務的訓練后, 元學習模型能很好的適應和泛化到一個新任務,也就學會了“Learning to learn”。
小樣本學習旨在通過少量樣本學習到解決問題的模型.近年來在大數據訓練模型的趨勢下,機器學習和深度學習在許多領域中取得了成功.但是在現實世界中的很多應用場景中,樣本量很少或者標注樣本很少,而對大量無標簽樣本進行標注工作將會耗費很大的人力.所以,如何用少量樣本進行學習就成為了目前人們需要關注的問題.本文系統梳理了當前小樣本學習的相關工作,具體介紹了基于模型微調、基于數據增強和基于遷移學習三大類小樣本學習模型與算法的研究進展;本文將基于數據增強的方法細分為基于無標簽數據、基于數據合成和基于特征增強三類,將基于遷移學習的方法細分為基于度量學習、基于元學習和基于圖神經網絡三類.本文還總結了目前常用的小樣本數據集,以及代表性的小樣本學習模型在這些數據集上的實驗結果,隨后對小樣本學習的現狀和挑戰進行了概述,最后展望了小樣本學習的未來發展方向.
//www.jos.org.cn/jos/ch/reader/create_pdf.aspx?file_no=6138&journal_id=jos
隨著大數據時代的到來,深度學習模型已經在圖像分類、文本分類等任務中取得了先進成果.但深度學習模型的成功很大程度 上依賴于大量訓練數據,而在現實世界的真實場景中某些類別只有少量數據或少量標注數據,而對無標簽數據進行標注將會消耗 大量的時間和人力.與此相反,人類只需要通過少量數據就能做到快速學習.例如一個五六歲的小孩子從未見過企鵝,但如果給他看 過一張企鵝的圖像,當他進入動物園看到真正的企鵝時,就會馬上認出這是自己曾經在圖像上見過的“企鵝”,這就是機器學習和人類學習之間存在的差距.受到人類學習觀點的啟發[1],小樣本學習[2] [3](few-shot learning)的概念被提出,使得機器學習更加靠近人類思維.
早在 20 世紀八九十年代,就有一些研究人員注意到了單樣本學習(one-shot learning)的問題,直到 2003 年 Li 等[4]才正式提出了 單樣本學習的概念.他們認為當新的類別只有一個或幾個帶標簽的樣本時,已經學習到的舊類別可以幫助預測新類別[5].小樣本學 習也叫作少樣本學習(low-shot learning) [7],其目標是從少量樣本中學習到解決問題的方法.與小樣本學習相關的概念還有零樣本學 習(zero-shot learning)等.零樣本學習是指在沒有訓練數據的情況下,利用類別的屬性等信息訓練模型,從而識別新類別.
小樣本學習的概念最早從計算機視覺(Computer Vision) [8]領域興起,近幾年受到廣泛關注,在圖像分類任務中已有很多性能優 異的算法模型[34][37][45].但是在自然語言處理領域(Natural Language Processing) [9]的發展較為緩慢,原因在于圖像和語言特性不同.圖 像相比文本更為客觀,所以當樣本數量較少時,圖像的特征提取比文本更加容易[87].不過近年來小樣本學習在自然語言處理領域也 有了一些研究和發展[10][46][48].根據所采用方法的不同,本文將小樣本學習分為基于模型微調、基于數據增強和基于遷移學習三種. 基于模型微調的方法首先在含有大量數據的源數據集上訓練一個分類模型,然后在含有少量數據的目標數據集上對模型進行微 調.但這種做法可能導致模型過擬合,因為少量數據并不能很好地反映大量數據的真實分布情況.為解決上述過擬合的問題,基于數 據增強和基于遷移學習的小樣本學習方法被提出.基于數據增強的方法是利用輔助數據集或者輔助信息增強目標數據集中樣本的 特征或擴充對目標數據集,使模型能更好地提取特征.本文根據學習方法不同,將基于數據增強的小樣本學習方法進一步細分為基 于無標簽數據、基于數據合成和基于特征增強三類方法.基于遷移學習的方法是目前比較前沿的方法,是指將已經學會的知識遷移 到一個新的領域中.本文根據學習框架將基于遷移學習的方法細分為基于度量學習、基于元學習和基于圖神經網絡(Graph Neural Networks)的方法.在度量學習的框架下目前已有許多性能較好的小樣本學習模型,例如比較著名的原型網絡(Prototypical Networks) [34]和匹配網絡(Matching Networks) [31]等.基于元學習的方法不僅在目標任務上訓練模型,而是從許多不同的任務中學習 元知識,當一個新的任務到來時,利用元知識調整模型參數,使模型能夠快速收斂.近年來隨著圖神經網絡的興起,研究者將圖神經網 絡也應用到小樣本學習中,取得了先進的結果.
除了圖像分類和文本分類這兩個主要任務,許多其他任務也面臨著小樣本問題.在計算機視覺應用中,利用小樣本學習進行人臉識別[8][60][82]、食品識別[61]、表情識別[66]、手寫字體識別[70][79]以及其他的圖像識別[65]. 在自然語言處理應用中,使用小樣本方法 實現對話系統[67]、口語理解[62],或者完成 NLP 的基本任務,例如 word embedding[63].在多媒體領域應用中,可以使用小樣本方法實現 影像提取[73]和聲紋識別[80]等.在生物與醫學領域,可以應用于疾病診斷[71][72]、臨床實驗[84]、護士能力評價[75]、農作物病害識別[69][81]、 水量分析[76]等.在經濟領域,可應用于產品銷量預測[77]等.在工業與軍事領域,可應用于齒輪泵壽命預測[78]、軍事目標識別[74]和目標 威脅評估[83]等.
本文首先從基于模型微調、基于數據增強和基于遷移學習三種方法介紹小樣本學習的研究進展,總結小樣本學習的幾個著名數據集以及已有模型在這些數據集上的實驗結果;接下來,本文對小樣本學習的研究現狀和主要挑戰進行總結;最后展望了未來的 發展趨勢.
隨著圖像處理,語音識別等人工智能技術的發展,很多學習方法尤其是采用深度學習框架的方法取得了優異的性能,在精度和速度方面有了很大的提升,但隨之帶來的問題也很明顯,這些學習方法如果要獲得穩定的學習效果,往往需要使用數量龐大的標注數據進行充分訓練,否則就會出現欠擬合的情況而導致學習性能的下降。因此,隨著任務復雜程度和數據規模的增加,對人工標注數據的數量和質量也提出了更高的要求,造成了標注成本和難度的增大。同時,單一任務的獨立學習往往忽略了來自其他任務的經驗信息,致使訓練冗余重復因而導致了學習資源的浪費,也限制了其性能的提升。為了緩解這些問題,屬于遷移學習范疇的多任務學習方法逐漸引起了研究者的重視。與單任務學習只使用單個任務的樣本信息不同,多任務學習假設不同任務數據分布之間存在一定的相似性,在此基礎上通過共同訓練和優化建立任務之間的聯系。這種訓練模式充分促進任務之間的信息交換并達到了相互學習的目的,尤其是在各自任務樣本容量有限的條件下,各個任務可以從其它任務獲得一定的啟發,借助于學習過程中的信息遷移能間接利用其它任務的數據,從而緩解了對大量標注數據的依賴,也達到了提升各自任務學習性能的目的。在此背景之下,本文首先介紹了相關任務的概念,并按照功能的不同對相關任務的類型進行劃分后再對它們的特點進行逐一描述。然后,本文按照數據處理模式和任務關系建模過程的不同將當前的主流算法劃分為兩大類:結構化多任務學習算法和深度多任務學習算法。其中,結構化多任務學習算法采用線性模型,可以直接針對數據進行結構假設并且使用原有標注特征表述任務關系,同時,又可根據學習對象的不同將其細分為基于任務層面和基于特征層面兩種不同結構,每種結構有判別式方法和生成式方法兩種實現手段。與結構化多任務學習算法的建模過程不同,深度多任務學習算法利用經過多層特征抽象后的深層次信息進行任務關系描述,通過處理特定網絡層中的參數達到信息共享的目的。緊接著,以兩大類算法作為主線,本文詳細分析了不同建模方法中對任務關系的結構假設、實現途徑、各自的優缺點以及方法之間的聯系。最后,本文總結了任務之間相似性及其緊密程度的判別依據,并且分析了多任務作用機制的有效性和內在成因,從歸納偏置和動態求解等角度闡述了多任務信息遷移的特點。 //gb.oversea.cnki.net/KCMS/detail/detail.aspx?filename=JSJX20190417000&dbcode=CJFD&dbname=CAPJ2019
摘要:圖像分類的應用場景非常廣泛,很多場景下難以收集到足夠多的數據來訓練模型,利用小樣本學習進行圖像分類可解決訓練數據量小的問題.本文對近年來的小樣本圖像分類算法進行了詳細綜述,根據不同的建模方式,將現有算法分為卷積神經網絡模型和圖神經網絡模型兩大類,其中基于卷積神經網絡模型的算法包括四種學習范式:遷移學習、元學習、對偶學習和貝葉斯學習;基于圖神經網絡模型的算法原本適用于非歐幾里得結構數據,但有部分學者將其應用于解決小樣本下歐幾里得數據的圖像分類任務,有關的研究成果目前相對較少.此外,本文匯總了現有文獻中出現的數據集并通過實驗結果對現有算法的性能進行了比較.最后,討論了小樣本圖像分類技術的難點及未來研究趨勢.