A0C: Alpha Zero in Continuous Action Space


發表時間:2018
文章要點:這篇文章提出A0C算法,把AlphaZero做到連續動作空間上,主要使用的方式是progressive widening和continuous prior(就是continuous policy network)。具體的,progressive widening就是說在做MCTS的時候,節點的擴展沒法像離散動作空間那樣直接把所有動作都擴展開,所以擴展的節點是一個和當前模擬次數有關的一個函數

這裏\(n(s)\)就是當前狀態訪問次數,\(κ\)\(n\)是參數,\(m(s)\)就是在這個狀態下擴展多少個節點。這個意思就是說,隨着訪問次數增加,擴展節點的個數纔會逐漸增加,這個就是progressive的含義。
另一個改變就是Continuous policy network prior。在做MCTS的時候需要給每個節點一個先驗概率,之前離散的情形下,網絡是輸入狀態然後給出所有動作的概率。連續的情形顯然辦不到,於是變成輸入狀態和一個動作,給出概率。訓練的時候,就根據當前樹的節點以及孩子節點的訪問次數,算一個歸一化的概率

嚴格意義上來說,離散情形應該定義概率密度函數,並且滿足積分是1.但是作者也說了,這個其實是很難做到,所以實際操作的時候還是通過這種用訪問次數來估計一個概率的方式來做的。最後爲了避免policy collapse,訓練的時候還加了個entropy的正則項。
這裏還有一個細節可以注意一下,就是在做progressive widening的時候,擴展節點的動作選擇,也剛好可以用這個policy來採樣概率大的動作來擴展。
其他地方就和AlphaZero一樣了,比如MCTS的流程,value的估計等等。
總結:章很簡潔,方法也make sense。之前我也在考慮怎麼把MCTS做到連續動作空間,結果這麼久了也一直沒做過,唉。
疑問:裏面前面對policy的分佈要求那裏,理論上要求概率密度函數的積分是1,但是實際上做不到。於是作者又轉成了離散的方式,用visit count算概率。話說能不能做個高斯假設之類的,用這種方式來做行得通嗎?
這個文章式子(6)那裏明明是最小化KL divergence,爲啥會用REINFORCE算法來優化這個loss?

文章估計value的時候,說直接用網絡在根節點輸出value,難道不結合樹搜索先往下走一定深度嗎?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章