Learning by Playing - Solving Sparse Reward Tasks from Scratch(然而我其實沒有通讀過)

Learning by Playing - Solving Sparse Reward Tasks from Scratch

最近好喪,所以上交一篇非常低質量的讀書筆記。洗洗腦。

連paper都沒讀過,我就來寫了,呵呵噠。

(有空之後再補吧,就介紹個大概就好了。)

這篇文章是這樣的,是我們robotics reading group介紹的,感覺挺有意思,所以就推薦一下。(對,這是推薦,並不是認真的讀書筆記)

(我也不知道我一個vision的人怎麼老是寫其他領域的筆記。大概是因為vision寫的人太多了吧)

問題的setting,就是機器人,要學習完成一個主任務(main task),但是呢,這個任務很複雜,很難隨機到,所以reward很sparse(因為任務成功了才會有reward)。這篇文章提出使用一些auxiliary tasks。在訓練(也就是explore)的時候,我們不直接去執行主任務的policy,而是隨機的去執行auxiliary task的policy,然後希望這樣能更容易隨機到主任務也成功,這樣就能獲得更dense的reward。

咋一看好像就像是option嗎?把一個任務分解成多個option,學hierarchy的policy。然而並不是這樣的。

這片文章的auxiliary task是為了在訓練的時候有方向性的explore用的,而主任務有自己單獨policy,是跟其他task無關的。而option的話,policy本身就是包含"subtasks"且測試的時候會去選擇不同的option執行。

這篇文章思想其實類似於active learning,我們設計這些auxiliary task,是為了能在訓練(explore)的時候更好的explore;能更快的訓練;能獲得更多的訓練信息。


那具體是怎麼用的呢。

我們假設有很多task,包括我們要完成的main task,和一些auxiliary tasks。對於每一個task我們都可以學到一個policy,文中稱之為intention。除了intentions之外呢,我們還學一個scheduler。scheduler就是active learning的part了。在訓練的時候,在每個episode的固定時間點,它會選擇一個task,然後之後agent根據那個task的intention了執行policy。

(如果想要對應option的話,intention就是每個option,而scheduler就是選擇option的policy。然而,再重複一遍,option是在test的時候使用,而這裡scheduler,auxiliary tasks的intentions都是只有在訓練的時候用到,在測試的時候只有main task的intention(policy)會被用到。)

得到了一個episode之後,所有的intention根據off-policy的方式更新policy(具體是使用了一個叫retrace的方法,大概就是q learning的一個高級版本。)

同時我們也需要scheduler,scheduler的objective就是選擇合適的task,使得每個episode的積攢的main task的reward最高。(也就是說有更多有用的訓練數據給main task的policy去訓練。)

scheduler沒有很高級的訓練方法,文章中說就是維護了一張表。


走一下流程找個感覺

訓練之前,初始化scheduler為uniform隨機的,定義好auxiliary tasks。

一開始的話,就是完全隨機的task,隨機的policy。隨著漸漸訓練,由於一些簡單的任務可以獲得正reward,所以policy漸漸合理。突然有一次,你先完成任務1,在完成任務2,結果你得到了主任務的reward,你就知道了,哦,scheduler要先選任務1,再選任務2。同時你也能獲得main task的reward,來更新main task的policy的。

reading group上presenter說文中沒有提到scheduler會隨著訓練如何變化,我覺得其實挺有必要看看的。因為,理論上(我覺得),到最後,scheduler只會選擇main task,因為你已經為main task選到了一個optimal的policy,所以就不需要在先跑其他task了。

推薦相關閱讀(這是我認真度過的paper,orz,看看有機會下次如果可以寫):

Learning by asking

同樣是active learning style的文章。task是vqa。我們希望有一個question selector,可以自動挑選問題,來問oracle(假設存在oracle,且oracle能提供一個正確答案);根據挑選的問題和對應的答案,我們用這些來訓練vqa system。我們希望找到這樣一個question selector使得用自動挑選出來的訓練數據最後訓練出來的vqa system好。


推薦閱讀:

為什麼機器人能到太空中去工作?
中國掀「機器人革命」對美國製造業的影響有多大?
【中紳機器人】直擊電話銷售痛點,電話機器人輕鬆上陣
機器人怎麼玩?
機器人操作系統(ROS)史話篇連載9(烏龜)

TAG:機器人 | 強化學習ReinforcementLearning |