我們通過參數θ定義偏好函數$h(s,a,\theta)$,通過h的softmax表示$\pi(a|s)$,然后根據$\pi(a,s)$計算優劣度$\eta(\theta)=v_{\pi_{\theta}}(s_0)$,最后,通過計算$\eta$對$\theta$的梯度,來實現$\theta$的更新。
13.1 策略梯度定理
定義策略優劣度:$\eta(\theta)=v_{\pi_{\theta}}(s_0)$
可以證明:
注意上面證明過程中$d_{\pi}(s)=\displaystyle\sum_{k=0}^{\infty}\gamma^k Pr(s_0\to s,k,\pi)$,表示按照策略π從起始狀態$s_0$到達狀態s的總可能性,並且根據步數作了折扣。這個值非常地不直觀,也不利於下面的推導。因此我不用d這個變量。
13.3 MC的策略梯度方法
書中推導過程有些晦澀,這里我用更直觀的方式來表達:
$\nabla\eta(\theta)=\displaystyle\sum_s\sum_{k=0}^{\infty}\gamma^k Pr(s_0\to s,k|\pi)\sum_a\nabla\pi(a|s)q_{\pi}(s,a)$
$=\displaystyle\sum_s\sum_{k=0}^{\infty}\sum_a Pr(s_0\to s,k|\pi)\pi(a|s)\frac{\nabla\pi(a|s)}{\pi(a|s)}\gamma^k q_{\pi}(s,a)$
$=\displaystyle\sum_s\sum_{k=0}^{\infty}\sum_a Pr(s_0\to s,a,k|\pi)\pi(a|s)\frac{\nabla\pi(a|s)}{\pi(a|s)}\gamma^k q_{\pi}(s,a)$
其中$Pr(s_0\to s,a,k|\pi)$表示在策略π下,k步達到s且采取a的概率。
而$G_k$恰好是$q(s,a)$的采樣,表示從k往后平均能獲得多少總獎勵
$=E_{\pi}[\frac{\nabla\pi(a|s)}{\pi(a|s)}\gamma^k G_k]$ (這里表達不嚴格,因為k是積分變量)
梯度算出來之后,就有了迭代更新式(梯度上升):
對線性模型+softmax的偏好函數來說,我們有:
13.4 基線
為了減少學習的方差,我們引入基線函數$b(s)$
$b(s)$可以取任何值,任何函數,只要不和a相關,就不影響上面式子的結果。因為:
但是,對於隨機梯度下降來說,因為我們是根據一個一個取樣來實現梯度上升,引入基函數可以極大地減少更新時的波動。更精確地,當
$b(s)=E_a[q_{\pi}(s,a)]=v(s)$時,方差將最小。
因此,我們在改進η的同時,我們也要設法計算$v(s)$,因此我們引入一個新的參數w來計算$v(s)$
θ的迭代更新式為:
13.5 Actor-Critic方法
上面使用MC方法,為了改善學習性能,我們介紹TD方法。這時候,value函數不僅用來當baseline,還要用來backup。下面是TD(0)的迭代更新式:
結合前一章資格跡,TD(λ)的算法如下:
13.6 連續問題的策略梯度方法
連續問題中,η定義為每一步的平均收益:
其中$d_{\pi}(s)$為狀態$s$出現的比例