神經網絡中的元學習研究

神經網絡中的元學習研究

Meta learning(Learning to learn)在近幾年的研究中受到了越來越多的關注。Meta learning的目標旨在改善學習算法本身,讓模型更精通學習。基於深度學習的方法在各個領域都取得了巨大的成功,同時侷限性也非常的明顯。例如,需要收集大量的數據以及使用龐大的計算資源,但在數據本身就很少的以及沒有龐大計算資源支持的(比如我)領域就顯得捉襟見肘了。而Meta learning提供了一種替代範式,其中機器學習的模型會學習多個情節的經驗並利用這種經驗來改善模型在未來的表現。這種從學習過程中學習的方式可以帶來諸如數據利用率以及計算效率的好處。

長久以來機器學習通過基於手工設計的特徵來構建模型,而特徵選擇通常是最終模型性能的決定性因素。深度學習實現了聯合特徵與模型學習的希望,顯著提高了許多任務的性能。而神經網絡中的meta learning則被看作是聯合特徵、模型與算法學習的下一步。神經網絡中的meta learning在90年代就已經提出,但由於深度學習的蓬勃發展,meta learning因其有潛力推動當代深度學習產業的發展而被廣泛關注。尤其是meta learning有可能減輕深度學習的許多主要缺點,例如通過提供更好的數據效率,利用先驗知識轉移以及實現無監督和自我指導的學習。無監督學習也有可能成爲解決樣本獲取困難領域的一種方法,但能否解決樣本利用率以及計算資源的需求等問題還未可知,這裏不對其進行論述。接下來將從Meta learning的定義、分類、應用以及挑戰四個方面來對當前meta learning環境進行介紹。

1.定義

1.1 背景

關於meta learning不同的文獻中有不同的觀點,其中一種觀點是將meta learning看作是解決No Free Lunch定理的工具,通過搜索最適合解決給定問題的算法來提高通用性或解決同類問題。從廣義上講,這個觀點可以包括遷移學習、多任務問題、特徵選擇以及模型集成學習,而今通常不再被視作meta learning。另一種觀點是將meta learning視爲涵蓋了基於數據集特徵的算法選擇與配置技術,並且變得與AutoML難以區分。在神經網絡中的meta learning中,meta learning被看作按照算法或歸納偏差進行搜索,但重點在於通過端到端的方式學習明確定義的目標函數(如交叉熵損失,準確性或學習速度)。更直觀的理解還是參考李宏毅老師給出的解釋:

在這裏插入圖片描述

meta learning最常被理解爲Learning to learn,它是指在多個學習情節中改進學習算法的過程,相比之下,機器學習是考慮在多個數據實例上改進模型預測過程。meta learning可以分爲兩部分,內部學習算法可解決由數據集和目標定義的任務,例如圖像分類;外部學習算法會更新內部學習算法,以使內部學習算法表現出更好的性能。

1.2 形式化

在常規監督學習中,我們得到了訓練數據集D=(x1,y1),...,(xn,yn)D={(x_1,y_1),...,(x_n,y_n)},我們通過以下形式求得一個由參數θ\theta的模型y^=fθ(x)\hat{y} = f_\theta(x),
θ=argminL(D,θ,w) \theta^*=argminL(D,\theta,w)
其中LL是損失函數,ww代表了限定條件。常規假設是針對每個數據集DD從頭開始進行優化,並且ww是提前指定的。

**任務分佈角度:**meta learning旨在通過學習“如何學習”來提高性能,通常情況下我們希望學習通用學習算法,該算法可以在各個任務之間進行概括,並使每個新任務的學習效果都比上一個要好。因此在meta learning中ww表示學習方法,通常根據在任務分佈p(T)p(T)中的表現進行評估,我們可以將任務定義爲數據集和損失函數T=(D,L)T={(D,L)},學會學習也就變成了:
minETp(T)=L(D,w) min\quad E_{T \sim p(T)} =L(D,w)
其中L(D,w)L(D,w)是衡量使用ww訓練的模型在數據集D上的性能,ww通常稱爲跨任務知識或meta knowledge。

