Meta Learing

而人類之因此可以快速學習的關鍵是人類具有學會學習的能力,可以充分的利用以往的知識經驗來指導新任務的學習,所以Meta Learning成爲新的攻克的方向。 網絡

可是Meta Learning由於具有學會學習的能力,或許也能夠學會思考學習

 

學會學習最主要的能力是在面對相似的任務時可以利用歷史經驗,加速網絡的訓練學習編碼

 

如今的meta learning方式主要分爲一下幾類:spa

基於記憶Memory的方法 
  基本思路:既然要經過以往的經驗來學習,那麼是否是能夠經過在神經網絡上添加Memory來實現呢
code

 

基於預測梯度的方法 
  基本思路:既然Meta Learning的目的是實現快速學習,而快速學習的關鍵一點是神經網絡的梯度降低要準,要快,那麼是否是可讓神經網絡利用以往的任務學習如何預測梯度,這樣面對新的任務,只要梯度預測得準,那麼學習得就會更快了? blog

 

利用Attention注意力機制的方法 圖片

  基本思路:人的注意力是能夠利用以往的經驗來實現提高的,好比咱們看一個性感圖片,咱們會很天然的把注意力集中在關鍵位置。那麼,能不能利用以往的任務來訓練一個Attention模型,從而面對新的任務,可以直接關注最重要的部分。 it

 

借鑑LSTM的方法 
  基本思路:LSTM內部的更新很是相似於梯度降低的更新,那麼,可否利用LSTM的結構訓練出一個神經網絡的更新機制,輸入當前網絡參數,直接輸出新的更新參數?io

 

面向RL的Meta Learning方法 
  基本思路:既然Meta Learning能夠用在監督學習,那麼加強學習上又能夠怎麼作呢?可否經過增長一些外部信息的輸入好比reward,以前的action來實現? 配置

 

經過訓練一個好的base model的方法,而且同時應用到監督學習和加強學習 
  基本思路:以前的方法都只能侷限在或者監督學習或者加強學習上,能不能搞個更通用的呢?是否是相比finetune學習一個更好的base model就能work?

 

利用WaveNet的方法 
  基本思路:WaveNet的網絡每次都利用了以前的數據,那麼是否能夠照搬WaveNet的方式來實現Meta Learning呢?就是充分利用以往的數據呀? 

 

預測Loss的方法 
  基本思路:要讓學習的速度更快,除了更好的梯度,若是有更好的loss,那麼學習的速度也會更快,所以,是否是能夠構造一個模型利用以往的任務來學習如何預測Loss呢? 

 

 

如今所瞭解的兩種meta learning 方式:

1.先構建出一個初始化網絡,後面在根據新任務的需求微調初始化網絡,從而實現加速學習的能力

 

2.讓AI在學習各類任務後造成一個核心的價值網絡,從而面對新的任務時,能夠利用已有的核心價值網絡來加速AI的學習速度!

上圖爲Meta-Critic Network的基本示意圖。咱們以CartPole這個讓杆保持平衡的任務來作分析。在咱們這裏,杆的長度是任意的,咱們但願AI在學習了各類長度的杆的任務後,面對一個新的長度的杆,可以快速學習,掌握讓杆保持平衡的訣竅。

怎麼作呢?

每個訓練任務咱們都構造一個行動網絡(Actor Network),可是咱們只有一個核心指導網絡(Meta-Critic Network),這個網絡包含兩部分:一個是核心價值網絡(Meta Value Network),另外一個則是任務行爲編碼器(Task-Actor Encoder)。

咱們用多個任務同時訓練這個Meta Critic Network。訓練方式能夠是常見的Actor-Critic。訓練時最關鍵的就是Task-Actor Encoder,咱們輸入任務的歷史經驗(包括狀態state,動做action,和回饋reward),而後獲得一個任務的表示信息z,將

z和通常價值網絡的輸入(狀態state和動做action)鏈接起來,輸入到Meta Value Network中。

經過這種方式,咱們能夠訓練出一個Meta Critic Network。面對新的任務(也就是杆的長度變化了),咱們新建一個行動網絡Actor Network,可是卻保持Meta Critic Network不變,而後一樣使用Actor-Critic方法進行訓練。這個時候,效果就出來了,

咱們能夠學的很是快:

看第一個圖的紫色學習曲線,reward的上升速度很是快,standard是徹底的Actor-Critic訓練,基本就仍是平的(通常對於CartPole任務須要訓練幾千次才能收斂到195的得分經過任務)。而後看右邊第三個圖,在僅僅玩100個杆訓練後,Meta-Critic方法就

可以達到25%經過任務的成功率,而其餘方法都還早着呢。實際上paper也沒有顯示的一個結果是基於Meta Critic Network訓練300步可讓任務經過率基本達到100%。這種結果很是的promising!那麼咱們會關心任務行爲編碼器(Task-Actor Encoder)學

到了什麼?因而咱們把不一樣任務的z提取出來用t-SNE顯示如中間那個圖所示。而後咱們驚訝的發現z的分佈和CartPole杆的長度是直接相關的,這意味着任務行爲編碼器確實能夠利用以往的經驗來理解一個任務的配置信息。

相關文章
相關標籤/搜索