Ⅶ. Policy Gradient Methods

Dictum:

 Life is just a series of trying to make up your mind. -- T. Fuller
算法


不一樣於近似價值函數並以此計算肯定性的策略的基於價值的RL方法,基於策略的RL方法將策略的學習從機率集合\(P(a|s)\)變換成策略函數\(\pi(a|s)\),並經過求解策略目標函數的極大值,獲得最優策略\(\pi^*\),主要用的是策略梯度方法(Policy Gradient Methods)。app

策略梯度方法直接對隨機策略\(\pi\)進行參數化爲\(\pi(a|s,\theta)=\Pr\{A_t=a|S_t=s,\theta_t=\theta\}\),其中\(s\in\mathcal{S}\)\(a\in\mathcal{A}(s)\),權重參數向量\(\theta\in\mathbb{R}^{d^\prime}(d^\prime<<|\mathcal{S}|)\),參數化後的策略再也不是一個機率集合,而是一個近似函數。ide

相比於基於價值的RL方法,策略梯度方法的優點以下:函數

  • 基於價值的RL方法依賴於價值函數的估計;而對策略梯度方法,價值函數能夠用於學習策略的參數,但沒有直接的依賴關係
  • 基於價值的RL方法爲了尋找最優策略,使用了\(\epsilon\)-貪心策略以\(\epsilon\)的機率選擇隨機動做;而策略梯度方法能夠直接近似一個肯定的策略,所以,具備更好的收斂性
  • 基於價值的RL方法更適用於離散的動做、狀態空間,即便一些改進也須要將連續的動做空間離散化,但這樣的映射呈指數形式,增長求最優解的難度;而策略梯度方法在高維或連續動做空間中有效
  • 基於價值的RL方法一般只能學習最優策略是肯定的,而策略梯度方法能夠學習自己就具備隨機性的最優策略

缺點以下:性能

  • 策略梯度方法使用梯度上升,容易收斂到局部最優解
  • 同時,對策略難以進行有效評估,由於它具備很高的方差

策略梯度定義

策略函數

策略函數是在肯定在時序\(t\)的狀態\(s\)下,採起任何科恩那個動做的具體機率,能夠看做機率密度函數。假設策略被參數化爲\(\pi(a|s,\theta)\),要求\(\pi(a|s,\theta)\)對參數\(\theta\)的偏導存在,則策略梯度學習

\[\begin{aligned} \triangledown\pi(a|s,\theta) & =\pi(a|s,\theta)\frac{\triangledown \pi(a|s,\theta)}{\pi(a|s,\theta)}\\ &=\pi(a|s,\theta)\triangledown\ln \pi(a|s,\theta) \end{aligned} \tag{7.1} \]

\(\triangledown \log\pi(a|s,\theta)\)是得分函數(score function)。spa

  1. Softmax Policy

針對離散且有限的動做空間,可使用softmax策略,對每個「狀態-動做」二元組估計一個參數化的數值偏好\(h(s,a,\theta)\in\mathbb{R}\),而後利用softmax函數對動做加權,如rem

\[\pi(a|s,\theta)\doteq \frac{e^{h(s,a,\theta)}}{\sum_b e^{h(s,b,\theta)}} \]

此時,每一個動做的機率正比於指數權重\(\pi(a|s,\theta)\propto e^{h(s,a,\theta)}\)。若參數化的偏好值爲特徵\(x(s,a)\)的線性組合,則\(h(s,a,\theta)=\theta^\top x(s,a)\),此時得分函數爲get

\[\triangledown\log\pi(a|s,\theta)=x(s,a)-\mathbb{E}_\pi [x(s,\cdot)] \]

  1. Gaussian Policy

針對龐大或連續的動做空間,不能直接計算每個動做的機率,但能夠學習機率分佈的統計。一般可使用Gaussian策略,即對應的動做服從高斯分佈\(a\sim\mathcal{N}(\mu,\sigma^2)\),則策略能夠表示爲同步

\[\pi(a|s,\theta)\doteq \frac{1}{\sigma(s,\theta)\sqrt{2\pi}}\exp\bigg(-\frac{\big(a-\mu(s,\theta)\big)^2}{2\sigma(s,\theta)^2}\bigg) \]

