策略梯度方法
數學背景
給定一個標量函數 J ( θ ) J\left(\theta\right) J(θ),利用梯度上升法,使其最大化,此時的 π θ \pi_\theta πθ?就是最優策略。
θ t + 1 = θ t + α ? θ J ( θ t ) \theta_{t+1}=\theta_t+\alpha \nabla_\theta J(\theta_t) θt+1?=θt?+α?θ?J(θt?)
標量函數 J ( θ ) J(\theta) J(θ)
就是上面提到的最優指標 J J J,一般有以下幾種定義:
-
平均狀態價值
v ˉ π = ∑ s ∈ S d π ( s ) v π ( s ) = E [ v π ( S ) ] \bar v_\pi =\sum_{s\in\mathcal{S}}d_\pi(s)v_\pi(s) =\mathbb{E}\left[ v_\pi(S) \right] vˉπ?=s∈S∑?dπ?(s)vπ?(s)=E[vπ?(S)]
如果 d d d與 π \pi π無關,那么記 d π = d 0 d_\pi=d_0 dπ?=d0?,就Grid World問題,由于狀態價值 v v v是回報的期望,考慮兩種具體情況:- 起始在隨機位置,均勻考慮每個狀態價值: d 0 = 1 / ∣ S ∣ d_0=1/|\mathcal{S}| d0?=1/∣S∣
- 起始在固定位置,只考慮 s 0 s_0 s0?狀態價值即可: d 0 ( s 0 ) = 1 , d 0 ( s ≠ s 0 ) d_0(s_0)=1,\ d_0(s\neq s_0) d0?(s0?)=1,?d0?(s=s0?)
如果 d d d與 π \pi π有關,求解 d π T P π = d π T d_\pi^TP_\pi=d_\pi^T dπT?Pπ?=dπT?得到 d π d_\pi dπ?,其中 P π P_\pi Pπ?是在策略 π \pi π下的狀態轉移矩陣。此時,如果一個狀態經常出現,對應的 d ( s ) d(s) d(s)就會變大。
-
平均瞬時獎勵
r ˉ π = ∑ s ∈ S d π ( s ) r π ( s ) = E [ r π ( S ) ] \bar r_\pi=\sum_{s\in \mathcal{S}}d_\pi(s)r_\pi(s)=\mathbb{E}\left[r_\pi(S)\right] rˉπ?=s∈S∑?dπ?(s)rπ?(s)=E[rπ?(S)]其中 r π ( s ) r_\pi(s) rπ?(s)是agent在某狀態按策略 π \pi π在動作空間中采取動作的瞬時獎勵
r π ( s ) = ∑ a ∈ A π ( s ∣ a ) r ( s , a ) r_\pi(s)=\sum_{a\in \mathcal{A}}\pi(s\mid a)r(s,a) rπ?(s)=a∈A∑?π(s∣a)r(s,a)此定義與episode reward等價,即當episode長度無限大時, s s s按 d π d_\pi dπ?分布,即
lim ? n → ∞ 1 n E [ ∑ k = 1 n R t + k ] ? r ˉ π \lim_{n\to\infty}\frac{1}{n}\mathbb{E}[\sum_{k=1}^{n}R_{t+k}] \iff \bar r_\pi n→∞lim?n1?E[k=1∑n?Rt+k?]?rˉπ?
J ( θ ) J(\theta) J(θ)的梯度
上面兩類指標函數的梯度都可以寫成:
? θ J ( θ ) = ∑ s ∈ S η ( s ) ∑ a ∈ A ? θ π ( a ∣ s , θ ) q π ( s , a ) = ∑ s ∈ S η ( s ) ∑ a ∈ A π ( a ∣ s , θ ) ? θ log ? π ( a ∣ s , θ ) q π ( s , a ) = E [ ? θ log ? π ( A ∣ S , θ ) q π ( S , A ) ] \begin{aligned} \nabla_\theta J(\theta) &=\sum_{s\in \mathcal{S}}\eta(s)\sum_{a\in \mathcal{A}} \nabla_\theta \pi(a|s,\theta)q_\pi(s,a)\\ &=\sum_{s\in \mathcal{S}}\eta(s)\sum_{a\in \mathcal{A}} \pi(a|s,\theta)\nabla_\theta \log\pi(a|s,\theta)q_\pi(s,a)\\ &=\mathbb{E}[\nabla_\theta \log\pi(A|S,\theta)q_\pi(S,A)] \end{aligned} ?θ?J(θ)?=s∈S∑?η(s)a∈A∑??θ?π(a∣s,θ)qπ?(s,a)=s∈S∑?η(s)a∈A∑?π(a∣s,θ)?θ?logπ(a∣s,θ)qπ?(s,a)=E[?θ?logπ(A∣S,θ)qπ?(S,A)]?
其中, S ~ η S\sim \eta S~η, A ~ π ( a ∣ s , θ ) A\sim \pi(a|s,\theta) A~π(a∣s,θ)
訓練時,使用隨機近似的梯度:
? θ J ≈ ? θ log ? π ( a ∣ s , θ ) q π ( s , a ) \nabla_\theta J\approx\nabla_\theta \log\pi(a|s,\theta)q_\pi(s,a) ?θ?J≈?θ?logπ(a∣s,θ)qπ?(s,a)