【David Silver强化学习公开课】-7:Policy Gradient
一、介紹
之前的控制方法都是Value-based,而在確定價(jià)值函數(shù)之后,其實(shí)我們是在價(jià)值函數(shù)的基礎(chǔ)上確定了某種策略(貪婪,??-貪婪)找到action。那么我們?yōu)槭裁床恢苯油ㄟ^(guò)策略函數(shù)控制action呢?
這樣做的好處:
- 連續(xù)的動(dòng)作空間(或者高維空間)中更加高效;
- 可以實(shí)現(xiàn)隨機(jī)化的策略;
- 某種情況下,價(jià)值函數(shù)可能比較難以計(jì)算,而策略函數(shù)較容易。
二、Finite Difference Policy Gradient
首先,對(duì)某種參數(shù)化策略πθπθ,我們需要確定一個(gè)目標(biāo)函數(shù)J(θ)J(θ),這里給出了三種:
- start value
- average value
- average reward per time-step
由于要最大化目標(biāo)函數(shù),因此使用梯度上升的方法優(yōu)化參數(shù)θθ。
那么要怎么計(jì)算策略梯度呢,使用了一種叫做finite difference的方法,也就是在每個(gè)維度k上增加一個(gè)很小的值,然后求出一個(gè)接近偏導(dǎo)數(shù)的值:
?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:利用特征的線(xiàn)性組合進(jìn)行softmax,決定動(dòng)作的概率的策略。
Gaussian Policy:利用特征的線(xiàn)性組合作為分布的均值μμ,π~N(μ,σ2)π~N(μ,σ2)。
對(duì)于任意可微的策略函數(shù)ππ,其在MDP中的梯度計(jì)算如下:
?θJ(θ)=Eπθ[?θlogπθ(s,a)Qπθ(s,a)]?θJ(θ)=Eπθ[?θlogπθ(s,a)Qπθ(s,a)]所以最后,以上面這個(gè)梯度計(jì)算的公式為基礎(chǔ),給出了Monte-Carlo-Policy-Gradient的流程,其中以樣本中的return作為Q的無(wú)偏估計(jì):
三、Actor-Critic
上一講中的MC-PG方法造成的方差太大,引入Actor-Critic方法解決。
actor,參數(shù)θ,在環(huán)境中學(xué)習(xí)策略并且執(zhí)行,進(jìn)行一個(gè)Policy-Gradient的過(guò)程更新θ;
critic,參數(shù)w,用來(lái)估計(jì)價(jià)值函數(shù)Q,進(jìn)行一個(gè)策略評(píng)估的過(guò)程更新w。
減少方差的trick:
- 減去一個(gè)Baseline函數(shù),也就是在PG的過(guò)程中,不再使用Q函數(shù),而是使用Advantage函數(shù),即Q-V,這里Baseline函數(shù)也就是狀態(tài)價(jià)值函數(shù)V。(Dueling)
估計(jì)Advantage函數(shù),可以使用TD error,因?yàn)檫@兩者是等價(jià)的。
原文地址:?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/
總結(jié)
以上是生活随笔為你收集整理的【David Silver强化学习公开课】-7:Policy Gradient的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【David Silver强化学习公开课
- 下一篇: 【David Silver强化学习公开课