元學習方法MAML應用於有監督學習

對論文Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks一部分難點的解讀。

理解MAML中的元學習概念

MAML中,meta learning被體現爲使用task進行訓練、驗證和測試的任務。這裏的task是一個典型的機器學習任務,比如分類問題:

1.任務之間沒有關係,而元學習的目的是通過學習一系列任務獲得先驗知識,從而在進行新的任務時能用更少的信息獲得較好的學習效果。
2.任務的地位和普通的學習任務中的數據是一樣的,雖然任務本身也是一個包含訓練數據,測試數據和評價方法的機器學習任務。

MAML應用於有監督學習

原文的算法如下:
在這裏插入圖片描述
解讀:

每一步,對第i個任務Ti執行如下過程:

  • 1.初始狀態:模型的全體參數暫時爲θ\theta,準備使用任務Ti(包括訓練數據xi和測試數據yi)訓練。
    MAML中,模型的結構是完全確定的(提前由超參數確定)。這裏說的模型參數θ\theta不包括模型的超參數,而是確定模型forward函數的可變參數。
  • 2.訓練:對訓練數據xi和現有參數θ\theta進行一步訓練,即forward->計算loss->loss.backward的過程,得到模型新的參數θi\theta_i'
  • 3.測試:對於參數爲θi\theta_i'的模型,使用測試數據yi和現有參數θi\theta_i'進行一步測試,即forward->計算loss的過程,得到這個任務的loss
  • 4.更新參數:把每個任務的loss加起來作爲最終的loss,然後對θ\theta進行backward,得到新的θ\theta
    經過多次迭代,θ\theta的值得到優化,使得對於一個新的任務,給定的θ\theta在一開始就使得模型具有較好的效果。

由此可見,MAML方法爲新任務提供的先驗知識是模型的初始化參數。這種方法要求所有的任務使用架構相同的模型,通過訓練任務的訓練,MAML能夠爲測試任務提供一個在一開始就表現較好的模型,從而在小樣本訓練中獲得較好效果。

MAML/元學習和有監督學習的比較

將上述方法和傳統的有監督學習比較:
MAML:

  • 0.在這一步之前,模型的參數暫時爲θ\theta.
  • 1.forward: H組輸入,其中第i組是任務Ti.Ti輸入模型得到輸出θi\theta_i'
    (相當於上一節過程中的第一步和第二步是forward)
  • 2.backward: 利用H個θi\theta_i'計算loss,並backward更新θ\theta.
    (相當於上一節過程中的第三步和第四步,根據forward結果計算loss並backward)

傳統的有監督學習:

  • 0.在這一步之前,模型的參數暫時爲θ\theta.
  • 1.forward: H組輸入,其中第i組是數據xi.輸入模型得到輸出yiy_i'
  • 2.backward: 利用H個yiy_i'計算loss,並backward更新θ\theta.

一個小trick
傳統的有監督學習中,計算loss是對於θ\theta計算的,但是對應的原論文的步驟是對θi\theta_i'計算的。
對於這一點,原論文的解釋如下:
在這裏插入圖片描述
理論上確實應該用對於θ\theta計算,但原論文爲了計算方便,使用了一階近似值,也就是用總loss對θi\theta_i'的梯度近似替代總loss對θ\theta的梯度。

實驗

原論文包括三部分實驗,regression很dummy,classification就是對最典型的兩個小樣本學習數據集Omniglot和miniImagenet的測試,RL就是Benchmarking Deep Reinforcement Learning for Continuous Control裏面的任務。在這方面沒有什麼可以學習的。論文在分類任務上獲得了SOTA,在RL任務上大幅縮短了訓練時間。

參考

  • 原始論文
  • 論文作者在ICML 2019進行的tutorial
  • 李宏毅的meta learning tutorial
  • 知乎上關於MAML的很多講解帖
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章