其中,均值\(\mu:\mathcal{S}\times\mathbb{R}^{d^\prime}\to\mathcal{R}\)和方差\(\sigma:\mathcal{S}\times\mathbb{R}^{d^\prime}\to\mathcal{R}^+\)是兩個參數化的函數近似器。所以,參數向量能夠分爲兩部分\(\theta=[\theta_\mu,\theta_\sigma]^\top\),同時特徵向量也分爲兩部分\(x=[x_\mu,x_\sigma]\),均值部分能夠直接使用線性函數近似,而標準差部分要求爲正數,可使用線性函數的指數形式近似

\[\mu(s,\theta)\doteq\theta_\mu^\top x_\mu(s)\text{ 和 }\sigma(s,\theta)\doteq\exp\Big(\theta_\sigma^\top x_\sigma(s)\Big) \]

此時得分函數爲

\[\triangledown\log\pi(a|s,\theta)=\frac{(a-\mu(s))x(s)}{\sigma^2} \]

性能度量

有了策略函數,還要定義性能度量來衡量策略的好壞。通常將智能體累積折扣獎勵的指望做爲目標函數,用\(J(\theta)\)表示。利用相關策略的目標函數\(J(\theta)\)的梯度上升更新\(\theta\),從而最大化獎勵的指望:

\[\theta_{t+1}=\theta_t+\alpha\triangledown\widehat{J(\theta_t)} \tag{7.2} \]

在幕式任務和連續任務這兩種不一樣的狀況下,性能度量的定義是不一樣的:

  1. 起始價值(start value)

針對幕式任務,將性能度量定義爲該幕起始狀態的價值,即

\[J_1(\theta)\doteq v_{\pi_\theta}(s_0)=\mathbb{E}_{\pi_\theta}[v_0] \]

其中,\(v_{\pi_\theta}\)是執行策略\(\pi_\theta\)的真實的價值函數。適用於可以產生完整經驗軌跡的環境,即從狀態\(s_0\)開始,以必定的機率分佈達到終止狀態時序段內,智能體得到的累積獎勵。

  1. 平均價值(average value)

在連續任務中,智能體沒有明確的起始狀態,能夠基於智能體在時序\(t\)的狀態分佈,針對每一個可能的狀態計算從\(t\)開始持續與環境交互所能得到的獎勵,並按其狀態的機率分佈求和,即

\[J_{avgV}(\theta)\doteq\sum_{s\in\mathcal{S}}d_{\pi_\theta}(s)v_{\pi_\theta}(s) \]

其中,\(s\sim d_{\pi_\theta}(s)\)表示狀態\(s\)服從根據策略\(\pi_\theta\)生成的馬爾科夫鏈的狀態分佈。

  1. 每時序平均獎勵(average reward per time-step)

平均價值使用時序\(t\)下狀態的平均價值,而每一個時序的平均獎勵使用時序\(t\)的狀態下全部動做的指望,即在時序\(t\)先計算出智能體全部狀態的可能性,而後計算出在每一種狀態下采起全部可能動做得到的即時獎勵,並按其對應的機率求和,即

\[\begin{aligned} J_{avgR}(\theta)\doteq\mathbb{E}_{\pi_\theta}[r] &=\sum_{s\in\mathcal{S}}d_{\pi_\theta}(s)\sum_{a\in\mathcal{A}}\pi_\theta(a|s)r_{s,a} \\ &=\sum_s d_{\pi_\theta}(s)\sum_a\pi(a|s)\sum_{s^\prime,r}p(s^\prime,r|s,a)r \end{aligned} \]

其中,\(d_{\pi_\theta}(s)=\lim_{t\to\infty}\Pr\{s_t=s|s_0,\pi_\theta\}\)是策略\(\pi_\theta\)下狀態的穩態分佈,\(s_0\)獨立於全部策略,\(r_{s,a}\)是狀態\(s\)下執行動做\(a\)獲得的即時獎勵。它其實是單步MDPs,也就是從狀態\(s\sim d(s)\)開始,根據策略\(\pi\)執行動做\(a\),此時獲得了一個獎勵值\(r\),完成了一個時序後結束。

策略梯度定理

已經給出了策略函數和性能度量,但經過調整策略參數\(\theta\)來保證性能獲得改善仍存在疑點,主要在於策略的性能既依賴於動做的選擇,也依賴於動做選擇時所處的狀態分佈,而策略\(\pi(a|s)\)的定義是已知狀態\(s\)下動做\(a\)的機率,所以策略對狀態分佈的影響未知。這裏就引出了策略梯度定理(policy gradient theorem)。

Policy Gradient Theroem
對任何可微策略\(\pi(a|s,\theta)\),任意目標函數\(J(\theta)\)的梯度均可以表示爲

