元學習研究綜述
摘要
深度學習和強化學習嚴重受限于小樣本數據集,容易發生過擬合,無法實現類似于人類強泛化性的學習能力。元學習為此應運而生,以累積經驗的方式形成“價值觀”,基于本身的認知和價值判斷能力對模型進行調整或優化,讓智能體在實際環境中能快速學會各項復雜新任務,實現真正意義上的人工智能。首先概述了元學習的基本原理,然后根據其所采用的不同元知識形式,深入分析各類方法的研究現狀,再探討了元學習在少鏡頭學習、機器人學習和無監督學習等領域上的應用潛能,最后對其未來的發展趨勢做出展望。
1 引言
在人工智能(artificial intelligent,AI)發展的歷史長河中,深度學習的出現具有里程碑式的意義,其中的卷積神經網絡(convolutional neural network,CNN)[1]、自編碼器(auto-encoder,AE)[2]、循環神經網絡(recurrent neural network)[3]、遞歸神經網絡(recursive neural network)[4]及深度置信網絡(deep belief network,DBN)[5]已廣泛應用于圖像分類、語音識別、文本處理等領域,極大推動了農業、工業、軍事、航空等行業進步發展[6]。雖然深度學習在感知能力方面很強大,但是其在決策能力方面還是比較欠缺的,而后,融合了深度學習與強化學習的深度強化學習問世了。深度強化學習采用不斷與實際環境進行交互[7],且在這過程中以保證累積獎賞最大化來獲得最優策略的試錯方式,能有效優化序列決策的問題,增強人工智能的行為決策能力[8]。可無論是單一深度學習還是深度強化學習,它們的成功在很大程度上都依靠于數百萬的訓練樣本及大規模的計算資源。一旦缺乏這兩個條件,它們的性能會大打折扣,而且這樣“暴力”的學習方式與人類高效快速的學習方式有較大出入。如基于深度強化學習的智能體[9]玩《雅達利游戲》需要83小時才達到人類玩家的水平,但對于人類玩家來說,幾分鐘就能上手。如小孩一般只需見過幾次小貓和小鳥后就能分辨它們,但基于深度學習的系統需要大量的樣本訓練后才能區分出小貓和小鳥。為此,現有的深度學習算法和強化學習算法等都過于依賴數據與算力,很多領域的可用樣本實例是極其稀少的,且龐大的算力需求條件也會有一定的受限,導致這些算法的應用出現很大的局限性。為了突破這些界限,人工智能非常需要一種學會如何學習、快速學習的能力,才能實現進一步的革新。元學習應運而生,是可以協助人工智能實現自主學習、快速適應上手各項新的復雜任務的強有力工具。所以,有必要對元學習進行深入的研究。
2 元學習的基本原理
元學習,亦被稱為學會學習,以系統的、數據驅動的方式再利用之前學過的知識或以往的經驗,讓人工智能實現自主、快速學會新任務。即元學習隨著對每一項歷史任務的學習和經驗積累,在學習新任務時可以變得更加容易,所需要的訓練樣本更少,同時還能保證一定的算法精度。元學習旨在學會如何學習,區別于以映射方式為主的深度學習和以試錯方式為主的強化學習,深度學習和強化學習的原理框圖分別如圖1、圖2所示。
圖1?? 深度學習原理框圖
?
圖2?? 強化學習原理框圖
?
遷移學習與元學習的目標都是希望通過利用先前學到的知識快速地掌握新的技能或概念。但是,遷移學習側重于在實例空間進行訓練,通過優化單個整體任務作為轉移源來訓練基礎模型[10]。遷移學習原理框圖如圖3?所示,常用的已訓練好的開 源 網 絡 模 型 有 VGG[11]、ResNet[12]?及GoogleNet[13]等。選擇合適的模型直接遷移到目標網絡上,再利用少量標注樣本對目標網絡進行微調;而元學習是在任務空間中進行訓練,元學習的原理框圖如圖4?所示。每當模型嘗試學習某項任務時,無論成功與否,模型都會獲得有用的經驗,整合這些經驗形成智能體的“價值觀”,代表一種會學習的能力,即抽象成函數 F(x)。若出現新的任務,在“價值觀”的協助下,模型繼續學習新任務的極少量樣本,即可快速適應和掌握新任務,也就是抽象出一個個對應新任務 i 的函數fi(x)。元學習比遷移學習對未知新任務的適應有著更好的穩健性。
實現以系統的、數據驅動的方式從歷史經驗中學習是元學習的關鍵。其中,以往的經驗以元知識的形式進行存儲,元知識包括權重參數、超參數設置、網絡架構、模型性能評估函數等,元知識涵蓋的遠不止這些。通過將從歷史任務中學到的高辨識特征投影到高維空間上,形成高度壓縮元表示,組成價值經驗集。另外,元學習中一個較大的難點是如何在歷史經驗集合中提取和傳遞有用的知識來協助模型快速學會新任務。隨著元學習的發展,隨機梯度下降(stochastic gradient descent,SGD)法可能無法繼續滿足需求,需要挖掘得到更有爆發性和高效性的搜索方法來支撐元學習的訓練。
圖3?? 遷移學習原理框圖
?
圖4?? 元學習原理框圖
?
3 元學習的研究現狀
早在1987年Hinton等[14]就提出在神經元之間采用兩個權重進行連接的方法。其中一個權重仍然是標準的慢權重,基于優化器更新獲取知識。另外一個新增加的權重稱為快權重,用于有效恢復過去學習的慢權重,這是為了避免隨著優化器更新而忘記以前學習過的慢權重。元學習的思想在那時已經開始萌發,當前實現元學習的方法更是多種多樣,根據采用的元知識形式不同,可以分為基于權重、優化器、損失函數、度量、注意力機制、超參數、網絡架構、黑盒模型等方式。
3.1 基于權重的元學習方法
對于遷移學習,人們常以ImageNet預訓練等方式實現對網絡權重的初始化。但通過這些方式預訓練得到的權重無法快速適應新任務,如果用小樣本的新任務數據集繼續訓練網絡就容易發生過擬合的問題。而基于權重的元學習方法最大的一個成果就是讓網絡自身學會初始化有效的權重,可以克服遷移學習難以應付小樣本的問題,不再需要手動配置模型的初始化權重參數,通過學習歷史任務的經驗,估計得到各新任務對應的初始化參數組,以保證模型能快速適應新任務,借助少量的新任務樣本進行訓練即能獲得最佳性能。其中最為經典的是Finn等[15]提出的模型——不可知元學習(model-agnostic meta-learning, MAML)算法。MAML的關鍵是要使新任務的損失函數對初始化權重的敏感度最大化,且與模型的類型無關,在各任務梯度矢量和的方向上對參數進行優化,估計得到新任務的最優參數解,以實現沿梯度方向可快速獲得最優性能。Finn等[16]在 MAML 的基礎上繼續融合在線學習的框架提出一種在線元學習(online meta-learning),正如模擬實際環境中進行現場教學,并達到現學現用的效果,有效提高算法順序設置和處理非平穩條件的能力。該類方法適用于回歸、分類以及強化學習等多種任務,但存在二次梯度不穩定等問題。
3.2 基于優化器的元學習方法
這類方法不用人為配置 Adam[17]等優化器,將新任務上的優化器設計工作交由元學習器完成。即元學習器根據以往任務的學習經驗捕獲單個梯度坐標的訓練動態或為新任務量身定做一個高效的優化器,以讓模型在擁有更為合適的優化器的情況下實現快速學習新任務。Andrychowicz等[18]采用長短期記憶(long short-term memory,LSTM)網絡替換傳統優化器,是為了能以梯度下降的方式為新任務優化出合適的優化器。由于損失函數的黑塞矩陣(Hessian matrix)處于病態,一階梯度算法的性能會大打折扣。Park等[19]提出在元學習過程中額外學習一個局部的曲率信息矩陣,以實現梯度在空間上的轉換,讓轉換后的梯度對新任務具有更好的泛化性能。傳統優化器只保證當前一步的損失小于上一步損失,僅側重于當前周期的效益,嚴重缺乏全局性。而元學習優化器可以統籌未來多步對當前這步的影響,實現“瞻前顧后”的效果,找出對未來結果影響最佳的當前策略。但是,當面臨大型網絡或復雜優化問題時,元學習優化器的優化成本要求很大,且其性能穩定性可能較差。
3.3 基于損失函數的元學習方法
與基于優化器的元學習方法類似,以通過歷史任務來學習如何預測損失函數的方式建模。Houthooft 等[20]提出一種進化策略梯度(evolved policy gradient,EPG)的元學習方法,設計一個可微的損失函數,通過優化其策略以最大程度地減少這種損失,獲得較高的回報。基于強化學習中獎勵函數的設計思想,泛化至損失函數,即通過學到的策略網絡編碼為學到的損失函數。Li等[21]提出引入一個學習的輔助損失函數,通過元學習正則化器來幫助訓練特征抽取器成為域不變量,提高了對領域的泛化性。基于損失函數的元學習方法與強化學習的標準損失相比,在性能上有所提高,但其泛化性仍存在較大的局限。
3.4 基于度量的元學習方法
其關鍵是要學習到一個嵌入網絡,使原始輸入可以轉換為合適的表示,并實現樣本實例與待測實例之間相似度比較。Sung等[22]提出建模一個關系網絡(relation network),該網絡包含嵌入單元(embedding module)和關系單元(relation module)。嵌入單元負責對待測圖片和樣本圖片進行特征提取,關系單元負責將提取出來的各特征進行相似度比對,直接判斷待測圖片歸屬哪類。該方法直接采用神經網絡學習度量,而且在這過程中以元學習的方式進行訓練。此外,還有利用孿生神經網絡(siamese network)[23]、匹配網絡(matching network)[24]、原型網絡(prototypical network)[25]、圖神經網絡(graph neural network)[26]實現。這類算法目的是更合適地表示數據,以學習得更好。這類方法適用于小樣本學習,建模一個度量空間,讓待測的目標圖像與已有的圖像在該度量空間中實現高效比對。但對于回歸和強化學習等任務,這些算法尚未證實能實現同樣的效果。
3.5 基于注意力機制的元學習方法
訓練出一個模型使其能在面對新任務時把“注意力”都放在關鍵點上,即直接關注最為核心的部分。Ren 等[27]設計了一個基于元學習的注意力吸引網絡(attention attractor network,AAN),先是經過監督學習以訓練一個起初原有類別的分類器,若出現新增類別,于訓練和測試節點中聯合元學習正則器以訓練得到新類別分類器,再結合起初原有類別與新增類別并用于優化剛才提到的元學習正則器,讓它在新舊類別結合后仍然保持作用。Hou等[28]提出一個交叉注意力網絡(cross attention network),給所有輸入的圖像對分別生成注意力圖,以突出目標物體所在的區域,使模型可以把“注意力”都集中在這部分區域,提取出更好的特征,以快速適應未知類別的問題。基于注意力機制的元學習方法有著較好的泛化性能和可解釋性能。但是,它難以捕抓元素順序,當執行自然語言處理等任務時其性能可能會大打折扣。
3.6 基于超參數的元學習方法
以元學習的方式不斷地優化調整學習率、正則化強度等超參數直至適合新任務。另外,步長、方向等超參數也可以被定義為優化器的一部分,則基于超參數的元學習方法與基于優化器的元學習方法之間存在重疊部分。Franceschi等[29]提出一個超參數優化與元學習的雙層規劃框架,將二層問題轉化到基于內目標的優化動力學(optimization dynamics)以迭代的方式進行近似求解。這些方法可以高效找出最優超參數組合,保證神經網絡的優化設置。
3.7 基于網絡結構的元學習方法
學會自動生成對應不同新任務的深度神經網絡。從 1994 年提出的 5 層手寫字體識別模型LeNet5[30],發展到1 001層的ResNet[12],網絡的層數變得越來越深,但是也被驗證得出結論:神經網絡性能不是越深就越好。所以在對深度神經網絡的架構進行設計時往往會存在較大困擾,既希望能最大程度地發揮深度神經網絡的潛能,又擔心模型會由于太復雜而造成巨大的計算資源浪費和產生梯度消失、梯度爆炸的問題。Zoph等[31]提出一種利用強化學習機制去訓練一個循環神經網絡(recurrent neural network,RNN),讓其學會自動生成神經網絡的元學習方法。先是利用循環神經網絡在搜索空間上推算估計得到一個網絡架構,再對這估計生成的網絡架構進行訓練和驗證,以驗證的準確率作為獎勵反饋到循環神經網絡中,循環神經網絡根據獎勵繼續優化生成另外一個網絡架構進行訓練和驗證,重復這樣的過程直至循環神經網絡獲得最佳性能,學會如何生成好的網絡架構。Real等[32]提出一種正則化進化方法,為候選結構引入年代的新思路,不再是移除性能最差的神經網絡,而是移除最老的神經網絡,保證任務優化過程中的穩健性,獲取更加精確的網絡。這些方法實現神經架構搜索(neural architecture search,NAS)自動化,但在這些過程中的執行成本很高。
3.8 基于黑盒模型的元學習方法
基于黑盒模型的元學習方法分為基于內部記憶單元與基于外部存儲兩類。Hochreiter等[33]提出了一種基于內部記憶單元的元學習方法,采用LSTM 作為從屬系統,負責與學習器直接交互,還采用基于時間的反向傳播(back propagation through time,BPTT)算法作為監督系統,負責評價從屬系統提供算法參數的好壞。其中,輸入的信息對是采用錯位的方式的,目的是使從屬系統可以獲取上一步算法的錯誤率,有助于進行校正。但是,基于內部記憶單元的方法難以拓展到需要編碼眾多新信息的新任務中。為此,部分科研人員提出采用外部的存儲。Santoto等[34]提出一種記憶增強神經網絡(memory-augmented neural network)的元學習方法,直接添加外部存儲來記憶上一次的數據輸入不包含標簽信息,以至于下一次輸入完成后在反向傳播的過程中,能夠建立輸入數據與標簽的聯系,讓后續的輸入數據都能通過外部存儲獲取相關歷史數據進行比對。相當于外部存儲記憶了很多歷史經驗,模型憑借這些以往的經驗可以實現快速學習更多新任務。Rakelly等[35]提出一種基于概率上下文變量的非策略元強化學習方法,將任務推理和控制分離開來,對潛在任務變量進行在線概率過濾,實現從少量的經驗中學會如何解決新任務。基于黑盒模型的元學習方法難以適用于分布外的任務,且無法確定黑箱模型是否可以把一個大的訓練集嵌入一個基礎模型中。
4 元學習的應用
當前,元學習在少鏡頭學習(few-shot learning,FSL)領域應用最為火熱。由于大型神經網絡的性能受限于訓練集的規模,訓練集內樣本數量很少時,容易導致網絡過擬合,無法發揮深度網絡的潛能。基于元學習實現的少鏡頭學習技術廣泛運用于分類[36,37]、目標檢測[38,39]、人臉識別[40]、醫學可視化問答[41]、視頻合成[42]等場景。在這些場景內,很多新增類別的樣本可能天生就比較稀缺,或它們的注釋標簽難以獲取。另外,實際場景往往比實驗環境復雜得多,實際獲取的待測數據具有多變性,會出現待測數據和訓練集分布不一致的情況。元學習技術利用從歷史任務中積累下來的元知識作為先驗知識,再學習少量的目標樣本即可快速掌握新任務,有效提升訓練方式和訓練時間,對未知場景有著較強的適應性和穩健性。如 Nguyen 等[41]為了克服醫療視覺答疑中的數據限制,將無監督的去噪自動編碼器(denoising auto encoder,DAE)與有監督的元學習有機結合應用,僅通過一個很小的樣本集來訓練其提出的模型,可以發現該方法的性能比現有的醫療視覺問答方法都要好;Wang等[42]提出一種元學習人臉識別(meta-learning face recognition,MFR)方法,實驗結果證明了該方法在跨種族與跨場景的測試里其性能是最優的,極大地提高模型泛化性能。基于元學習實現的少鏡頭學習在實用的過程中極大降低對目標樣本數量的依賴,突破傳統深度學習的數據壁壘,避免參數過擬合,提高模型的泛化性,實現舉一反三、融會貫通的效果,對將來的未知事務有著強大的適應能力,為缺乏樣本的領域提供可靠的解決方案。
元學習在機器人學習領域也具有廣闊的應用前景。各種各樣的機器人被投入家庭、工廠、國防和外太空探索等領域中使用[43],它們的應用環境從簡單的環境變到復雜的非結構化環境[44]。但是,現有的機器人仍處于弱智能化的階段,對靈活性要求高的服務機器人的表現更差勁。快速學習操作技能的能力對未來的機器人越來越重要[45],元學習可以賦能機器人實現一眼模仿學習(one-shot imitation learning)。機器人通過觀察少量的幾次演示后,就能學會新任務的操作。若要實現機器人看一眼便能掌握各類任務操作的能力,在很大程度上需要依賴元學習[46,47,48,49],通過神經網絡學習一種元知識去理解演示的真正意圖并直接映射到控制輸出。將元學習應用到機器人學習中,使機器人的學習過程實現類似于人類,只要人類對其做出幾次簡單的示范后,機器人就能馬上掌握要領,可完成各項復雜任務,極大提高機器人的通用性。Yu等[48]提出一種域適應元學習的方法,允許學習跨域對應關系,讓機器人只需觀察一個人類用戶的視頻演示后就能學會視覺識別與操縱一個新的物體,且該方法不局限于感知人類,而且還可以用于模擬動物或模擬機器人。元學習不僅能為機器人實現模仿學習的能力,還能為機器人實現學會學習的能力。通過不斷地積累經驗,不斷地完備機器人的“價值觀”。在需要學習新任務時,借鑒積累的豐富經驗,自主學習且快速上手各項新任務。Nagabandi等[49]提出一種元強化學習方法,能夠有效適應未知的情況或環境中突然劇烈的變化,對于現實世界的應用是實用的。
元學習也能運用于無監督學習領域,最為經典的應用場景是訓練無監督學習算法[50,51]。在這場景中,外部循環的元目標仍然是有監督的,再以元學習的方式學習無監督內循環任務,實現將原本的無監督學習問題轉化為有監督學習問題,這有助于解決無監督學習問題的不確定性。除了上述的領域,元學習還可以應用于自然語言處理[52,53]、噪聲標簽學習[54,55]、網絡壓縮[56]、域泛化[57,58]等領域,具有無可限量的應用潛能。
5 元學習的未來展望
授之以魚不如授之以漁。深度學習以大規模樣本實例“暴力”訓練網絡,讓模型實現對單一任務的有效處理,可這只能緩解一時之需,遠遠無法達到通用人工智能的程度,不能實現同樣一套算法解決各種復雜任務,只能“授之以魚”。而元學習能真正實現“授之以漁”,助力人工智能學會如何學習,具有不可估量的潛能,可以推動人工智能變革。但是,元學習在技術與應用這兩個方面上還面臨著較大的挑戰。
針對元學習技術方面,其計算成本耗費大、復雜任務的學習能力差和泛化性能有待提高等問題尤其顯著。
元學習算法常常涉及雙層優化的問題。每執行一次訓練,就要進行一次外部操作步驟,但每次的外部操作步驟都需要多次的內部操作步驟,在這樣的嵌套循環條件下,元學習模型的優化需要大規模的計算資源和超長的訓練時間。若在GPU計算資源不充足的情況下對擁有千萬級別參數量的模型的優化器進行訓練,很可能出現內存爆炸的問題。因此,未來很有必要創新更高效的元學習優化方法來降低計算成本。Brock 等[59]提出一種訓練代理模型的方法;Lee 等[60]提出通過內環中的閉式解算器來加速元訓練。但是,這些方法的效果都不太顯著。對于內存爆炸的問題,還可以考慮對梯度檢查點的使用。先是從所有的激活內選出一個子集,并在前向傳播的過程中只對該子集進行緩存。在進行反向傳播時,通過這些激活重新計算非緩存的激活,計算圖的顯示緩存點就是梯度檢查點。通過把連續計算的元前反饋與元反向傳播切分為片段,實現有效隱藏記憶狀態,防止內存爆炸。
除了計算成本高,現有的元學習模型對復雜新任務的學習能力也比較差。現有的元學習模型對于簡單的新任務可以高效地學會類似分揀、移動物品等的簡單任務。但這些元學習模型對于需要動作銜接或其他更為復雜的動作任務,學習能力可能會變得沒那么高效,甚至可能學不會,可以通過研究動作序列的連續性來優化該問題。
現有的元學習算法都是學習單種元知識的,可能會導致模型的泛化性能不穩定,若權重、網絡結構、環境及算法等都是通過元學習器學的,即多種元知識組合學習,其泛化性可能會比當前僅學習一種元知識的元學習算法更好。
由于存在相似任務的數據難以獲取、實際待測數據的分布與訓練數據的分布存在差異等因素,元學習在實際應用的過程中仍存在較大的問題。
雖然元學習算法通過少量的新樣本實例就能學會掌握新任務,但這都是以擁有足夠多的相似歷史任務數據為基礎的。可是,獲取大規模的相似歷史任務數據往往比較困難。若是在相似歷史任務數據不足的情況下,元學習算法可能出現元過擬合的問題,無法有效訓練元學習中的基學習器,也就難以學會新任務。對此,未來可以考慮建立一個大規模的通用元學習數據庫,為訓練基學習器提供充足的示范性歷史任務數據,避免元過擬合。
當前,絕大部分的元學習模型在進行實驗測試的過程中都保證了新任務分布與歷史任務集分布是相同的。但由于應用場景的未知性和實際輸入條件的動態多變性,很難讓新任務分布與歷史任務集分布保持一致。一旦它們之間存在一定差距,元學習算法學習新任務的能力就會大打折扣,出現跨任務學習時元學習算法性能下降的問題,元學習模型跨任務學習的泛化性還比較差。未來對此問題進行深入研究時,可以借鑒遷移學習中域自適應[61]方法與異構遷移學習[62,63]方法的經驗。
審核編輯:符乾江
評論