論文信息:
Nichol A , Achiam J , Schulman J . On First-Order Meta-Learning Algorithms[J]. 2018.
摘要
文章從一個任務分布中抽取許多任務來訓練元學習模型,使其可以更快的學習這個分布中未遇到的任務。
僅在元學習更新過程中僅使用一階微分,就能得到在新任務上實現快速微調的參數初始化。
這里介紹兩種算法:擴展FOMAML和Reptile。First-order MAML是一階MAML,忽略了二階導數得到MAML的近似值;Reptile從一個任務中重復采樣訓練,然后將初始化值移動到該任務的訓練權重(??)
1、介紹
雖然機器學習在很多任務上已經超越了人類,但它們需要多得多的數據才能達到同樣的性能。
人類不是從頭開始學習,而是帶着大量的先驗知識進入任務,這些知識編碼在大腦和DNA中。面對新任務,人類可能是微調或重新組合一些已有的技能。有研究者認為,人類的快速學習能力可以被解釋為貝葉斯推理,具有人類學習速度的算法關鍵是讓算法更加貝葉斯化。但是實際上,利用深度學習網絡和現有計算能力開發貝葉斯機器學習算法是一個很大的挑戰。
元學習出現成為一種小樣本學習方法。不是試圖模仿貝葉斯推理,這在計算上很難處理,而是試圖用任務集直接優化快速學習算法。具體來說,眾多任務構成一個分布,每個任務的訓練集輸入到算法中,算法快速生成一個agent,在任務的測試集上表現良好。
過去主要有兩種方法:一種是將學習算法編碼到循環網絡的權值中,但測試時不執行梯度下降[8]。近期迸發出許多追隨者,例如RL2。另一種是學習網絡的初始化,在測試時對新任務進行微調。這種方法的一個典型實例是使用大型數據集如Imagenet進行與訓練,然后在比較小的數據集上進行微調。然而經典的預訓練方法不能保證學到一個適合於微調的初始化,而且需要一些特別的技巧以獲得良好性能。最近MAML算法直接優化了與此初始化的性能,通過微調過程進行微分。即便接收樣本外的數據,學習者也能落入一個對梯度敏感的學習算法,比RNN的泛化性能更好。但是MAML需要在優化的過程中進行微分,不適用於測試時需要執行大量gradient step的問題。MAML的作者提出了一種變體first-order MAML(FOMAML),忽略二階導數項可用避免這個問題,但丟失了一些梯度信息。但是FOMAML在MiniImageNet數據集上的工作幾乎與MAML一樣好。有些工作預示通過梯度下降法進行微分時忽略二階導數,沒有不良影響。本文擴展這一觀點,並探索基於一節梯度信息的元學習算法的潛力。
Contributions:
1、一階MAML的實現比之前廣泛認可的簡單
2、引入Reptile,一種FOMAML密切相關的算法,實現起來同樣簡單。Reptile與聯合訓練非常相似,但它是一種元學習算法。與FOMAML不同的是,Reptile不需要對每個任務進行訓練集和測試集的分割,這讓它在某些情況下成為更自然的選擇。它也跟以前的fast wights/ slow weights相關[7]。
3、提供了一個適應於一階MAML和Reptile的理論分析,表明它們都優化了任務內部的泛化。
4、在Mini-ImageNet和Omniglot數據集上進行了實驗評價
2、元學習一個初始化
MAML的優化問題:找到一個參數的初始集合Φ,對於隨機采樣的任務和相關損失,學習者可在k次更新后降低損失。U是從τ 中取數據對Φ進行k次更新。
若A是訓練集,B是測試集。MAML優化了泛化,類似於交叉驗證。
其梯度下降計算:
U‘是更新操作U的雅可比矩陣,FOMAML將這些梯度視為常量,及那個雅可比U‘替換為恆等操作。
MAML簡化為:1、采樣任務τ;2、更新參數輸出φ;3、在更新后的參數φ上計算梯度(上式);4、將gFOMAML輸入外循環。
3、Reptile
Reptile和MAML算法已有,對神經網絡模型的參數進行初始化,當測試時優化這些參數,學習變得非常快!即從測試任務的少量示例中進行了概括。
在最后一步,將差值更新改為將該差值作為一個梯度放入自適應算法中,如Adam。具體形式可以是
其中α是SGD操作中的stepsize,並行算法如下:
這種方法看起來很像期望損失的聯合訓練,事實上,如果U被定義為一階梯度下降k=1,那么這種算法等同於期望損失的SGD
當k>1時,U的期望更新將不等於損失函數期望更新,而是將包含損失函數的二次甚至更高階微分項,Reptile的收斂點與最小化E(L)不同。
除了stepsize的參數𝜖和任務采樣外,Reptile的batch版本和SimuparallelSGD算法[21]相同,后者是一種通信效率高的分布式優化算法,比起標准平均梯度法,局部的梯度不經常平均參數。
4、一階sin()曲線回歸的例子
網絡結構:MLP 1-64-64-1
5、理論分析
1、更新的leading order擴展
使用泰勒展開近似Reptile和MAML的更新,均含有同樣的leading-order項:第一項最小化期望損失,第二項和更多感興趣的項最大化任務內泛化能力。特別是,同任務不同minibatch間梯度的內積最大化。如果這個內積為正,一個batch內的梯度下降會改善另一個batch的性能。表達式定義,i為minibatch數,i∈[1,k]
k=2時,對三種算法的梯度更新進行泰勒展開:
進行minibatch采樣,求取三種算法梯度的期望,AvgGrad定義為期望損失的梯度,-AvgGrad使Φ向聯合訓練損失的最小方向邁進;AvgGradInner是梯度內積,-AvgGradInner是相同任務內不同batch梯度內積增加的方向,提升泛化能力。
k=2時,三種算法的梯度期望:
k≥2,三種算法的期望:
三者AvgGradInner和AvgGrad之間的系數比是:MAML>FOMAML>Retile. 這個比例與α和k正相關。
2、找到一個接近所有Solution Manifolds(解流形)的點
六、總結
本文提出一種新的算法Reptile,它的訓練過程與聯合訓練只有細微區別,且只使用一階梯度信息。文章給出Reptile工作原理的兩種理論解釋:
1、通過近似更新的泰勒級數,發現SGD自動給出了MAML計算的二階項相同的項。這一項調整初始權重,以最大限度增加同一任務中不同小批梯度之間的點積,鼓勵同任務小批量之間泛化梯度。
2、Reptile找到一個接近所有任務的最優解流形的點。
5.1的分析結果表明,在進行SGD時,MAML形式的更新過程自動包含其中,最大化不同小批量之間的泛化。這個結果部分解釋了為什么微調(從ImageNet到更小的數據集)可以工作得更好。這一假設表明聯合訓練加微調將繼續是元學習的一個強有力的基礎。
參考文獻:
⭕ 作者博客