机器学习(三十五)——Actor-Critic, Integrating Learning and Planning(1)
Actor-Critic
概述
MC策略梯度方法使用了收獲作為狀態(tài)價(jià)值的估計(jì),它雖然是無(wú)偏的,但是噪聲卻比較大,也就是變異性(方差)較高。如果我們能夠相對(duì)準(zhǔn)確地估計(jì)狀態(tài)價(jià)值,用它來(lái)指導(dǎo)策略更新,那么是不是會(huì)有更好的學(xué)習(xí)效果呢?這就是Actor-Critic策略梯度的主要思想。
Actor-Critic的字面意思是“演員-評(píng)論”,相當(dāng)于演員在演戲的同時(shí),有評(píng)論家指點(diǎn),繼而演員演得越來(lái)越好。即使用Critic來(lái)估計(jì)行為價(jià)值:
Qw(s,a)≈Qπθ(s,a)Q_w(s,a)\approx Q^{\pi_\theta}(s,a)Qw?(s,a)≈Qπθ?(s,a)
基于Actor-Critic策略梯度學(xué)習(xí)分為兩部分內(nèi)容:
1.Critic:更新action-value函數(shù)的參數(shù)w。
2.Actor:按照Critic得到的價(jià)值,引導(dǎo)策略函數(shù)參數(shù)θ\thetaθ的更新。
?θJ(θ)≈Eπθ[?θlog?πθ(s,a)Qw(s,a)]\nabla_\theta J(\theta)\approx E_{\pi_\theta}[\nabla_\theta \log \pi_\theta(s,a)Q_w(s,a)]?θ?J(θ)≈Eπθ??[?θ?logπθ?(s,a)Qw?(s,a)]
Δθ=α?θlog?πθ(s,a)Qw(s,a)\Delta \theta = \alpha \nabla_\theta \log \pi_\theta(s,a)Q_w(s,a)Δθ=α?θ?logπθ?(s,a)Qw?(s,a)
可以看出,Critic做的事情其實(shí)是我們已經(jīng)見過(guò)的:策略評(píng)估,他要告訴個(gè)體,在由參數(shù)θ\thetaθ確定的策略πθ\pi_\thetaπθ?到底表現(xiàn)得怎么樣。
Compatible Function Approximation
近似策略梯度的方法引入了Bias,從而得到的策略梯度不一定能最后找到較好的解決方案,例如當(dāng)近似價(jià)值函數(shù)引起狀態(tài)重名的特征時(shí)。
幸運(yùn)的是,如果我們小心設(shè)計(jì)近似函數(shù),是可以避免引入bias的。該近似函數(shù)需要滿足下面兩個(gè)條件:
- 近似價(jià)值函數(shù)的梯度完全等同于策略函數(shù)對(duì)數(shù)的梯度,即不存在重名情況:
?wQw(s,a)=?θlog?πθ(s,a)\nabla_w Q_w(s,a)=\nabla_\theta \log \pi_\theta(s,a)?w?Qw?(s,a)=?θ?logπθ?(s,a)
- 價(jià)值函數(shù)參數(shù)w使得均方差最小:
?=Eπθ[(Qπθ(s,a)?Qw(s,a))2]\epsilon = E_{\pi_\theta}[(Q^{\pi_\theta}(s,a)-Q_w(s,a))^2]?=Eπθ??[(Qπθ?(s,a)?Qw?(s,a))2]
符合這兩個(gè)條件,則認(rèn)為策略梯度是準(zhǔn)確的,即:
?θJ(θ)=Eπθ[?θlog?πθ(s,a)Qw(s,a)]\nabla_\theta J(\theta)= E_{\pi_\theta}[\nabla_\theta \log \pi_\theta(s,a)Q_w(s,a)]?θ?J(θ)=Eπθ??[?θ?logπθ?(s,a)Qw?(s,a)]
Reducing Variance Using Baseline
除了bias之外,variance也是需要考慮的方面。
我們從策略梯度里抽出一個(gè)基準(zhǔn)函數(shù)B(s),要求這一函數(shù)僅與狀態(tài)有關(guān),而與行為無(wú)關(guān),因而不改變梯度本身。
Eπθ[?θlog?πθ(s,a)B(s)]=∑s∈Sdπθ(s)∑a∈A?θπθ(s,a)B(s)=∑s∈Sdπθ(s)B(s)?θ∑a∈Aπθ(s,a)=0E_{\pi_\theta}[\nabla_\theta \log \pi_\theta(s,a)B(s)] = \sum_{s\in S} d^{\pi_\theta}(s)\sum_{a\in A}\nabla_\theta \pi_\theta(s,a)B(s)\\= \sum_{s\in S} d^{\pi_\theta}(s)B(s) \nabla_\theta \sum_{a\in A} \pi_\theta(s,a) = 0Eπθ??[?θ?logπθ?(s,a)B(s)]=s∈S∑?dπθ?(s)a∈A∑??θ?πθ?(s,a)B(s)=s∈S∑?dπθ?(s)B(s)?θ?a∈A∑?πθ?(s,a)=0
由于B(s)與行為無(wú)關(guān),可以將其從針對(duì)行為a的求和中提出來(lái),同時(shí)我們也可以把梯度從求和符號(hào)中提出來(lái),而最后一個(gè)求和項(xiàng):策略函數(shù)針對(duì)所有行為的求和,根據(jù)策略函數(shù)的定義,這里的結(jié)果肯定是1。而常數(shù)的梯度是0,因此總的結(jié)果等于0。
原則上,和行為無(wú)關(guān)的函數(shù)都可以作為B(s)。一個(gè)很好的B(s)就是基于當(dāng)前狀態(tài)的狀態(tài)價(jià)值函數(shù):Vπθ(s)V^{\pi_\theta}(s)Vπθ?(s)。
所以,我們可以用一個(gè)advantage function來(lái)改寫策略梯度:
Aπθ(s,a)=Qπθ(s,a)?Vπθ(s)A^{\pi_\theta}(s,a)=Q^{\pi_\theta}(s,a)-V^{\pi_\theta}(s)Aπθ?(s,a)=Qπθ?(s,a)?Vπθ?(s)
上式的現(xiàn)實(shí)意義在于評(píng)估當(dāng)個(gè)體采取行為a離開s狀態(tài)時(shí),究竟比該狀態(tài)s總體平均價(jià)值要好多少?
?θJ(θ)=Eπθ[?θlog?πθ(s,a)Aπθ(s,a)]\nabla_\theta J(\theta)= E_{\pi_\theta}[\nabla_\theta \log \pi_\theta(s,a)A^{\pi_\theta}(s,a)]?θ?J(θ)=Eπθ??[?θ?logπθ?(s,a)Aπθ?(s,a)]
advantage function可以明顯減少狀態(tài)價(jià)值的variance。(通俗的說(shuō)法就是A的值有正有負(fù),不像Q和V都是正值。)
因此,現(xiàn)在Critic的任務(wù)就改為估計(jì)advantage function。
在這種情況下,我們需要兩個(gè)近似函數(shù)也就是兩套參數(shù),一套用來(lái)近似狀態(tài)價(jià)值函數(shù),一套用來(lái)近似行為價(jià)值函數(shù)。即:
Vv(s)≈Vπθ(s)V_v(s)\approx V^{\pi_\theta}(s)Vv?(s)≈Vπθ?(s)
Qw(s,a)≈Qπθ(s,a)Q_w(s,a)\approx Q^{\pi_\theta}(s,a)Qw?(s,a)≈Qπθ?(s,a)
A(s,a)=Qw(s,a)?Vv(s)A(s,a) = Q_w(s,a) - V_v(s)A(s,a)=Qw?(s,a)?Vv?(s)
不過(guò)實(shí)際操作時(shí),我們并不需要計(jì)算兩個(gè)近似函數(shù)。這里以TD學(xué)習(xí)為例說(shuō)明一下。
根據(jù)定義,TD誤差δπθ\delta^{\pi_\theta}δπθ?可以根據(jù)真實(shí)的狀態(tài)價(jià)值函數(shù)Vπθ(s)V^{\pi_\theta}(s)Vπθ?(s)算出:
δπθ=r+γVπθ(s′)?Vπθ(s)\delta^{\pi_\theta} = r + \gamma V^{\pi_\theta}(s') - V^{\pi_\theta}(s)δπθ?=r+γVπθ?(s′)?Vπθ?(s)
因?yàn)?#xff1a;
Eπθ[δπθ∣s,a]=Eπθ[r+γVπθ(s′)∣s,a]?Vπθ(s)=Qπθ(s,a)?Vπθ(s)=Aπθ(s,a)E_{\pi_\theta}[\delta^{\pi_\theta} | s,a] = E_{\pi_\theta}[r + \gamma V^{\pi_\theta}(s') | s,a] - V^{\pi_\theta}(s)= Q^{\pi_\theta}(s,a) - V^{\pi_\theta}(s) = A^{\pi_\theta}(s,a)Eπθ??[δπθ?∣s,a]=Eπθ??[r+γVπθ?(s′)∣s,a]?Vπθ?(s)=Qπθ?(s,a)?Vπθ?(s)=Aπθ?(s,a)
可見δπθ\delta^{\pi_\theta}δπθ?就是Aπθ(s,a)A^{\pi_\theta}(s,a)Aπθ?(s,a)的一個(gè)無(wú)偏估計(jì)。
因此,我們就可以使用TD誤差來(lái)計(jì)算策略梯度:
?θJ(θ)=Eπθ[?θlog?πθ(s,a)δπθ]\nabla_\theta J(\theta)= E_{\pi_\theta}[\nabla_\theta \log \pi_\theta(s,a)\delta^{\pi_\theta}]?θ?J(θ)=Eπθ??[?θ?logπθ?(s,a)δπθ?]
實(shí)際運(yùn)用時(shí),我們使用一個(gè)近似的TD誤差,即用狀態(tài)函數(shù)的近似函數(shù)來(lái)代替實(shí)際的狀態(tài)函數(shù):
δv=r+γVv(s′)?Vv(s)\delta_v = r + \gamma V_v(s') - V_v(s)δv?=r+γVv?(s′)?Vv?(s)
這也就是說(shuō),我們只需要一套參數(shù)描述狀態(tài)價(jià)值函數(shù),而不再需要行為價(jià)值函數(shù)了。
上述方法不僅可用于TD方法,還可用于MC方法等,以下不加討論的給出如下結(jié)論:
KaTeX parse error: No such environment: align at position 7: \begin{?a?l?i?g?n?}? \nabla_\theta …
參考
https://zhuanlan.zhihu.com/p/51652845
強(qiáng)化學(xué)習(xí)這都學(xué)不會(huì)的話,咳咳,你過(guò)來(lái)下!
https://mp.weixin.qq.com/s/ce9W3FbLdsqAEyvw6px_RA
Actor Critic——一個(gè)融合基于策略梯度和基于值優(yōu)點(diǎn)的強(qiáng)化學(xué)習(xí)算法
Integrating Learning and Planning
前面的章節(jié)主要介紹了Model-Free RL,下面將講一下Model-Based RL,主要包括如下內(nèi)容:
-
如何從經(jīng)歷中直接學(xué)習(xí)Model。
-
如何基于模型來(lái)進(jìn)行Planning(規(guī)劃)。
-
如何將“學(xué)習(xí)”和“規(guī)劃”整合起來(lái)。
|
上面兩圖形象的說(shuō)明了Model-Free RL(左圖)和Model-Based RL(右圖)的差別。
Model-Based RL
上圖比較好的說(shuō)明了模型學(xué)習(xí)在整個(gè)RL學(xué)習(xí)中的位置和作用。
我們首先看一下Model的定義:Model是一個(gè)參數(shù)化(參數(shù)為η\etaη)的MDP<S, A, P, R>,其中假定:狀態(tài)空間S和行為空間A是已知的,則M=<Pη,Rη>M=<P_\eta, R_\eta>M=<Pη?,Rη?>,其中Pη≈P,Rη≈RP_\eta \approx P, R_\eta \approx RPη?≈P,Rη?≈R。則:
St+1~Pη(St+1∣St,At)S_{t+1} \sim P_\eta (S_{t+1} | S_t, A_t)St+1?~Pη?(St+1?∣St?,At?)
Rt+1=Rη(Rt+1∣St,At)R_{t+1} = R_\eta (R_{t+1} | S_t, A_t)Rt+1?=Rη?(Rt+1?∣St?,At?)
通常我們需要如下的假設(shè),即狀態(tài)轉(zhuǎn)移函數(shù)和獎(jiǎng)勵(lì)函數(shù)是條件獨(dú)立的:
P[St+1,Rt+1∣St,At]=P[St+1∣St,At]P[Rt+1∣St,At]P[S_{t+1}, R_{t+1} | S_t, A_t] = P[S_{t+1} | S_t, A_t] P[R_{t+1} | S_t, A_t]P[St+1?,Rt+1?∣St?,At?]=P[St+1?∣St?,At?]P[Rt+1?∣St?,At?]
Model Learning
所謂Model Learning是指:從experience{S1,A1,R2,…,ST}\{S_1, A_1, R_2, \dots, S_T\}{S1?,A1?,R2?,…,ST?},學(xué)習(xí)
S1,A1→R2,S2S_1, A_1\to R_2,S_2S1?,A1?→R2?,S2?
S2,A2→R3,S3S_2, A_2\to R_3,S_3S2?,A2?→R3?,S3?
…\dots…
ST?1,AT?1→RT,STS_{T-1}, A_{T-1}\to R_T,S_TST?1?,AT?1?→RT?,ST?
這實(shí)際上是一個(gè)監(jiān)督學(xué)習(xí)的問(wèn)題。其中,s,a→rs,a\to rs,a→r是一個(gè)回歸問(wèn)題(regression problem),而s,a→s′s,a\to s's,a→s′是一個(gè)密度估計(jì)問(wèn)題(density estimation problem)。
選擇一個(gè)損失函數(shù),比如均方差,KL散度等,優(yōu)化參數(shù)η\etaη來(lái)最小化經(jīng)驗(yàn)損失(empirical loss)。所有監(jiān)督學(xué)習(xí)相關(guān)的算法都可以用來(lái)解決上述兩個(gè)問(wèn)題。
根據(jù)使用的算法不同,可以有如下多種模型:查表式(Table lookup Model)、線性期望模型(Linear Expectation Model)、線性高斯模型(Linear Gaussian Model)、高斯決策模型(Gaussian Process Model)、和深信度神經(jīng)網(wǎng)絡(luò)模型(Deep Belief Network Model)等。
這里主要以查表模型來(lái)解釋模型的構(gòu)建。
總結(jié)
以上是生活随笔為你收集整理的机器学习(三十五)——Actor-Critic, Integrating Learning and Planning(1)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 机器学习(三十四)——策略梯度
- 下一篇: 机器学习(三十六)——Integrati