【强化学习】DDPG
目錄
- Deep Deterministic Policy Gradient算法
- 隨機策略 與 確定性策略
- DPG 與 DDPG
- 深度確定性策略梯度算法DDPG概述
- 對比DDQN
- DDPG網(wǎng)絡功能:
- 網(wǎng)絡軟更新:
- 引入噪聲:
- 兩個網(wǎng)絡的損失函數(shù):
- DDPG算法流程
- 小結(jié)
強化學習筆記,內(nèi)容來自 劉建平老師的博客
?
Deep Deterministic Policy Gradient算法
隨機策略 與 確定性策略
? 確定性策略(Deterministic Policy) 和 隨機策略 是相對而言的,對于某一些動作集合來說,它可能是連續(xù)值,或者非常高維的離散值,這樣動作的空間維度極大。如果使用隨機策略,即像DQN一樣研究它所有的可能動作的概率,并計算各個可能的動作的價值的話,那需要的樣本量是非常大才可行的。于是有人就想出使用確定性策略來簡化這個問題。
? 作為隨機策略,在相同的策略,在同一個狀態(tài)處,采用的動作是基于一個概率分布的,即是不確定的。而確定性策略則決定簡單點,雖然在同一個狀態(tài)處,采用的動作概率不同,但是最大概率只有一個,如果只取最大概率的動作,去掉這個概率分布,那么就簡單多了。即作為確定性策略,相同的策略,在同一個狀態(tài)處,動作是唯一確定的,即策略變成
?
DPG 與 DDPG
? 從 DPG 到 DDPG 的過程,完全可以類比 DQN 到 DDQN 的過程。加入了經(jīng)驗回放(Experience Replay) 和 雙網(wǎng)絡,即當前網(wǎng)絡和目標網(wǎng)絡的概念。而由于現(xiàn)在本來就有Actor網(wǎng)絡和Critic兩個網(wǎng)絡,那么雙網(wǎng)絡后就變成了4個網(wǎng)絡,分別是:Actor當前網(wǎng)絡,Actor目標網(wǎng)絡,Critic當前網(wǎng)絡,Critic目標網(wǎng)絡。2個Actor網(wǎng)絡的結(jié)構(gòu)相同,2個Critic網(wǎng)絡的結(jié)構(gòu)相同。
?
深度確定性策略梯度算法DDPG概述
對比DDQN
? DDQN的當前Q網(wǎng)絡負責計算當前狀態(tài)S的可執(zhí)行動作Q值,然后使用ε-greedy策略選擇動作A,執(zhí)行動作A獲得新狀態(tài)S’、獎勵 R,將樣本放入經(jīng)驗池,對經(jīng)驗池中采樣的下一狀態(tài)S‘ 計算可執(zhí)行動作,然后使用貪婪策略選擇動作A’,供目標Q網(wǎng)絡計算Q值,當目 標Q網(wǎng)絡計算出目標Q值后計算Loss Function并梯度反向傳播更新參數(shù)。目標Q網(wǎng)絡負責結(jié)合當前Q網(wǎng)絡按照Q值與動作解耦思想計 算經(jīng)驗池樣本的目標Q值,并定期從當前Q網(wǎng)絡更新參數(shù)。
? DDPG中,Critic當前網(wǎng)絡、Critic目標網(wǎng)絡 和 DDQN的當前Q網(wǎng)絡、目標Q網(wǎng)絡的功能定位基本類似。但是DDPG有屬于自己的 Actor策略網(wǎng)絡,因此不需要??greedy策略而是用Actor當前網(wǎng)絡選擇動作A。而對經(jīng)驗池中采樣的下一狀態(tài)S′不需要用貪婪法而是由 Actor目標網(wǎng)絡選擇動作A‘。
DDPG網(wǎng)絡功能:
? 1. Actor當前網(wǎng)絡:負責策略網(wǎng)絡參數(shù)θ的迭代更新,負責根據(jù)當前狀態(tài)S選擇當前動作A,用于和環(huán)境交互生成S′、R
? 2. Actor目標網(wǎng)絡:負責根據(jù)經(jīng)驗池中采樣的下一狀態(tài)S′ 選擇最優(yōu)下一動作A′,網(wǎng)絡參數(shù)θ′ 定期從θ復制
? 3. Critic當前網(wǎng)絡:負責價值網(wǎng)絡參數(shù)w的迭代更新,負責計算當前Q值Q(S, A, w)
? 4. Critic目標網(wǎng)絡:負責計算目標Q值中的Q′(S′, A′, w′)部分,網(wǎng)絡參數(shù)w′ 定期從w復制
網(wǎng)絡軟更新:
? DDPG中,當前網(wǎng)絡到目標網(wǎng)絡的參數(shù)更新每次按比例更新,而不是完全復制:
?
? 其中,τ 是更新系數(shù),一般取的比較小,比如0.1或者0.01這樣的值。
引入噪聲:
? 為了學習過程可以增加一些隨機性,增加學習的覆蓋,DDPG對選擇出來的動作AA會增加一定的噪聲N,即最終和環(huán)境交互的動作A的表達式是:
?
兩個網(wǎng)絡的損失函數(shù):
? 1. Critic當前網(wǎng)絡使用均方誤差:
?
? 2. Actor當前網(wǎng)絡使用的確定性策略損失函數(shù):
?
?
DDPG算法流程
輸入:Actor當前/目標網(wǎng)絡,Critic當前/目標網(wǎng)絡,參數(shù)分別為θ,θ′,w,w′、衰減因子γ、軟更新系數(shù)τ、批量梯度下降的樣本數(shù)m、目標Q網(wǎng) 絡參數(shù)更新頻率C、最大迭代次數(shù)T、隨機噪音函數(shù)N
輸出:最優(yōu)Actor當前網(wǎng)絡參數(shù)θ、Critic當前網(wǎng)絡參數(shù)w
? 1. 隨機初始化θ、w、w′=w、θ′=θ,清空經(jīng)驗池 D
? 2. for i in [ 1, T ]:
? a)初始化S為當前狀態(tài)序列的第一個狀態(tài),拿到其特征向量Φ(S)
? b)把狀態(tài)S輸入Actor當前網(wǎng)絡得到輸出動作 A = πθ(?(S)) + N
? c)執(zhí)行動作A,由環(huán)境得到新狀態(tài)S‘、獎勵 R、終止標志 is_end
? d)將 { ?(S)、A、R、?(S′)、is_end } 這個五元組存入經(jīng)驗池 D
? e)前進一步:S = S’
? f)從經(jīng)驗池D中采樣m個樣本 { ?(Sj)、Aj、Rj、?(S′j)、is_endj } ,j=1,2…m 用目標Critic網(wǎng)絡結(jié)合公式計算當前目標Q值yj:
?
? (注意:πθ′(?(S′j))是通過Actor目標網(wǎng)絡得到 )
? g)用當前Critic網(wǎng)絡計算Q估計值,求出均方誤差函數(shù),梯度反向傳播更新Critic當前網(wǎng)絡參數(shù) w
? h)使用,梯度反向傳播更新Actor當前網(wǎng)絡參數(shù) θ
? i)if i % C == 0,則更新Critic目標網(wǎng)絡和Actor目標網(wǎng)絡參數(shù):
?
? j)if S’是終止狀態(tài),break;else 跳回步驟 b
?
小結(jié)
? DDPG參考了DDQN的算法思想,通過雙網(wǎng)絡和經(jīng)驗回放,加一些其他的優(yōu)化,比較好的解決了Actor-Critic難收斂的問題。因此在實際產(chǎn)品中尤其是自動化相關(guān)的產(chǎn)品中用的比較多,是一個比較成熟的Actor-Critic算法。的比較多,是一個比較成熟的Actor-Critic算法。
總結(jié)
以上是生活随笔為你收集整理的【强化学习】DDPG的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【强化学习】Actor-Critic
- 下一篇: 【Verilog】 3-8译码器