鏈接:CVPR 2020 | 用無監督強化學習方法來獲得遷移能力
CVPR2020文章---無監督強化學習獲得遷移能力
引出問題
首先在3d仿真環境中給agent指定一個自然語言的輸入,比如冰箱,agent需要在環境中完整一系列原子動作,從而找到目標,需要完成這個任務,視覺導航能力必不可少。
深度強化學習任務存在的問題
1、通常是data inefficient,需要大量的訓練數據;
2、就算是兩個相似的任務,模型都需要從頭開始訓練。
人類之所以能夠從廣泛的任務中快速學習,是因爲可以學到很多meta-skills,這些meta-skills通常具有遷移能力。具體可以是,直線行駛,繞開障礙物等。
我們的目標
關注視覺導航在少量訓練環境中的應用;
設計一種無監督的學習方法可以讓機器可以掌握這些mata-skills,從而只提供少量樣本讓機器人將meta-skills遷移到視覺導航的任務中來。
meta-learning
什麼是meta-learning
是所謂的learning to learning
不直接直接優化在單個任務上的性能;而是優化模型能夠快速學習任務的能力。
主要分爲三種類型:
這裏主要看第三種類型,基於梯度的方法。
基於梯度的方法
需要找到模型的初始化,可以讓模型快速適應新的任務。
theta是模型參數,三個L是在三個不同任務上的損失函數。我們希望通過少量的bp就可以找到一個讓三個任務都到達最優的點。
meta-learning學習分爲以下兩個階段
meta-trainning和meta-testing
在meta-trainning階段,有比傳統方法多的訓練樣本,這裏是一些task,讓模型學到一組初始化值,到所有的任務的最優解都比較接近;
在meta-testing中,給定新的任務,以及給定的數據,只需要少量的更新就可以。
問題及解決方案
缺點:
1、在trainning階段需要手工定義很多樣本。
解決:無監督強化學習
2、同時如果就用少量樣本訓練,容易造成overfitting。
解決:分層策略網絡
具體工作
1、curriculum-base Adversarial training Strategy
課程基地對抗性訓練策略
由兩部分組成
Task Generator:生成模塊,用來產生任務供Meta-Learning學習
Meta-Learning:完成任務並可以學到一組在各個任務之間共享的子策略。使用meta-learning算法進行更新。
具體定義三種rewards,來鼓勵Task Generator產生適合Meta-Learning難度的任務,並可以隨着Meta-learning能力提升對任務難度進行升級。
例如:
Generator走到一個點,將看到的任務信息傳送給Meta-Learning
2、Hierarchical Policy
Master Policy選擇採用什麼原子policy。原子Policy可以是比如直行,左等。
對於不同任務,可以有不同的Master Policy,sub-Policy(meta-skills)是在任務中共享的。
3、Meta-Reinforcement Learning
Master Policy對於特定任務進行更新,sub-Policy是共享的。
總結
首先在無標註數據中,根據生成網絡訓練參數theta,然後在少量有標註數據中進行少量更新,學習一個Master Policy。