meta learning中訓練數據是以Task爲單位的,分爲Training-Task和Testing-Task,Task中也分爲Training set以及Testing set,這裏爲例避免與Task的Train set和Test set混淆,分別被稱爲support set和 query set。例如在圖像分類中,未知分類10類(P1-P10),其中每類包含五個已標註數據,15個未標註數據;已知分類20類(C1-C20),每類中有30個數據。在N-way,M-shot訓練方式中(以N=5,M=1爲例),首先進行Meta-training,從已知分類C中隨機抽取出5類,每類抽取出1張圖片組成Training-Task的support set,每類抽取出5張圖片組成Training-Task的query set;在Meta-testing時,從未知分類P中隨機抽取5類,在已標註數據中抽取1張圖片組成Testing-Task的support set,在未標註的數據中抽取5張圖片組成Testing-Task的query set。每一個Task相當於機器學習中的一條數據。

雙層優化角度:在meta training階段通常會轉化爲雙層優化,雙層優化是指其中一個優化包含另一個優化,是一種分層優化機制。使用這種表示方法可以將meta training表達爲如下形式:
w=argminwi=1MLmeta(θ(i)(w),w,Dsourceval(i))s.t.θ(i)(w)=argminθLtask(θ,w,Dsourcetrain(i)) w^*=arg \min_{w} \sum_{i=1}^M L^ {meta}(\theta^{*(i)}(w),w,D_{source}^{val(i)}) \\ s.t. \quad \theta^{*(i)}(w)=arg \min_\theta \quad L^{task}(\theta,w,D_{source}^{train(i)})
其中Lmeta,LtaskL^ {meta},L^{task}分別代表了外層優化目標和內層優化目標,類似於少樣本分離中的cross entropy。雙層優化的一個關鍵特徵是meta-learner與base-learner的不對稱性,內層優化取決於外層優化定義的學習策略ww,但是在訓練過程中內層優化卻不能改變ww

前饋模型角度:許多的meta learning方法以前饋網絡的方式進行學習,而不是像雙層優化公式中通過顯式的迭代優化來進行學習。儘管他們複雜程度各不相同,但通過實例化等式中的抽象目標有助於理解這一系列方法。這裏可以通過優化任務分配來進行meta training,如下所示:

在這裏插入圖片描述

對於每個任務都需要使用support set和query set。其中gw(Dtr)g_w(D^{tr})定義了線性迴歸的權重,以預測從測試集中得出的示例x,通過訓練函數gwg_w“學習如何學習”來優化上述目標。

1.3 相關領域

1.3.1 Transfer Learning

Transfer learning是機器學習的一個分支,它的目的是在獲取一定的額外數據或者是存在一個已有的模型的前提下,將其應用在新的且有一定相關性的task。我們可以將做transfer learning的數據分成兩類,一類是source data,另一類是target data。source data指的是額外的數據,與將要解決的任務並不直接相關,而target data是與任務直接相關的數據。

Meta learning與Transfer Learning最大的區別在於:transfer Learning可以指一個問題領域,meta learning是指一種方法,可以用來改善transfer Learning和其他問題。transfer Learning希望在一個模型上進行不斷改進,而meta learning則是希望能生成更多能夠快速學習的模型,並不單單侷限於某一個模型。

1.3.2 Domain Adaptation

Domain Adaptation是遷移學習中的一種代表性方法,指的是利用信息豐富的源域樣本來提升目標域模型的性能。 領域自適應問題中兩個至關重要的概念:source domain表示與測試樣本不同的領域,但是有豐富的監督信息;target domain表示測試樣本所在的領域,無標籤或者只有少量標籤。源域和目標域往往屬於同一類任務,但是分佈不同。

1.3.3 AutoML

