TOPOLOGICAL EXPERIENCE REPLAY


發表時間:2022(ICLR 2022)
文章要點:這篇文章指出根據TD error來採樣是低效的,因爲估計TD error的target Q就不準(since a state's correct Q-value preconditions on the accurate successor states' Q-value.)。爲了解決這個問題,文章提出Topological Experience Replay (TER),將experience存成一個圖結構,然後用breadth-first search從terminal state開始更新(reverse sweep)。爲了打破數據之間的相關性,抽取的batch混合了reverse sweep和隨機採樣。最終在goal-reaching tasks上取得了不錯的效果。
具體的,作者用hash table來構建圖,先用random projection將狀態編碼,存成圖裏的頂點,然後動作爲邊。然後圖是動態更新的,每個step都會把新來的transition構建到圖裏。
有了圖之後就,剩下的就是怎麼採樣更新。首先有一個terminal states的集合,先從這個集合裏採一個子集出來\(v^\prime\),然後再找對應的前一個狀態以及動作\(v,a\),湊成一步的transition。然後等這些transition被訓練過後,下一次就從\(v\)開始,去找再上一步的狀態和動作,湊成一個新的batch,就這樣從後往前全部更新一遍。等一輪走完之後,再重複這個過程。另外,因爲有的狀態可能不能到達terminal state,所以再隨機採樣一些樣本,混合到一起訓練(BATCH MIXING),作者用的是TER結合PER,作者是\(\eta\)的PER混合\(1-\eta\)的TER,其中\(\eta\)取0.1,02的時候表現最好。

僞代碼如下

總結:也是想說更新順序非常重要,不過存成圖結構感覺有點人工干預過多了,主要的實驗環境都是迷宮類型的,可能graph建起來比較簡單,因爲總的狀態數不多,添到圖裏的時候都會重複,如果是Atari那種,估計完全一樣的狀態會少很多。
疑問:文章說BATCH MIXING的作用是ensuring those transitions disconnected from terminal states to be updated,會有這樣的狀態存在嗎?更重要的作用會不會是打亂數據的相關性,不然更新會不會出問題?
這裏建圖的主要目的就是爲了合併狀態,回溯更新Q。有沒有類似的方法,直接在buffer裏實現這個更新,不用建圖?
文章用了一個random projection的方式來做hash,這麼做的好處是啥,爲什麼不用現成的MD5之類的方式?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章