Meta Learning論文與方法總結

Meta Learning

Machine learning可以理解爲根據數據找一個函數f的能力,Machine Learning通過訓練數據讓模型能夠學習到某種抽象的規律或概念,而Meta Learning可以理解爲根據數據找一個函數f的函數F的能力,通過訓練任務集讓模型更加精通如何去學習。

Meta Learning Baseline

MANN,Siamese Network,Matching Net,MAML,Prototypical Network,Meta Network,GD as LSTM

Task的概念

在這裏插入圖片描述

Meta learning 或Few shot 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相當於機器學習中的一條數據。

1.MAML

​ (1)作者研究的問題主要是模型快速學習以及快速適應新任務的能力

​ (2)挑戰:過去信息與少量新數據的融合,避免過擬合

​ (3)先前工作的缺點:適用範圍不廣,需要過多的限定條件,需要引入新的參數

​ (4)貢獻:提出了一種可以適用於任何基於梯度的學習方法,可以應用於分類,迴歸,強化學習

​ (5)缺點:引入二階導數後複雜性以及計算增加,雖然作者在實驗部分說明了二階導在大部分情況下都爲0,可以用一階近似,但是該方法並不適用於訓練模型與測試模型結構不同的情景。

在這裏插入圖片描述

MAML方法主要是訓練一個對於所有任務集都較優的參數,使模型再訓練新任務的過程中可以通過幾步迭代就達到最佳的效果,訓練出的參數對於每個任務可能都不是最優的但是對整個任務參數空間是最優的,如圖所示,對於Task1,2,3模型訓練出的初始化參數並不在θ1\theta_1^*,θ2\theta_2^*,θ3\theta_3^* 這三個點,但是對於這三個任務整體來說,訓練出的θ\theta 可以經過幾步就能夠達到最優點。最終訓練出的參數θ\theta 我們不在意它在訓練任務上的表現,而是在意由θ\theta 訓練出的θ2\theta_2θ1\theta_1 θ3\theta_3的表現。

在這裏插入圖片描述

MAML與Pre-training的區別如圖所示,其中ϕi\phi^i代表了第i步的模型參數θm,n\theta^{m,n} 代表了對於m,n任務集的參數更新方向。

在這裏插入圖片描述