AutoML是將機器學習應用於現實問題的端到端流程自動化的過程。從傳統機器學習模型出發,AutoML從特徵工程、模型構建、超參優化三方面實現自動化;AutoML的主要問題可以由三部分構成:特徵工程、模型選擇、算法選擇。AutoML有時會使用meta learning,可以將meta learning看做是AutoML的專業化。

2.分類

2.1傳統分類方式

此前對元學習方法的分類傾向於分爲三類:基於優化的方法、基於模型的方法和基於度量的方法。

2.1.1 基於優化的方法

基於優化的方法包括那些內部級別任務,並側重於提取meta knowledge以提高優化性能。其中最著名的可能是MAML,MAML中的meta knowledge是模型的初始化參數的優化。目標是學習在少量的train實例的基礎上使用少量的內部步驟來生成一個在驗證數據上表現良好的分類器並通過梯度下降來對基礎模型進行更新。

2.1.2 基於模型的方法

在基於模型方法中,內部學習步驟被包裹在單個模型的前饋傳遞中。該模型將當前數據集D嵌入到激活狀態,並基於此狀態對測試數據進行預測。典型的架構包括循環網絡以及卷積網絡,它們嵌入給定任務的訓練實例和標籤,以定義一個預測器,輸入測試示例並預測其標籤。

2.1.3 基於度量的方法

基於度量的方法主要思想是通過簡單地比較validation points和training points以及預測matching training points,通過計算度量或近似度的方式來比較。基於度量的方法多用於few shot learning中,常見的方法包括: siamese networks, matching networks, prototypical networks, relation networks以及 graph neural networks。

2.2新分類方式

在這裏引入了一種沿着三個獨立軸的新分類方法,每個軸提供了反映當前元學習環境的分類:Meta-Representation (“What?”)Meta-Optimizer (“How?”)Meta-Objective (“Why?”) 。第一個軸是meta knowledge表示的選擇,第二個軸是在meta training期間選擇用於外部級別的優化器,第三個軸是meta learning的目標。具體分類如下圖所示:

在這裏插入圖片描述

3.應用

3.1 計算機視覺

計算機視覺是元學習應用最廣的領域之一,最主要體現在few-shot learning上。其中包括圖像分類、目標檢測、目標分割、圖像生成等。迄今爲止,元學習最常見的應用是圖像識別中的few-shot multi-class 分類,其中內損失函數和外損失函數分別是訓練和驗證數據的交叉熵。

人工智能和機器學習的進展通常由精心設計的benchmark來衡量和推動。在機器學習中,benchmark由一個數據集和一個能夠很好執行任務的模型組成,同時從該數據集中的訓練到測試實例。在meta learning中,benchmark設計更爲複雜,因爲我們經常與一個learner打交道,這個learner應該在一組任務上接受meta training,之後應該將其概括爲在以前看不見的任務上學習。因此,benchmark設計更加複雜,因爲需要定義可以從中提取meta training和meta testing任務的任務族。

benchmark :minimagenet、tieredImageNet、SlimageNet、CUB-200和Omniglot。這些benchmark將大量類的先驗數據集分成多個識別問題,從而重新利用它們來定義用於benchmark meta training和meta testing的新任務分佈。

3.2 強化學習

強化學習通常與學習控制策略有關,該策略使代理能夠在環境中獲得高虎豹,而不是監督學習關注給定數據集的準確性。由於獎勵稀疏、套索需要和高方差優化算法,RL通常會遭受極端樣本效率的影響。因此,RL提供了一個豐富的應用領域,其中任務分佈上的meta learning在提高樣本效率方面比標準RL算法取得了顯著的成功。人們可以直觀地理解這些方法的效果。例如,類人機器人“如何站立”的元知識對於需要移動的所有任務都是可轉移的技能,而迷宮佈局的meta knowledge對於需要在迷宮中導航的所有任務都是可轉移的。