\[\triangledown J(\theta)\propto\sum_s\mu(s)\sum_a q_\pi(s,a)\triangledown_\theta\pi(a|s,\theta) \tag{7.3} \]

在幕式狀況下,比例常數爲幕的平均長度;在連續狀況下,比例常數爲1。\(\mu(s)\)是同步策略下的狀態分佈。

(證實見Append)

策略梯度算法

REINFORCE:Monte Carlo Policy Gradient

REINFORCE是一種蒙特卡洛算法,通常應用於幕式任務,也須要在每一個幕達到終止狀態後才能進行更新。

根據策略梯度定理\((7.3)\),REINFORCE的目標函數梯度能夠寫成

\[\begin{aligned} \triangledown J(\theta) &\propto\sum_s\mu(s)\sum_a\triangledown\pi(a|s,\theta)q_\pi(s,a) \\ &=\mathbb{E}_\pi \bigg[\sum_a q_\pi (S_t,a) \triangledown \pi(a|S_t,\theta)\bigg] \\ &=\mathbb{E}_\pi \bigg[\sum_a \pi(a|S_t,\theta)q_\pi(S_t,a)\frac{\triangledown \pi(a|S_t,\theta)}{\pi(a|S_t,\theta)}\bigg] \\ &(A_t\sim\pi,所以\sum_a \pi(a|S_t,\theta)q_\pi(S_t,a)能夠用q_\pi(S_t,A_t)代替)\\ &=\mathbb{E}_\pi\bigg[q_\pi(S_t,A_t)\frac{\triangledown \pi(a|S_t,\theta)}{\pi(a|S_t,\theta)}\bigg]\\ &(根據q_\pi的定義,q_\pi(S_t,A_t)=\mathbb{E}_\pi[G_t|S_t,A_t],G_t是回報值)\\ &=\mathbb{E}_\pi\bigg[G_t\frac{\triangledown \pi(A_t|S_t,\theta)}{\pi(A_t|S_t,\theta)}\bigg] \end{aligned} \]

根據式\((7.2)\)的隨機梯度上升,能夠獲得參數的更新以下

\[\begin{aligned} \theta_{t+1} &\leftarrow \theta_t+\alpha G_t\frac{\triangledown \pi(A_t|S_t,\theta_t)}{\pi(A_t|S_t,\theta_t)} \\ &\leftarrow\theta_t+\alpha G_t\triangledown \ln \pi(A_t|S_t,\theta_t) \\ \end{aligned} \]

參數向量\(\theta\)更新的大小正比於回報\(G_t\),使更新朝着更利於產生最大回報動做的方向;同時,它反比於策略\(\pi(A_t|S_t,\theta)\),減小非最優動做因選擇頻率過大致使的性能影響。

REINFORCE with Baseline

帶基線的REINFORCE算法能夠看做是一種推廣形式,它是在策略梯度定理\((7.3)\)上添加一個不隨動做\(a\)變化的任意基線\(b(s)\),形式以下

\[\triangledown J(\theta)\propto\sum_s\mu(s)\sum_a\big(q_\pi(s,a)-b(s)\big)\triangledown_\theta \pi(a|s,\theta) \]

基線\(b(s)\)不會影響策略的梯度,由於梯度方向的單位向量之和爲0,即\(\triangledown_\theta \sum_a\pi(a|s,\theta)=\triangledown_\theta 1=0\)。一般能夠將狀態價值函數近似\(\hat{v}(S_t,w)\)\(w\in\mathbb{R}^m\)做爲基線,改良後的REINFORCE算法參數更新爲

\[w_{t+1}\leftarrow w_t+\alpha^w \gamma^t \big(G_t-\hat{v}(S_t,w)\big)\triangledown_w \hat{v}(S_t,w) \]

\[\theta_{t+1}\leftarrow \theta_t+\alpha^\theta \gamma^t \big(G_t-\hat{v}(S_t,w)\big)\triangledown_\theta \ln \pi(A_t|S_t,\theta) \]

Append

策略梯度定理(證實)

  1. 幕式狀況

