【David Silver强化学习公开课】-7:Policy Gradient
一、介紹
之前的控制方法都是Value-based,而在確定價值函數之后,其實我們是在價值函數的基礎上確定了某種策略(貪婪,??-貪婪)找到action。那么我們為什么不直接通過策略函數控制action呢?
這樣做的好處:
- 連續的動作空間(或者高維空間)中更加高效;
- 可以實現隨機化的策略;
- 某種情況下,價值函數可能比較難以計算,而策略函數較容易。
二、Finite Difference Policy Gradient
首先,對某種參數化策略πθπθ,我們需要確定一個目標函數J(θ)J(θ),這里給出了三種:
- start value
- average value
- average reward per time-step
由于要最大化目標函數,因此使用梯度上升的方法優化參數θθ。
那么要怎么計算策略梯度呢,使用了一種叫做finite difference的方法,也就是在每個維度k上增加一個很小的值,然后求出一個接近偏導數的值:
?J(θ)?θ≈J(θ+?uk)?J(θ)??J(θ)?θ≈J(θ+?uk)?J(θ)?likelihood ratio,如下的公式:?θπ(s,a)=π(s,a)×?θlogπ(s,a)?θπ(s,a)=π(s,a)×?θlogπ(s,a)
Softmax Policy:利用特征的線性組合進行softmax,決定動作的概率的策略。
Gaussian Policy:利用特征的線性組合作為分布的均值μμ,π~N(μ,σ2)π~N(μ,σ2)。
對于任意可微的策略函數ππ,其在MDP中的梯度計算如下:
?θJ(θ)=Eπθ[?θlogπθ(s,a)Qπθ(s,a)]?θJ(θ)=Eπθ[?θlogπθ(s,a)Qπθ(s,a)]所以最后,以上面這個梯度計算的公式為基礎,給出了Monte-Carlo-Policy-Gradient的流程,其中以樣本中的return作為Q的無偏估計:
三、Actor-Critic
上一講中的MC-PG方法造成的方差太大,引入Actor-Critic方法解決。
actor,參數θ,在環境中學習策略并且執行,進行一個Policy-Gradient的過程更新θ;
critic,參數w,用來估計價值函數Q,進行一個策略評估的過程更新w。
減少方差的trick:
- 減去一個Baseline函數,也就是在PG的過程中,不再使用Q函數,而是使用Advantage函數,即Q-V,這里Baseline函數也就是狀態價值函數V。(Dueling)
估計Advantage函數,可以使用TD error,因為這兩者是等價的。
原文地址:?http://cairohy.github.io/2017/09/06/deeplearning/%E3%80%8ADavid%20Silver%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E5%85%AC%E5%BC%80%E8%AF%BE%E3%80%8B-7%EF%BC%9APolicy%20Gradient/
總結
以上是生活随笔為你收集整理的【David Silver强化学习公开课】-7:Policy Gradient的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【David Silver强化学习公开课
- 下一篇: 【David Silver强化学习公开课