在RL中的一些元表示,包括學習初始條件、超參數、和步長等,它們使得基於梯度的學習能夠在較少的環境交互作用下學習策略。如何挖掘和獲取學習所需的數據是任何RL算法的關鍵因素。傳統的探索是基於隨機抽樣行爲或手工探索啓發。一些meta-RL研究明確地將探索策略或好奇心功能視爲meta knowledge;並將其習得建模爲元學習問題——通過“學習如何探索”來顯著提高樣本效率。

benchmark:關於強化學習的benchmark分爲兩種,一種是離散環境的,一種是連續控制的。其中最具代表性的包括OpenAI Gym、rllib、Atari、mujoco以及 Meta-World benchmark。

3.3 神經架構搜索

本質上網絡架構搜索,和圍棋類似,是個高維空間的最優參數搜索問題。既然圍棋上AlphaGo可以戰勝人類,那在網絡架構搜索上機器最後也很有可能可以取代人類。我們知道,AlphaGo主要是基於強化學習。2016年,MIT和Google的學者們差不多在同一時間發表論文,將強化學習引入到深度神經網絡結構的搜索中,取得了不俗的成果。在幾個小型的經典數據集上擊敗同時代同級別的手工設計網絡。但這個方法有個缺點是消耗計算資源巨大,基本就不是一般人玩得起的。
神經架構搜索的基本過程是先定義搜索空間,然後通過搜索策略找出候選網絡結構,對它們進行評估,根據反饋進行下一輪的搜索。網絡結構的搜索策略有很多。像隨機搜索就是比較簡單,但相對低效的做法,通常用作baseline。其它研究得比較多的有幾類:基於強化學習基於進化算法基於梯度的方法。要將神經架構搜索中的超參數自動調優的方法應用到其它領域,最關鍵的其實是搜索空間的定義和編碼,而這個往往是領域相關的。

神經架構搜索的兩個主要挑戰是(1) 全面評估內環通常非常昂貴,因爲它需要訓練多個shot的神經網絡才能完成。(2)搜索空間很難定義,並且優化代價太高。

3.4 無監督學習

在meta learning文獻中,無監督的meta learning主要有兩種變體。首先,外環的元目標是無監督的,因此學習者本身是在沒有任何標籤的情況下學習的。稱之爲Unsupervised Meta Learning 。在第二個變體中,meta learning被用作學習無監督內環任務的一種方法。外部映射可以是有監督的或無監督的。稱之爲Meta Learning Unsupervised Learning

Unsupervised Meta Learning 旨在降低傳統的元訓練任務集的假設標準,同時仍然爲有監督的few shot learning提供良好的下游性能。Meta Learning Unsupervised Learning 目的是利用meta learning來訓練無監督學習算法,使其能很好地用於下游有監督學習任務。可以訓練無監督聚類算法或損失,從而優化下游有監督學習性能。這有助於通過將無監督學習問題轉化爲具有明確監督目標的問題來解決無監督學習問題的不確定性。

4.挑戰

元學習面臨着跨任務的泛化挑戰,類似於傳統機器學習中跨實例泛化的挑戰。有三個層次的挑戰:(1)第一個挑戰是將meta learner的任務分佈pTp_{(T)}應用得更廣,這對現有的方法是一個巨大的挑戰。(2)第二個挑戰是從meta training推廣到從pTp_{(T)}中提取新的meta testing任務。(3)第三個挑戰是將meta testing任務歸納爲不同於訓練任務的分佈。另一方面,許多meta learning框架都假設任務分佈式uni-modal。單一的學習策略可以提供一個很好的解決方案。然而在現實宗,任務分配顯然是多模態的,例如計算機視覺中的醫學圖像與衛星圖像或者日常圖像。

一個有趣的方向可能是研究引入另一個級別的學習抽象如何影響泛化性能,即meta meta learning。通過學習如何進行meta learning,也許我們可以找到元優化器,它可以很強地泛化各種類型和強度的領域,甚至模態轉換。當然,計算成本會成倍增加。

參考
李宏毅老師 機器學習
Timothy Hospedales et.al. Meta-Learning in Neural Networks: A Survey. arXiv:2004.05439, 2020

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章