1. 程式人生 > 其它 >ON THE ROLE OF PLANNING IN MODEL-BASED DEEP REINFORCEMENT LEARNING

ON THE ROLE OF PLANNING IN MODEL-BASED DEEP REINFORCEMENT LEARNING


發表時間:2021(ICLR 2021)
文章要點:這篇文章想要分析model-based reinforcement learning (MBRL)裡面各個部分的作用。文章以muzero為基礎,回答了三個問題
(1) How does planning benefit MBRL agents?
(2) Within planning, what choices drive performance?
(3) To what extent does planning improve generalization?
得出的結論是
(1)planning在learning階段使用是最有用的,作用主要體現在生成資料和計算learning target,評估階段在大多數環境上只有輕微提升。
(2)除了某些複雜的需要推理的任務,大多數任務只需要淺層的planning就足夠了,太深是沒有必要的。甚至直接Monte-Carlo rollouts而不需要tree search就夠了(Note that DUCT = 1 corresponds to only exploring with pUCT at the root node and performing pure Monte-Carlo sampling thereafter. We find DUCT to have no effect in any environment except 9x9 Go)。
(3)只靠planning不足以產生強大的泛化性。
作者把MBRL分成兩大類,一類是decision-time planning,通過model來選擇動作。另一類是background planning,用model來更新policy,policy選動作。然後作者認為muzero和各種MBRL都有很深刻的聯絡,比如直接用MCTS就是decision-time planning,訓練的時候用MCTS,選擇動作的時候直接用policy就是background planning,所以用muzero來做實驗再好不過。
作者基於muzero做了這麼幾個變種:One-Step,Learn,Data,Learn+Data,Learn+Data+Eval。這裡先要解釋幾個和planning相關的定義,如下圖

\(D_{tree}\)

是整個搜尋過程的深度,\(D_{UCT}\)就是說用MCTS搜尋的深度,\(B\)是search budget,表示總的搜尋次數。如果搜尋深度小於\(D_{UCT}\),就用MCTS的方式搜尋;如果超過了\(D_{UCT}\)但是沒有超過\(D_{tree}\),就通過policy來搜尋;如果到達了\(D_{tree}\),就停止搜尋。
另外在介紹幾種變種的含義之前,還要區分幾個詞的意思,learning,act,training,test。Learning就是說學value和policy的過程,如果是\(D_{tree}\)=1,就只有一步的target value,就相當於1-step Q learning的形式。Act指做動作用什麼,用MCTS選動作或者用policy輸出動作。Training就是指整個訓練過程,這個過程既包括訓練網路,也包括planning,所以自然會包括learning和act。Test就是測試或者說評估,這個過程會包括act。然後幾種變種的含義如下:
One-Step就是learning的時候設定\(D_{tree}=1\)
,只估計1-step return,訓練和評估的動作都通過policy網路輸出。Model的訓練就只預測一步,其他的變種都預測的5步。所以這個變種比較像model free的版本,因為只會planning一步,而且整個更新和Q learning很像。
Learn就是在learning的時候設定\(D_{tree}=\infty\),就會有n-step return來做target value。但是訓練和評估的動作還是通過policy網路輸出。這相當於度量搜尋深度對learning的影響,而不是act,而且這裡並沒有MCTS。
Data就是在learning的時候設定\(D_{tree}=1\)
,訓練的時候動作通過MCTS選擇,MCTS的深度為\(D_{tree}=\infty\),test的時候動作用policy網路輸出。這相當於度量MCTS在收集資料中的作用。
Learn+Data就是在learning的時候設定\(D_{tree}=\infty\),訓練的時候動作通過MCTS選擇,MCTS的深度為\(D_{tree}=\infty\),test的時候動作用policy網路輸出。
Learn+Data+Eval就是muzero。


測試結果如下圖

此外,作者還給出了一些很有意思的結論:
很多環境可能並不適合用來測試model based方法和planning,因為這些環境可能就不需要複雜的推理。
如果你的value和policy在learning的時候沒有學好,那planning也不會有用。
增加planning的budget通常有好處,但太大甚至會有壞處,這點我估計應該是model不準的原因(compounding model errors)。
總結:很有意思的一篇文章,實驗做的很多,結論也很有意思。
疑問:關於第一條結論:planning在learning階段使用是最有用的,作用主要體現在生成資料和計算learning target,評估階段在大多數環境上只有輕微提升。感覺在policy初期的時候,評估階段的planning應該會很有用吧。