【强化学习】DDPG
目錄
- Deep Deterministic Policy Gradient算法
- 隨機策略 與 確定性策略
- DPG 與 DDPG
- 深度確定性策略梯度算法DDPG概述
- 對比DDQN
- DDPG網(wǎng)絡(luò)功能:
- 網(wǎng)絡(luò)軟更新:
- 引入噪聲:
- 兩個網(wǎng)絡(luò)的損失函數(shù):
- DDPG算法流程
- 小結(jié)
強化學(xué)習(xí)筆記,內(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)絡(luò),即當(dāng)前網(wǎng)絡(luò)和目標(biāo)網(wǎng)絡(luò)的概念。而由于現(xiàn)在本來就有Actor網(wǎng)絡(luò)和Critic兩個網(wǎng)絡(luò),那么雙網(wǎng)絡(luò)后就變成了4個網(wǎng)絡(luò),分別是:Actor當(dāng)前網(wǎng)絡(luò),Actor目標(biāo)網(wǎng)絡(luò),Critic當(dāng)前網(wǎng)絡(luò),Critic目標(biāo)網(wǎng)絡(luò)。2個Actor網(wǎng)絡(luò)的結(jié)構(gòu)相同,2個Critic網(wǎng)絡(luò)的結(jié)構(gòu)相同。
?
深度確定性策略梯度算法DDPG概述
對比DDQN
? DDQN的當(dāng)前Q網(wǎng)絡(luò)負(fù)責(zé)計算當(dāng)前狀態(tài)S的可執(zhí)行動作Q值,然后使用ε-greedy策略選擇動作A,執(zhí)行動作A獲得新狀態(tài)S’、獎勵 R,將樣本放入經(jīng)驗池,對經(jīng)驗池中采樣的下一狀態(tài)S‘ 計算可執(zhí)行動作,然后使用貪婪策略選擇動作A’,供目標(biāo)Q網(wǎng)絡(luò)計算Q值,當(dāng)目 標(biāo)Q網(wǎng)絡(luò)計算出目標(biāo)Q值后計算Loss Function并梯度反向傳播更新參數(shù)。目標(biāo)Q網(wǎng)絡(luò)負(fù)責(zé)結(jié)合當(dāng)前Q網(wǎng)絡(luò)按照Q值與動作解耦思想計 算經(jīng)驗池樣本的目標(biāo)Q值,并定期從當(dāng)前Q網(wǎng)絡(luò)更新參數(shù)。
? DDPG中,Critic當(dāng)前網(wǎng)絡(luò)、Critic目標(biāo)網(wǎng)絡(luò) 和 DDQN的當(dāng)前Q網(wǎng)絡(luò)、目標(biāo)Q網(wǎng)絡(luò)的功能定位基本類似。但是DDPG有屬于自己的 Actor策略網(wǎng)絡(luò),因此不需要??greedy策略而是用Actor當(dāng)前網(wǎng)絡(luò)選擇動作A。而對經(jīng)驗池中采樣的下一狀態(tài)S′不需要用貪婪法而是由 Actor目標(biāo)網(wǎng)絡(luò)選擇動作A‘。
DDPG網(wǎng)絡(luò)功能:
? 1. Actor當(dāng)前網(wǎng)絡(luò):負(fù)責(zé)策略網(wǎng)絡(luò)參數(shù)θ的迭代更新,負(fù)責(zé)根據(jù)當(dāng)前狀態(tài)S選擇當(dāng)前動作A,用于和環(huán)境交互生成S′、R
? 2. Actor目標(biāo)網(wǎng)絡(luò):負(fù)責(zé)根據(jù)經(jīng)驗池中采樣的下一狀態(tài)S′ 選擇最優(yōu)下一動作A′,網(wǎng)絡(luò)參數(shù)θ′ 定期從θ復(fù)制
? 3. Critic當(dāng)前網(wǎng)絡(luò):負(fù)責(zé)價值網(wǎng)絡(luò)參數(shù)w的迭代更新,負(fù)責(zé)計算當(dāng)前Q值Q(S, A, w)
? 4. Critic目標(biāo)網(wǎng)絡(luò):負(fù)責(zé)計算目標(biāo)Q值中的Q′(S′, A′, w′)部分,網(wǎng)絡(luò)參數(shù)w′ 定期從w復(fù)制
網(wǎng)絡(luò)軟更新:
? DDPG中,當(dāng)前網(wǎng)絡(luò)到目標(biāo)網(wǎng)絡(luò)的參數(shù)更新每次按比例更新,而不是完全復(fù)制:
?
? 其中,τ 是更新系數(shù),一般取的比較小,比如0.1或者0.01這樣的值。
引入噪聲:
? 為了學(xué)習(xí)過程可以增加一些隨機性,增加學(xué)習(xí)的覆蓋,DDPG對選擇出來的動作AA會增加一定的噪聲N,即最終和環(huán)境交互的動作A的表達(dá)式是:
?
兩個網(wǎng)絡(luò)的損失函數(shù):
? 1. Critic當(dāng)前網(wǎng)絡(luò)使用均方誤差:
?
? 2. Actor當(dāng)前網(wǎng)絡(luò)使用的確定性策略損失函數(shù):
?
?
DDPG算法流程
輸入:Actor當(dāng)前/目標(biāo)網(wǎng)絡(luò),Critic當(dāng)前/目標(biāo)網(wǎng)絡(luò),參數(shù)分別為θ,θ′,w,w′、衰減因子γ、軟更新系數(shù)τ、批量梯度下降的樣本數(shù)m、目標(biāo)Q網(wǎng) 絡(luò)參數(shù)更新頻率C、最大迭代次數(shù)T、隨機噪音函數(shù)N
輸出:最優(yōu)Actor當(dāng)前網(wǎng)絡(luò)參數(shù)θ、Critic當(dāng)前網(wǎng)絡(luò)參數(shù)w
? 1. 隨機初始化θ、w、w′=w、θ′=θ,清空經(jīng)驗池 D
? 2. for i in [ 1, T ]:
? a)初始化S為當(dāng)前狀態(tài)序列的第一個狀態(tài),拿到其特征向量Φ(S)
? b)把狀態(tài)S輸入Actor當(dāng)前網(wǎng)絡(luò)得到輸出動作 A = πθ(?(S)) + N
? c)執(zhí)行動作A,由環(huán)境得到新狀態(tài)S‘、獎勵 R、終止標(biāo)志 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 用目標(biāo)Critic網(wǎng)絡(luò)結(jié)合公式計算當(dāng)前目標(biāo)Q值yj:
?
? (注意:πθ′(?(S′j))是通過Actor目標(biāo)網(wǎng)絡(luò)得到 )
? g)用當(dāng)前Critic網(wǎng)絡(luò)計算Q估計值,求出均方誤差函數(shù),梯度反向傳播更新Critic當(dāng)前網(wǎng)絡(luò)參數(shù) w
? h)使用,梯度反向傳播更新Actor當(dāng)前網(wǎng)絡(luò)參數(shù) θ
? i)if i % C == 0,則更新Critic目標(biāo)網(wǎng)絡(luò)和Actor目標(biāo)網(wǎng)絡(luò)參數(shù):
?
? j)if S’是終止?fàn)顟B(tài),break;else 跳回步驟 b
?
小結(jié)
? DDPG參考了DDQN的算法思想,通過雙網(wǎng)絡(luò)和經(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译码器