强化学习笔记 experience replay 经验回放
?1 回顧 :DQN
DQN 筆記 State-action Value Function(Q-function)_UQI-LIUWJ的博客-CSDN博客
DQN是希望通過神經網絡來學習Q(s,a)的結果,我們輸入一個人狀態s,通過DQN可以得到各個action對應的Q(s,a)
通常用TD來求解DQN
其中rt是實際進行交互得到的真實獎勵,Q(s,a),是預測得到的價值函數
(注:Q是fixed target network,所以qt和yt會稍有不同)?
在之前我們所說的DQN中,我們每次采樣得到一組episode??,然后就用這組episode來計算相應的loss,進行梯度下降更新參數?
而用這組數據訓練了模型之后,這組數據就被丟棄了
2 TD算法的缺點
2.1 缺乏經驗?
而事實上,經驗是可以重復使用的?
2.2 correlated updates
比如玩游戲,當前畫面和下一幀畫面之間的區別會非常小,也就是會非常相近。實驗證明把這些episode數據盡量打散,有利于訓練得更好
3 經驗回放
經驗回放可以克服之前的兩個缺點
把最近的n條記錄存到一個buffer里面
如果存滿了,每次存入一條新的transition,就刪除當前最老的那一條transition
3.1 使用經驗回放之后的TD
????????這里是從buffer中隨機選擇一個transition,實際上是從buffer中隨機選擇一個batch,做mini-batch SGD?
3.2 經驗回放的好處
1 打破了transition的關聯性
2 經驗可以重復使用
4 優先經驗回放
buffer里面有多條 transition,每條的優先級各不相同
????????比如以超級瑪麗為例,左邊是普通關卡,右邊是打boss的關卡。左邊常見右邊不常見。由于右邊的經驗少,所以很難真正訓練除右邊的情況應該如何做決策,在這種情況下,右邊的重要性更大一些。
? ? ? ? ?在priority experience replay 中,如果一條transition有更高的TD error δt,那么我們就認為他距離TD target比較大,DQN就不熟悉這個場景,所以需要給他較大的優先級。
????????
? ? ? ? 優先經驗回放的思路就是用非均勻抽樣代替均勻抽樣,有兩種抽樣方法
? ? ? ? rank(t)是δt排序后的序號,δt越大,rank(t)越小
????????抽樣的時候是非均勻采樣的,我們需要相應地調整學習率,以減少不同抽樣概率帶來的偏差
????????
????????如果一條transition有較大的抽樣概率,那么他的學習率應當相應地小一些 (用來抵消大抽樣概率帶來的偏差,因為大抽樣概率那么我被采樣到的次數就會稍多)
????????如果一條transition 剛被采集到,我們是不知道他的δt的,此時我們直接給他設置最大的優先級,也就是未被使用過的transition具有最高的優先級
? ? ? ? 每次使用一條transition之后,我們都要重新更新他的δt
參考資料:
深度強化學習(全)_嗶哩嗶哩_bilibili
總結
以上是生活随笔為你收集整理的强化学习笔记 experience replay 经验回放的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pytorch 笔记:gather 函数
- 下一篇: pytorch 笔记: DQN(expe