\[\begin{aligned} \triangledown J(\theta) &=\triangledown v_\pi(s) \\ &=\triangledown \bigg[\sum_a \pi(a|s)q_\pi(s,a)\bigg] \\ &=\sum_a\Big[\triangledown\pi(a|s)q_\pi(s,a)+\pi(a|s)\triangledown q_\pi(s,a)\Big] \\ &=\sum_a \Big[\triangledown\pi(a|s)q_\pi(s,a)+\pi(a|s)\triangledown \sum_{s^\prime,r}p(s^\prime|s,a)(r+v_\pi(s^\prime))\Big] \\ &=\sum_a\Big[\triangledown\pi(a|s)q_\pi(s,a)+\pi(a|s)\sum_{s^\prime}p(s^\prime|s,a)\triangledown v_\pi(s^\prime)\Big] \\ &=\sum_a\Big[\triangledown\pi(a|s)q_\pi(s,a)+\pi(a|s)\sum_{s^\prime}p(s^\prime|s,a)\sum_{a^\prime}[\triangledown\pi(a^\prime|s^\prime)q_\pi(s^\prime,a^\prime)+\pi(a^\prime|s^\prime)\sum_{s^{\prime\prime}}p(s^{\prime\prime}|s^\prime,a^\prime)\triangledown v_\pi(s^{\prime\prime})]\Big] \\ &=\sum_{x\in\mathcal{S}}\sum_{k=0}^\infty \Pr(s\to x,k,\pi)\sum_a\triangledown\pi(a|x)q_\pi(x,a) \\ &\propto\sum_s \mu(s)\sum_a\triangledown\pi(a|s)q_\pi(s,a) \\ \end{aligned} \]

其中,\(\Pr(s\to x,k,\pi)\)表示在策略\(\pi\)下的\(k\)步內,狀態\(s\)轉移到狀態\(x\)的機率。

  1. 連續狀況

\[\begin{aligned} \triangledown v_\pi(s) &=\triangledown \Big[\sum_a \pi(a|s)q_\pi(s,a)\Big] \\ &=\sum_a \Big[\triangledown\pi(a|s)q_\pi(s,a)+\pi(a|s)\triangledown q_\pi(s,a)\Big] \\ &=\sum_a\Big[\triangledown\pi(a|s)q_\pi(s,a)+\pi(a|s)\triangledown\sum_{s^\prime,r}p(s^\prime,r|s,a)\big(r-r(\theta)+v_\pi(s^\prime)\big)\Big] \\ &=\sum_a\Big[\triangledown\pi(a|s)q_\pi(s,a)+\pi(a|s)[-\triangledown r(\theta)+\sum_{s^\prime}p(s^\prime|s,a)\triangledown v_\pi(s^\prime)]\Big] \\ \end{aligned} \]

由上能夠獲得

\[\triangledown r(\theta)=\sum_a\Big[\triangledown\pi(a|s)q_\pi(s,a)+\pi(a|s)\sum_{s^\prime}p(s^\prime|s,a)\triangledown v_\pi(s^\prime)\Big]-\triangledown v_\pi(s) \]

目標函數的梯度爲

\[\begin{aligned} \triangledown J(\theta) &=\triangledown r(\theta) \\ &=\sum_a\Big[\triangledown\pi(a|s)q_\pi(s,a)+\pi(a|s)\sum_{s^\prime}p(s^\prime|s,a)\triangledown v_\pi(s^\prime)\Big]-\triangledown v_\pi(s) \\ &(對前一項添加狀態的權重\mu(s),\sum_s\mu(s)=1,不影響梯度) \\ &=\sum_s\mu(s)\sum_a\Big[\triangledown\pi(a|s)q_\pi(s,a)+\pi(a|s)\sum_{s^\prime}p(s^\prime|s,a)\triangledown v_\pi(s^\prime)\Big]-\triangledown v_\pi(s) \\ &=\sum_s\mu(s)\sum_a \triangledown\pi(a|s)q_\pi(s,a)+\mu(s)\sum_a\pi(a|s)\sum_{s^\prime}p(s^\prime|s,a)\triangledown v_\pi(s^\prime)-\mu(s)\sum_a \triangledown v_\pi(s) \\ &=\sum_s\mu(s)\sum_a\triangledown\pi(a|s)q_\pi(s,a)+\sum_{s^\prime}\mu(s^\prime)\triangledown v_\pi(s^\prime)-\sum_s\mu(s)\triangledown v_\pi(s) \\ &=\sum_s\mu(s)\sum_a\triangledown \pi(a|s)q_\pi(s,a) \end{aligned} \]


References

Richard S. Sutton and Andrew G. Barto. Reinforcement Learning: An Introduction (Second Edition). 2018.
Csaba Szepesvári. Algorithms for Reinforcement Learning. 2009.
Richard S. Sutton et al. Policy Gradient Methods for Reinforcement Learning with Function Approximation. 2000.
Course: UCL Reinforcement Learning Course (by David Silver)

相關文章
相關標籤/搜索