深度學習模型通常限定在固定數據集中進行訓練,訓練完成之后模型無法隨著時間而擴展其行為. 將已訓練好的模型在新數據上訓練會出現災難性遺忘現象. 持續學習是一種能夠緩解深度學習模型災難性遺 忘的機器學習方法,它旨在不斷擴展模型的適應能力,讓模型能夠在不同時刻學習不同任務的知識. 目前,持 續學習算法主要分為 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] . 鑒于持續學習深刻的應用場景 和該領域飛速的發展,本文對持續學習的研究工作 進行綜述,從而幫助讀者掌握持續學習研究的最新 趨勢.
為了應對現實世界的動態變化,智能體需要在其生命周期中增量地獲取、更新、積累和利用知識。這種能力被稱為持續學習,為人工智能系統自適應發展提供了基礎。
在一般意義上,持續學習明顯受到災難性遺忘的限制,學習新任務通常會導致舊任務的性能急劇下降。除此之外,近年來出現了越來越多的進展,在很大程度上擴展了持續學習的理解和應用。人們對這一方向日益增長和廣泛的興趣表明了它的現實意義和復雜性。本文對持續學習進行了全面的調研,試圖在基本設置、理論基礎、代表性方法和實際應用之間建立聯系。基于現有的理論和實證結果,將持續學習的一般目標總結為:在資源效率的背景下,確保適當的穩定性-可塑性權衡,以及充分的任務內/任務間泛化能力。提供了最先進的和詳細的分類法,廣泛分析了有代表性的策略如何解決持續學習,以及它們如何適應各種應用中的特定挑戰。通過對持續學習當前趨勢、跨方向前景和與神經科學的跨學科聯系的深入討論,相信這種整體的視角可以極大地促進該領域和其他領域的后續探索。
1. 引言
學習是智能系統適應環境的基礎。為了應對外界的變化,進化使人類和其他生物具有很強的適應性,能夠不斷地獲取、更新、積累和利用知識[148]、[227]、[322]。自然,我們期望人工智能(AI)系統以類似的方式適應。這激發了持續學習的研究,其中典型的設置是逐一學習一系列內容,并表現得就像同時觀察到的一樣(圖1,a)。這些內容可以是新技能、舊技能的新示例、不同的環境、不同的背景等,并包含特定的現實挑戰[322],[413]。由于內容是在一生中逐步提供的,因此在許多文獻中,持續學習也被稱為增量學習或終身學習,但沒有嚴格的區分[70],[227]。
與傳統的基于靜態數據分布的機器學習模型不同,持續學習的特點是從動態數據分布中學習。**一個主要的挑戰被稱為災難性遺忘[291],[292],對新分布的適應通常會導致捕獲舊分布的能力大大降低。**這種困境是學習可塑性和記憶穩定性權衡的一個方面:前者過多會干擾后者,反之亦然。除了簡單地平衡這兩方面的“比例”外,持續學習的理想解決方案應該獲得強大的泛化能力,以適應任務內部和任務之間的分布差異(圖1,b)。作為一個樸素的基線,重新訓練所有舊的訓練樣本(如果允許)可以輕松解決上述挑戰,但會產生巨大的計算和存儲開銷(以及潛在的隱私問題)。事實上,持續學習的主要目的是確保模型更新的資源效率,最好接近只學習新的訓練樣本。
**許多努力致力于解決上述挑戰,可以在概念上分為五組(圖1,c):**參考舊模型添加正則化項(基于正則化的方法);逼近和恢復舊數據分布(基于回放的方法);顯式操作優化程序(基于優化的方法);學習魯棒和良好泛化的表示(基于表示的方法);以及使用正確設計的體系結構構建任務自適應參數(基于體系結構的方法)。該分類法擴展了常用分類法的最新進展,并為每個類別提供了細化的子方向。總結了這些方法是如何實現所提出的一般目標的,并對其理論基礎和典型實現進行了廣泛的分析。特別是,這些方法是緊密聯系的,例如正則化和重放最終糾正優化中的梯度方向,并且具有高度的協同性,例如,重放的效果可以通過從舊模型中提取知識來提高。 現實應用對持續學習提出了特殊的挑戰,可以分為場景復雜性和任務特異性。對于前者,例如,在訓練和測試中可能缺少任務oracle(即執行哪個任務),訓練樣本可能是小批量甚至一次引入的。由于數據標記的成本和稀缺性,持續學習需要在少樣本、半監督甚至無監督的場景中有效。對于后者,雖然目前的進展主要集中在視覺分類,但其他視覺領域(如目標檢測、語義分割和圖像生成)以及其他相關領域(如強化學習(RL)、自然語言處理(NLP)和倫理考慮)正在受到越來越多的關注,其機遇和挑戰。
**考慮到持續學習的興趣顯著增長,我們相信這項最新和全面的調研可以為后續的工作提供一個整體的視角。**盡管有一些關于持續學習的早期調研,覆蓋面相對較廣[70],[322],但近年來的重要進展并未被納入其中。相比之下,最新的調研通常只整理持續學習的局部方面,關于其生物學基礎[148],[156],[186],[227],視覺分類的專門設置[85],[283],[289],[346],以及NLP[37],[206]或RL[214]中的擴展。據我們所知,這是第一個系統總結持續學習的最新進展的調研。基于這些優勢,我們就當前趨勢、跨方向前景(如擴散模型、大規模預訓練、視覺轉換器、具體AI、神經壓縮等)以及與神經科學的跨學科聯系,深入討論了持續學習。
主要貢獻包括:
(1) 對持續學習進行了最新而全面的綜述,以連接理論、方法和應用的進步;
(2) 根據現有的理論和實證結果,總結了持續學習的一般目標,并對具有代表性的策略進行了詳細的分類; (3) 將現實應用的特殊挑戰分為場景復雜性和任務特殊性,并廣泛分析了持續學習策略如何適應這些挑戰; (4)深入探討了當前研究趨勢和發展方向,以期為相關領域后續工作提供參考。 本文的組織如下: 在第2節中,我們介紹了持續學習的設置,包括其基本公式,典型場景和評估指標。在第3節中,我們總結了一些針對其一般目標的持續學習的理論努力。在第4節中,我們對具有代表性的策略進行了最新的和詳細的分類,分析了它們的動機和典型的實現。在第5節和第6節中,我們描述了這些策略如何適應場景復雜性和任務特異性的現實挑戰。在第7節中,我們提供了當前趨勢的討論,交叉方向的前景和神經科學的跨學科聯系。
在本節中,我們詳細介紹了代表性持續學習方法的分類(參見圖3和圖1,c),并廣泛分析了它們的主要動機、典型實現和經驗屬性。
Regularization-based 方法
該方向的特點是添加顯式正則項來平衡新舊任務,這通常需要存儲舊模型的凍結副本以供參考(見圖4)。根據正則化的目標,這類方法可以分為兩類。
Replay-based 方法
將近似和恢復舊數據分布的方法分組到這個方向(見圖5)。根據回放的內容,這些方法可以進一步分為三個子方向,每個子方向都有自己的挑戰。
Optimization-based 方法
持續學習不僅可以通過向損失函數添加額外的項(例如正則化和重放)來實現,還可以通過顯式地設計和操作優化程序來實現。
Representation-based 方法
將創建和利用持續學習表示優勢的方法歸為這一類。除了早期通過元訓練[185]獲得稀疏表示的工作外,最近的工作試圖結合自監督學習(SSL)[125]、[281]、[335]和大規模預訓練[295]、[380]、[456]的優勢,以改進初始化和持續學習中的表示。請注意,這兩種策略密切相關,因為預訓練數據通常數量巨大且沒有明確的標簽,而SSL本身的性能主要通過對(一系列)下游任務進行微調來評估。下面,我們將討論具有代表性的子方向。
Architecture-based 方法
上述策略主要集中在學習所有具有共享參數集的增量任務(即單個模型和一個參數空間),這是導致任務間干擾的主要原因。相反,構造特定于任務的參數可以顯式地解決這個問題。以往的工作通常根據網絡體系結構是否固定,將該方向分為參數隔離和動態體系結構。本文專注于實現特定任務參數的方式,將上述概念擴展到參數分配、模型分解和模塊化網絡(圖8)。
在人工智能迅速發展的今天,深度神經網絡廣泛應用于各個研究領域并取得了巨大的成功,但也同樣面 臨著諸多挑戰.首先,為了解決復雜的問題和提高模型的訓練效果,模型的網絡結構逐漸被設計得深而復雜,難以 適應移動計算發展對低資源、低功耗的需求.知識蒸餾最初作為一種從大型教師模型向淺層學生模型遷移知識、提 升性能的學習范式被用于模型壓縮.然而隨著知識蒸餾的發展,其教師學生的架構作為一種特殊的遷移學習方 式,演化出了豐富多樣的變體和架構,并被逐漸擴展到各種深度學習任務和場景中,包括計算機視覺、自然語言處 理、推薦系統等等.另外,通過神經網絡模型之間遷移知識的學習方式,可以聯結跨模態或跨域的學習任務,避免知 識遺忘;還能實現模型和數據的分離,達到保護隱私數據的目的.知識蒸餾在人工智能各個領域發揮著越來越重要 的作用,是解決很多實際問題的一種通用手段.本文將近些年來知識蒸餾的主要研究成果進行梳理并加以總結,分析該領域所面臨的挑戰,詳細闡述知識蒸餾的學習框架,從多種分類角度對知識蒸餾的相關工作進行對比和分析, 介紹了主要的應用場景,在最后對未來的發展趨勢提出了見解.
隨著深度神經網絡的崛起和演化,深度學習在 計算機視覺、自然語言處理、推薦系統等 各個人工智能的相關領域中已經取得了重大突破. 但是,深度學習在實際應用過程中的也存在著一些 巨大的挑戰.首先,為了應對錯綜復雜的學習任務, 深度學習的網絡模型往往會被設計得深而復雜:比 如早期的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個主要方面闡述了對知識蒸餾未來 發展趨勢的分析. 知識蒸餾通過教師學生的結構為深度神經網 絡提供了一種新的學習范式,實現了信息在異構或 同構的不同模型之間的傳遞.不僅能夠幫助壓縮模 型和提升性能,還可以聯結跨域、跨模態的知識,同 時避免隱私數據的直接訪問,在深度學習背景下的 多種人工智能研究領域具有廣泛的應用價值和研究 意義.目前,有關知識蒸餾的中文綜述性文章還比較 缺失.希望本文對知識蒸餾未來的研究提供有力的 借鑒和參考.
論文題目:
Collective Intelligence for Deep Learning: A Survey of Recent Developments 論文鏈接: //www.zhuanzhi.ai/paper/36613f5c67816e164c05ae3a13538809
目錄
摘要 一、引言 二、歷史背景 三、深度學習中的集體智能 1、圖像處理 2、深度強化學習 3、多智能體學習 4、元學習 四、將深度學習用于集體智能研究 五、結論
在過去十年里,我們見證了深度學習崛起并在人工智能領域占據主導地位的過程。人工神經網絡的進步,以及相應的具有大內存容量的硬件加速器的發展,再加上大型數據集的可得性,使得研究人員和從業人員能夠訓練和部署復雜的神經網絡模型,在計算機視覺、自然語言處理和強化學習等多個領域的任務上取得最佳性能。然而,隨著這些神經網絡變得更大、更復雜、應用更廣泛,當前深度學習模型的根本問題變得更加明顯。眾所周知,當前最先進的深度學習模型也有一些問題,包括不夠穩健,無法適應新的任務,配置需要嚴格和不靈活的假設等。來自集體智能的觀念,特別是來自復雜系統的概念,如自組織、涌現行為、粒子群優化(swarm optimization)和元胞自動機,往往會產生穩健的、適應性的解決方案,并且對環境配置的假設沒那么嚴格。因此,看到這些觀念被納入到新的深度學習方法中,并不奇怪。在這篇綜述里,我們將提供一個涉及復雜系統的神經網絡研究的歷史脈絡,并著重于現代深度學習研究中幾個活躍的領域,這些領域結合了集體智能的原理來提升當前模型的能力。為了促進觀念的雙向流動,我們還討論了那些利用現代深度學習模型來幫助推進復雜系統研究的研究。我們希望這篇綜述可以成為復雜系統和深度學習社區之間的橋梁,促進觀念的交叉傳播,并促進跨學科的新合作。
摘要
與批量學習不同的是,在批量學習中所有的訓練數據都是一次性可用的,而持續學習代表了一組方法,這些方法可以積累知識,并使用序列可用的數據連續學習。與人類的學習過程一樣,不斷學習具有學習、融合和積累不同時間步的新知識的能力,被認為具有很高的現實意義。因此,持續學習在各種人工智能任務中得到了研究。本文綜述了計算機視覺中持續學習的最新進展。特別地,這些作品是根據它們的代表性技術進行分組的,包括正則化、知識蒸餾、記憶、生成重放、參數隔離以及上述技術的組合。針對每一類技術,分別介紹了其特點及其在計算機視覺中的應用。在概述的最后,討論了幾個子領域,在這些子領域中,持續的知識積累可能會有幫助,而持續學習還沒有得到很好的研究。
//www.zhuanzhi.ai/paper/a13ad85605ab12d401a6b2e74bc01d8a
引言
人類的學習是一個漸進的過程。在人類的一生中,人類不斷地接受和學習新知識。新知識在發揮自身積累作用的同時,也對原有知識進行補充和修正。相比之下,傳統的機器學習和深度學習范式通常區分知識訓練和知識推理的過程,模型需要在有限的時間內在預先準備好的數據集上完成訓練,然后使用這些數據集進行推理。隨著相機和手機的廣泛普及,每天都有大量新的圖片和視頻被捕捉和分享。這就產生了新的需求,特別是在計算機視覺領域,模型在推理過程中要連續不斷地學習和更新自己,因為從頭開始訓練模型以適應每天新生成的數據是非常耗時和低效的。
由于神經網絡與人腦的結構不同,神經網絡訓練不易從原來的批量學習模式轉變為新的連續學習模式。特別是存在兩個主要問題。首先,按照序列學習多個類別的數據容易導致災難性遺忘的問題[1,2]。這意味著,在從新類別的數據更新模型參數后,模型在先前學習類別上的性能通常會急劇下降。其次,當按順序從同一類別的新數據中學習時,也會導致概念漂移問題[3,4,5],因為新數據可能會以不可預見的方式改變該類別的數據分布[6]。因此,持續學習的總體任務是解決穩定性-可塑性困境[7,8],這就要求神經網絡在保持學習新知識的能力的同時,防止遺忘之前學習過的知識。
近年來,在計算機視覺的各個子領域中提出了越來越多的持續學習方法,如圖1所示。此外,2020年和2021年還舉辦了若干與計算機視覺中的持續學習有關的比賽[9,10]。因此,本文綜述了計算機視覺中持續學習的最新進展。我們將這一概述的主要貢獻總結如下。(1)系統地綜述了計算機視覺中持續學習的最新進展。(2)介紹了用于不同計算機視覺任務的各種持續學習技術,包括正則化、知識提取、基于記憶、生成重放和參數隔離。(3)討論了計算機視覺中持續學習可能有所幫助但仍未得到充分研究的子領域。
本文的其余部分組織如下。第二節給出了持續學習的定義。第3節介紹了這一領域常用的評估指標。第4節討論了各種類型的持續學習方法及其在計算機視覺中的應用。在第5節中討論了計算機視覺中沒有很好地利用持續學習的子領域。最后,第六部分對全文進行總結。
人和高級動物在整個生命中不斷獲取、微調和轉讓知識和技能。這種能力,稱為lifelong learning,是由一系列神經認知機制協調的過程,這些機制共同促進了sensorimotor技能的發展以及對長期記憶的鞏固和檢索。因此對于計算系統和自動化智體,lifelong learning能力,對能否在現實世界進行交互并處理連續信息,至關重要。
但是,長期來看,lifelong/continual learning仍然是機器學習和神經網絡模型的挑戰,因為從非平穩數據分布中不斷遞增地獲取可用信息通常會導致catastrophic forgetting或者interference問題,即用新信息訓練模型的時候會干擾先前學習的知識。這種現象通常會導致性能突然下降,或者最壞的情況下導致舊知識被新知識完全overwrite。對于拿固定訓練數據來學習的深度神經網絡模型,其隨時間遞增的信息無法可用這一點,會成為一個主要缺陷。
在這篇綜述中,總結了與人工學習系統的continual/lifelong learning相關挑戰,并比較了現有那些在不同程度上減輕catastrophic forgetting的NN方法。盡管NN在特定領域學習方面已取得了重大進展,但要在自動化智體和機器人上開發強大的lifelong learning,還需要進行大量研究。為此作者討論了由生物系統中的lifelong learning因素所激發的各種研究,如structural plasticity、memory replay、curriculum & transfer learning、intrinsic motivation和multisensory integration等。
人工神經網絡在解決特定剛性任務的分類問題時,通過不同訓練階段的廣義學習行為獲取知識。由此產生的網絡類似于一個靜態的知識實體,努力擴展這種知識而不針對最初的任務,從而導致災難性的遺忘。
持續學習將這種范式轉變為可以在不同任務上持續積累知識的網絡,而不需要從頭開始再訓練。我們關注任務增量分類,即任務按順序到達,并由清晰的邊界劃分。我們的主要貢獻包括:
(1) 對持續學習技術的分類和廣泛的概述;
(2) 一個持續學習器穩定性-可塑性權衡的新框架;
(3) 對11種最先進的持續學習方法和4條基準進行綜合實驗比較。
考慮到微型Imagenet和大規模不平衡的非自然主義者以及一系列識別數據集,我們以經驗的方式在三個基準上仔細檢查方法的優缺點。我們研究了模型容量、權重衰減和衰減正則化的影響,以及任務呈現的順序,并從所需內存、計算時間和存儲空間等方面定性比較了各種方法。
//www.zhuanzhi.ai/paper/c90f25024b2c2364ce63299b4dc4677f
引言
近年來,據報道,機器學習模型在個人任務上表現出甚至超過人類水平的表現,如雅達利游戲[1]或物體識別[2]。雖然這些結果令人印象深刻,但它們是在靜態模型無法適應其行為的情況下獲得的。因此,這需要在每次有新數據可用時重新啟動訓練過程。在我們的動態世界中,這種做法對于數據流來說很快就變得難以處理,或者可能由于存儲限制或隱私問題而只能暫時可用。這就需要不斷適應和不斷學習的系統。人類的認知就是這樣一個系統的例證,它具有順序學習概念的傾向。通過觀察例子來重新審視舊的概念可能會發生,但對保存這些知識來說并不是必要的,而且盡管人類可能會逐漸忘記舊的信息,但完全丟失以前的知識很少被證明是[3]。相比之下,人工神經網絡則不能以這種方式學習:在學習新概念時,它們會遭遇對舊概念的災難性遺忘。為了規避這一問題,人工神經網絡的研究主要集中在靜態任務上,通常通過重組數據來確保i.i.d.條件,并通過在多個時期重新訪問訓練數據來大幅提高性能。
持續學習研究從無窮無盡的數據流中學習的問題,其目標是逐步擴展已獲得的知識,并將其用于未來[4]的學習。數據可以來自于變化的輸入域(例如,不同的成像條件),也可以與不同的任務相關聯(例如,細粒度的分類問題)。持續學習也被稱為終身學習[18]0,[18]1,[18]2,[18]3,[18]5,[18]4,順序學習[10],[11],[12]或增量學習[13],[14],[15],[16],[17],[18],[19]。主要的標準是學習過程的順序性質,只有一小部分輸入數據來自一個或幾個任務,一次可用。主要的挑戰是在不發生災難性遺忘的情況下進行學習:當添加新的任務或域時,之前學習的任務或域的性能不會隨著時間的推移而顯著下降。這是神經網絡中一個更普遍的問題[20]的直接結果,即穩定性-可塑性困境,可塑性指的是整合新知識的能力,以及在編碼時保持原有知識的穩定性。這是一個具有挑戰性的問題,不斷學習的進展使得現實世界的應用開始出現[21]、[22]、[23]。
為了集中注意力,我們用兩種方式限制了我們的研究范圍。首先,我們只考慮任務增量設置,其中數據按順序分批到達,一個批對應一個任務,例如要學習的一組新類別。換句話說,我們假設對于一個給定的任務,所有的數據都可以同時用于離線訓練。這使得對所有訓練數據進行多個時期的學習成為可能,反復洗刷以確保i.i.d.的條件。重要的是,無法訪問以前或將來任務的數據。在此設置中優化新任務將導致災難性的遺忘,舊任務的性能將顯著下降,除非采取特殊措施。這些措施在不同情況下的有效性,正是本文所要探討的。此外,任務增量學習將范圍限制為一個多頭配置,每個任務都有一個獨占的輸出層或頭。這與所有任務共享一個頭的更有挑戰性的類增量設置相反。這在學習中引入了額外的干擾,增加了可供選擇的輸出節點的數量。相反,我們假設已知一個給定的樣本屬于哪個任務。
其次,我們只關注分類問題,因為分類可以說是人工神經網絡最既定的任務之一,使用相對簡單、標準和易于理解的網絡體系結構具有良好的性能。第2節對設置進行了更詳細的描述,第7節討論了處理更一般設置的開放問題。
現代機器學習擅長于從固定的數據集和固定的環境中訓練出強大的模型,常常超過人類的能力。然而,這些模型未能模擬人類的學習過程,而人類的學習過程是有效的、穩健的,并且能夠從非平穩世界的連續經驗中逐步學習。對于這一局限性的見解可以從神經網絡優化的本質中獲得,這意味著持續學習技術可以從根本上提高深度學習,并打開了新的應用領域的大門。持續學習的有前途的方法可以在最細粒度的層次上找到,使用基于梯度的方法,也可以在體系結構層次上找到,使用模塊化和基于內存的方法。我們也認為元學習是一個潛在的重要方向。
人工智能研究在過去的幾個月中取得了巨大的進步,但它主要依賴于固定的數據集和固定的環境。持續學習是一個日益相關的研究領域,它表明人工系統可能像生物系統一樣,從連續不斷的相關數據流中有序地學習。在目前的回顧中,我們將持續學習與神經網絡的學習動力學聯系起來,強調它在穩步提高數據效率方面的潛力。我們進一步考慮了近年來出現的許多受生物學啟發的新方法,重點關注那些利用正規化、模塊化、記憶和元學習的方法,并強調了一些最有前途和最有影響的方向。
世界不是靜止不動的
人工智能成功的一個常見基準是模仿人類學習的能力。我們測量人類識別圖像、玩游戲和駕駛汽車的能力,舉幾個例子,然后開發機器學習模型,如果有足夠的訓練數據,它可以匹配或超過這些能力。這種范式把重點放在最終結果上,而不是學習過程上,并且忽略了人類學習的一個關鍵特征:它對不斷變化的任務和連續的經驗是魯棒的。人類以這種方式學習也許并不奇怪,畢竟,時間是不可逆的,世界是不穩定的(見詞匯表),所以人類的學習已經進化到在動態學習環境中茁壯成長。然而,這種魯棒性與最強大的現代機器學習方法形成了鮮明的對比,后者只有在數據經過仔細的洗牌、平衡和均質后才能表現良好。這些模型不僅表現不佳,而且在某些情況下,它們會完全失敗,或者在早期學習的任務上遭遇快速的性能下降,即所謂的災難性遺忘。
基于生物系統持續學習基礎
對自然世界及其智能物種的研究經常與人工智能研究交叉,包括與持續學習有關的方面[1]。生物學為在復雜環境中成功地持續學習提供了存在證據,也暗示了成功方法的設計原則和權衡。有多種機制使生物系統能夠適應不斷變化的環境,而不固執或遺忘。因此,在本節中,我們將通過類比來介紹四種持續學習模式,并將每種方法的詳細討論留到后面的章節中。此外,可以通過描述它們的規范模型來簡要地描述這些方法,如圖1(關鍵圖)所示。
持續學習的定義
持續學習的問題通常是由順序訓練協議和解決方案所期望的特性來定義的。與靜態數據集或環境的普通機器學習設置相反,持續學習設置明確地關注非平穩或變化的環境,通常被劃分為需要按順序完成的一組任務。這種設置可能在任務轉換(平滑或離散)、任務長度和重復、任務類型(如無監督、監督或強化學習)方面有所不同,或者甚至可能沒有定義明確的任務[9-11]。與課程學習相比[12,13],學習者不能控制任務的順序。
支持現代機器學習的獨立同分布假設
神經網絡大量利用現代技術來并行計算,同時考慮大量數據;事實上,這種易于伸縮的特性使得它們在過去的十年中成為了語音、視覺和語言應用程序的主流方法。 在典型的學習設置中,目標是通過設置網絡的參數來最小化一些損失函數,例如真輸出和預測輸出之間的誤差。基于梯度的學習,最有效的和廣泛使用的范式,是一種迭代算法,在每一次迭代,使一個小變化的參數,以減少損失(更詳細的解釋,見盒2)。這條規則的機制在拔河的動態結果,其中每個數據樣本正試圖拉動每個參數更大或更小。通過平均梯度,我們因此創建了一個拔河游戲,其中應用于每個參數的更新(因為它是正的或負的)揭示了哪個數據樣本贏了或輸了。在許多優化步驟上組合許多拔河式更新,可以進行學習(圖3)。
基于梯度的解決方案
由前面描述的拔河式學習動態驅動,一種有前途的方法是直接調節不同任務的梯度。這不僅是優化問題的核心,而且是由生物大腦[3]中突觸鞏固的研究激發的。一種方法是迫使梯度與之前學習任務的梯度保持一致[19,20],消除潛在干擾。這些方法在其他環境中也有好處,例如,在多任務學習中,它們有可能在目標沖突的情況下提高學習效率[21-23]。
模塊化架構
模塊化的神經網絡結構是一種自然有效的解決持續學習中的干擾和災難性遺忘問題的方法。模塊化提供了一個折衷方案,即使用一個容易遺忘的單一單片網絡,以及為每個任務使用獨立的網絡,這既可以防止災難性遺忘,也可以防止任務之間的轉移(參見圖1C的模塊化架構說明)。模塊化在生物系統中也很明顯,它支持大腦區域的功能專門化。
人工學習系統的記憶
基于梯度和模塊化的方法可能更適合短期的持續學習,而不是長期的記憶。基于梯度的方法不能防止任意長任務序列的遺忘,而模塊化方法可以在長時間尺度上保存知識,它們可能在神經網絡能力方面達到實際的極限。考慮一下這樣一個具有挑戰性的場景:在幾個月的時間里,把食物藏在1000個不同的地方,然后在更多的食物消失后,正確地找到每一個食物。這個特征是每個冬天都會出現的,比如夜鶯、松鴉和鴉類[57]。通過調整一個簡單的神經網絡的參數來保存存儲食物的順序經驗既具有挑戰性又效率低下。一個更可伸縮的策略是使用專用的讀寫內存對空間位置進行編碼。
元學習:發現持續學習的歸納偏差
到目前為止所討論的所有解決方案都規定了用于持續學習的手工設計的機制或架構,歸納偏差。每種歸納偏差都在需求(如良好的知識保留與基于記憶的方法中的正向遷移)之間達成了不同的權衡。值得考慮的是,從數據中學習解決方案,而不是依靠人類的獨創性來設計它,是否能夠實現更好的權衡。歷史上,許多元學習或學習-學習方法已經證明,解決方案可以通過自動學習歸納偏差(如架構、數據和學習參數)來改進,否則需要手工設計(圖1E) 。
結論和未來方向
機器學習研究人員經常指出,人類具有快速學習和概括(例如,從幾個例子中推斷出一個模式)的非凡能力。然而,我們并不經常重新評價人類在一生的教育和經歷中不斷學習的能力,盡管正是這種能力使人類在科學、藝術和工業上取得成就。這篇文章不僅試圖強調持續學習的重要性,而且還暴露了現代神經網絡在這方面的局限性,特別是導致效率低下、基于梯度的拔河的信用分配問題。
通過對這一空間的調查,我們發現了一種學習模式,如果擴展到更有雄心的領域,它就有可能發揮真正的影響力。毫不奇怪,這些范式都有很強的平行神經科學和生物系統。基于梯度的方法直接修改了神經網絡的操作時間,并被證明可以減少災難性遺忘。
模塊化架構為干擾和災難性遺忘提供了實用的解決方案,同時通過技能和知識的層次重組實現面向遷移。端到端記憶模型可以成為長時間學習的可擴展解決方案,元學習方法可以超越手工設計的算法和架構。有了這些潛在的積極影響,也必須認識到部署不斷變化的機器學習模型所涉及的風險,因為任何安全和預期行為的初始評估都不能輕易地永久保證。然而,通過提高學習算法的長期可靠性,以及通過開發確保某些規則或邊界不被違反的架構,持續學習解決方案可以降低這些風險。