Revisiting Fundamentals of Experience Replay


發表時間:2020(ICML2020)
文章要點:這篇文章研究了experience replay in Q-learning,主要考慮了兩個方面:replay capacity(buffer的大小,the total number of transitions stored in the buffer)和ratio of learning updates(replay ratio,樣本收集和更新的比例, the number of gradient updates per environment transition)。這裏的replay ratio沒有考慮batch size的大小,只考慮多少個step更新一次,比如DQN是每4步更新一次,那replay ratio就是0.25。
這裏作者引入了一個oldest policy,就是說這個buffer裏面的樣本是由多少個不同的policy產生的,比如1M的buffer,然後replay ratio爲0.25,每更新一次網絡其實就改變了policy,那麼總共oldest policy就有250,000個。

然後主要結論是更大的capacity可以提高性能,n-step return雖然有偏,但是相對於PER, Adam, C51,對性能的提升是最大的。
具體的,(1)Increasing replay capacity improves performance.
這裏更大的capacity,其實replay ratio是改變了的,不變的是oldest policy的數量,就相當於我的buffer變大了,同時我的更新頻率變低了,這樣保持oldest policy的數量不變。

這其實也可以理解,相當於我的樣本更多了,state-action coverage更大了,當然就會好些。但是這有個問題就是,fix the total number of gradient updates,同時replay ratio降低,這就意味着和環境的交互次數會變大,sample efficiency其實下降了,每個樣本被用到的次數變少了。
(2)Reducing the oldest policy improves performance.
這個結論還是從圖2得到的,就是說每一列裏面可以看到,oldest policy越少,效果就越好。然後作者就說learning from more on-policy data may improve performance。這裏其實還是那個問題,減少oldest policy其實是增加了和環境交互的次數,感覺效果好也是理所當然的。
(3)Increasing buffer size with a fixed replay ratio has varying improvements.
這個實驗相當於說這個時候是沒有一個一致的結論的。不過我個人覺得這纔是最公平的實驗,因爲這個時候和環境交互的次數是一樣的。
之前的實驗在Rainbow上做的,接着作者做了一個DQN的實驗,然後發現對於DQN來說,基本沒啥用

接着作者就研究到底是Rainbow裏的哪個改進讓它的效果提升了,得出的結論就是n-step return

這個結論感覺也不是讓人喫驚的。畢竟實驗設置裏面控制的是總的更新次數,改變replay capacity和oldest policy就會增加和環境的交互次數,這樣用來估計n-step return肯定就比DQN的1-step效果好,自然就和replay capacity以及oldest policy這兩個因素相關了。
總結:從不同的角度研究了replay buffer的作用吧,個人感覺實驗設置是不太科學的。
疑問:感覺還是這個問題,因爲是固定了梯度更新次數,那麼其實改變replay capacity或者oldest policy會改變和環境交互的次數,這麼比較真的公平嗎?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章