對論文Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks一部分難點的解讀。
理解MAML中的元學習概念
MAML中,meta learning被體現爲使用task進行訓練、驗證和測試的任務。這裏的task是一個典型的機器學習任務,比如分類問題:
1.任務之間沒有關係,而元學習的目的是通過學習一系列任務獲得先驗知識,從而在進行新的任務時能用更少的信息獲得較好的學習效果。
2.任務的地位和普通的學習任務中的數據是一樣的,雖然任務本身也是一個包含訓練數據,測試數據和評價方法的機器學習任務。
MAML應用於有監督學習
原文的算法如下:
解讀:
每一步,對第i個任務Ti執行如下過程:
- 1.初始狀態:模型的全體參數暫時爲,準備使用任務Ti(包括訓練數據xi和測試數據yi)訓練。
MAML中,模型的結構是完全確定的(提前由超參數確定)。這裏說的模型參數不包括模型的超參數,而是確定模型forward函數的可變參數。- 2.訓練:對訓練數據xi和現有參數進行一步訓練,即forward->計算loss->loss.backward的過程,得到模型新的參數
- 3.測試:對於參數爲的模型,使用測試數據yi和現有參數進行一步測試,即forward->計算loss的過程,得到這個任務的loss
- 4.更新參數:把每個任務的loss加起來作爲最終的loss,然後對進行backward,得到新的
經過多次迭代,的值得到優化,使得對於一個新的任務,給定的在一開始就使得模型具有較好的效果。
由此可見,MAML方法爲新任務提供的先驗知識是模型的初始化參數。這種方法要求所有的任務使用架構相同的模型,通過訓練任務的訓練,MAML能夠爲測試任務提供一個在一開始就表現較好的模型,從而在小樣本訓練中獲得較好效果。
MAML/元學習和有監督學習的比較
將上述方法和傳統的有監督學習比較:
MAML:
- 0.在這一步之前,模型的參數暫時爲.
- 1.forward: H組輸入,其中第i組是任務Ti.Ti輸入模型得到輸出
(相當於上一節過程中的第一步和第二步是forward)- 2.backward: 利用H個計算loss,並backward更新.
(相當於上一節過程中的第三步和第四步,根據forward結果計算loss並backward)
傳統的有監督學習:
- 0.在這一步之前,模型的參數暫時爲.
- 1.forward: H組輸入,其中第i組是數據xi.輸入模型得到輸出
- 2.backward: 利用H個計算loss,並backward更新.
一個小trick
傳統的有監督學習中,計算loss是對於計算的,但是對應的原論文的步驟是對計算的。
對於這一點,原論文的解釋如下:
理論上確實應該用對於計算,但原論文爲了計算方便,使用了一階近似值,也就是用總loss對的梯度近似替代總loss對的梯度。
實驗
原論文包括三部分實驗,regression很dummy,classification就是對最典型的兩個小樣本學習數據集Omniglot和miniImagenet的測試,RL就是Benchmarking Deep Reinforcement Learning for Continuous Control裏面的任務。在這方面沒有什麼可以學習的。論文在分類任務上獲得了SOTA,在RL任務上大幅縮短了訓練時間。