MAML算法大致是從任務集中選取出一個Task,然後進行訓練並計算損失,然後進行參數更新得到一個對於某個Task的θi\theta^{\prime}_i,最後求所有任務損失對原參數θ\theta的偏導,並更新θ\theta,這裏第8步會涉及到二階導數的問題,作者在文中提到二階導數在大部分情況下都爲0,採用一階導近似的方法在最後實驗得出的結果與二階導沒有明顯區別。
6:θi=θαθLTi(fθ)8:UpdateθθβθTip(T)LTi(fθi) 6:{\theta^\prime}_i = \theta -\alpha\nabla_\theta L_{T_i}(f_\theta)\\8: Update \quad\theta \longleftarrow \theta-\beta\nabla_\theta\sum_{T_i}^{p(T)} L_{T_i}(f_{\theta^\prime_i}) \\
將6中的θi=θαθLTi(fθ){\theta^‘}_i = \theta -\alpha\nabla_\theta L_{T_i}(f_\theta) 帶入到8的fθif_{\theta^‘_i}中,則出現了二階導。這裏我們可以使用一階導近似:
θi=θαθLTi(fθ)L(θ)=LTi(θi)θθβθL(θ) {\theta^\prime}_i = \theta -\alpha\nabla_\theta L_{T_i}(f_\theta)\\L(\theta)=\sum L_{T_i}({\theta^\prime }_i ) \\\theta \longleftarrow \theta-\beta\nabla_\theta L(\theta)\\
原參數θ\theta中的任意一個參數都對更新後的參數有影響,對於某個任務集更新出的參數θ^\hat\theta對於θ\theta中某一個參數的偏導如下:
l(θ^)θi=l(θ^)θ^jθ^jθi \frac{\partial l(\hat\theta)}{\partial \theta_i}=\frac{\partial l(\hat\theta)}{\partial \hat\theta_j}\frac{\partial \hat\theta_j}{\partial \theta_i}
這裏分兩種情況來看:
θ^jθi={1l(θ)θiθj,i=jl(θ)θiθj,ij \frac{\partial \hat\theta_j}{\partial \theta_i}=\left\{\begin{array}{cc} 1--\frac{\partial l(\theta)}{\partial \theta_i\partial \theta_j}, & i = j\\ -\frac{\partial l(\theta)}{\partial \theta_i\partial \theta_j}, & i\neq j \end{array}\right.
這個時候我們可以將近似l(θ)θiθj\frac{\partial l(\theta)}{\partial \theta_i\partial \theta_j}爲0,也就是將偏導簡化爲:
l(θ^)θi=l(θ^)θ^j \frac{\partial l(\hat\theta)}{\partial \theta_i}=\frac{\partial l(\hat\theta)}{\partial \hat\theta_j}

作者在實驗中也給出了一階導與二階導的對比:

在這裏插入圖片描述

2.Learning to learn by gradient descent by gradient descent

(1)作者研究的問題:用學習的方式來代替手工設計的優化規則

(2)現有的優化器大部分是基於特定領域,採用特別的優化規則。RMSprop,Adam等優化器並不針對於某個特定的問題,其優化更新規則是不變的,只是單純的自適應調節學習率。

(3)貢獻:提出了一種將優化算法的設計轉化爲學習問題的方法,該方法可以用在訓練模型與測試模型結構不同的問題上。

(4)缺點:與MAML想對比,引入了新的參數作爲輸入,參數的梯度或者是梯度的二元組。

在這裏插入圖片描述
在這裏插入圖片描述
作者使用LSTM代替傳統的優化器來對待優化的模型進行優化,同時訓練LSTM來提高優化效果,簡單來說就是用神經網絡訓練神經網絡。傳統的梯度下降基本通過學習率乘以梯度來對參數更新,而論文提出的方法是將梯度值傳入LSTM中,由LSTM來輸出一個更新值來對梯度進行更新:
θ:=θαθL(θ)θ:=θg(θL(θ),ϕ)LSTM \theta :=\theta-\alpha\nabla_\theta L(\theta) \quad\quad\quad\quad 傳統 \\\theta :=\theta-g(\nabla_\theta L(\theta),\phi) \quad LSTM
對於傳統的更新方法,我們可以將θ\theta看做LSTM中的記憶細胞C,其中輸入門與遺忘門分別爲學習率和1:
Ct=ZfCt1+ZiZθt:=1θt1αθL(θ) C_t = Z_f \odot C_{t-1}+Z_i \odot Z \\\theta_t :=1 * \theta_{t-1}-\alpha\nabla_\theta L(\theta)
在這裏插入圖片描述
論文裏面提到了對梯度的預處理,即處理不同數量級別的梯度,來進行BPTT,因爲每個週期的產生的梯度幅度是完全不在一個數量級,前期梯度下降很快,中後期梯度下降平緩,這個對於LSTM的輸入,變化裕度太大,應該歸一化,用梯度的(歸一化幅值,方向)二元組替代原梯度作爲LSTM的輸入。

在這裏插入圖片描述

最後作者用10維的二次函數以及Mnist數據集進行了實驗,有關論文復現可以參考這裏

總的來說,meta learning還是一個挺神奇的研究方向,而且它解決的問題也頗具實際意義。除了前邊介紹的meta learning方法之外,還有一些奇妙的領域有待人們研究和開拓,但是Meta learning 也有一個繞不開的循環,Meta learning也稱爲Learning to learn,那麼是否還需要Learn to learn to learn,Learn to learn to learn to learn…比如MAML的方法是訓練一個好的初始化參數,但是MAML方法本身的模型參數還是隨機初始化的,用LSTM作爲優化器去優化網絡,但是LSTM 本身也是採用傳統的優化方法去優化的,還有許多類似的問題,而解決這些問題對於Meta Learning來說是具有里程碑意義的,因爲那可能標誌着機器學習的完全自動化


持續更新中。。。

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