强化学习——值和策略迭代(四)
值和策略迭代算法
1 值迭代算法(value iteration algorithm)
根据贝尔曼最优公式就能得出最优的 state value 和最优的 policy。
1.1 策略更新(policy update)
为了得出最优的策略通过
π k + 1 = arg max π ( r π + γ P π v k ) \pi_{k+1}= \displaystyle \argmax_\pi(r_\pi + \gamma P_\pi v_k) πk+1=πargmax(rπ+γPπvk)(matrix form)
或者
π k + 1 = arg max π ∑ a π ( a ∣ s ) [ ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v k ( s ′ ) ] ⏟ q k ( s , a ) \pi_{k+1}= \displaystyle \argmax_\pi \sum_a \pi(a|s) \underbrace{\left[\displaystyle \sum_r p(r|s,a) r+\gamma \displaystyle \displaystyle \sum_{s'} p(s'|s,a)v_k(s') \right]}_{q_k(s,a)} πk+1=πargmaxa∑π(a∣s)qk(s,a)
[r∑p(r∣s,a)r+γs′∑p(s′∣s,a)vk(s′)](elementwise form)
即
π k + 1 ( a ∣ s ) = { 1 , a = a k ∗ = arg max a q k ( s , a ) 0 , a ≠ a k ∗ \pi_{k+1}(a|s)=\begin{cases} 1, & a = a_k^*= \displaystyle \argmax_a q_k(s,a)\\ 0, & a \neq a_k^* \end{cases} πk+1(a∣s)=⎩
⎨
⎧1,0,a=ak∗=aargmaxqk(s,a)a=ak∗
1.2 值更新(value update)
v k + 1 = r π k + 1 + γ P π k + 1 v k v_{k+1}= r_{\pi_{k+1}} + \gamma P_{\pi_{k+1}} v_k vk+1=rπk+1+γPπk+1vk(matrix form)
或者
v k + 1 = ∑ a π ( a ∣ s ) [ ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v k ( s ′ ) ] ⏟ q k ( s , a ) v_{k+1}= \displaystyle \sum_a \pi(a|s) \underbrace{\left[\displaystyle \sum_r p(r|s,a) r+\gamma \displaystyle \displaystyle \sum_{s'} p(s'|s,a)v_k(s') \right]}_{q_k(s,a)} vk+1=a∑π(a∣s)qk(s,a)
[r∑p(r∣s,a)r+γs′∑p(s′∣s,a)vk(s′)](elementwise form)
由于 π ( a ∣ s ) = 1 \pi(a|s)=1 π(a∣s)=1,而且是在 a = a k ∗ = arg max a q k ( s , a ) a=a_k^*= \displaystyle \argmax_a q_k(s,a) a=ak∗=aargmaxqk(s,a)取得。可以简化成 v k + 1 = max q k ( s , a ) v_{k+1}=\max q_k(s,a) vk+1=maxqk(s,a)。
1.3 整体步骤
初始条件: p ( s ′ ∣ s , a ) , p ( r ∣ s , a ) , γ p(s'|s,a),p(r|s,a),\gamma p(s′∣s,a),p(r∣s,a),γ,以及随机初始化的 v 0 v_0 v0。
迭代过程: v k → q k → π k + 1 → v k + 1 v_k \rightarrow q_k \rightarrow \pi_{k+1} \rightarrow v_{k+1} vk→qk→πk+1→vk+1
终止条件: ∥ v k + 1 − v k ∥ < ϵ \Vert v_{k+1}-v_k \Vert < \epsilon ∥vk+1−vk∥<ϵ
2 策略迭代算法(policy iteration algorithm)
2.1 策略评估(policy evaluation)
通过贝尔曼公式的迭代解求出当前策略下最优的 state value。该步骤是需要不断迭代的。
v π k ( j + 1 ) = r π k + γ P π k v π k ( j ) v_{\pi_{k}}^{(j+1)}=r_{\pi_k}+\gamma P_{\pi_k} v_{\pi_k}^{(j)} vπk(j+1)=rπk+γPπkvπk(j)(matrix form)
或者
v π k ( j + 1 ) = ∑ a π ( a ∣ s ) [ ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v π k ( j ) ( s ′ ) ] ⏟ q π k ( j ) ( s , a ) v_{\pi_{k}}^{(j+1)}= \displaystyle \sum_a \pi(a|s) \underbrace{\left[\displaystyle \sum_r p(r|s,a) r+\gamma \displaystyle \displaystyle \sum_{s'} p(s'|s,a)v_{\pi_{k}}^{(j)}(s') \right]}_{q_{\pi_{k}}^{(j)}(s,a)} vπk(j+1)=a∑π(a∣s)qπk(j)(s,a)
[r∑p(r∣s,a)r+γs′∑p(s′∣s,a)vπk(j)(s′)](elementwise form)
现实中往往无法无线迭代,所以当 ∥ v π k ( j + 1 ) − v π k + 1 ( j ) ∥ < ϵ \Vert v_{\pi_k}^{(j+1)}-v_{\pi_{k+1}}^{(j)} \Vert < \epsilon ∥vπk(j+1)−vπk+1(j)∥<ϵ停止迭代。
2.2 策略优化(policy improvement)
π π k + 1 = arg max π ( r π + γ P π v π k ) \pi_{\pi_{k+1}}= \displaystyle \argmax_\pi(r_{\pi} + \gamma P_{\pi} v_{\pi_{k}}) ππk+1=πargmax(rπ+γPπvπk)(matrix form)
或者
π π k + 1 = arg max π ∑ a π ( a ∣ s ) [ ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v π k ( s ′ ) ] ⏟ q π k ( s , a ) \pi_{\pi_{k+1}}= \displaystyle \argmax_\pi \sum_a \pi(a|s) \underbrace{\left[\displaystyle \sum_r p(r|s,a) r+\gamma \displaystyle \displaystyle \sum_{s'} p(s'|s,a)v_{\pi_{k}}(s') \right]}_{q_{\pi_{k}}(s,a)} ππk+1=πargmaxa∑π(a∣s)qπk(s,a)
[r∑p(r∣s,a)r+γs′∑p(s′∣s,a)vπk(s′)](elementwise form)
即
π k + 1 ( a ∣ s ) = { 1 , a = a π k ∗ = arg max a q π k ( s , a ) 0 , a ≠ a π k ∗ \pi_{k+1}(a|s)=\begin{cases} 1, & a = a_{\pi_{k}}^*= \displaystyle \argmax_a q_{\pi_{k}}(s,a)\\ 0, & a \neq a_{\pi_{k}}^* \end{cases} πk+1(a∣s)=⎩
⎨
⎧1,0,a=aπk∗=aargmaxqπk(s,a)a=aπk∗
2.3 整体步骤
初始条件: p ( s ′ ∣ s , a ) , p ( r ∣ s , a ) , γ p(s'|s,a),p(r|s,a),\gamma p(s′∣s,a),p(r∣s,a),γ,以及随机初始化的 π 0 , v π 0 ( 0 ) \pi_0,v_{\pi_0}^{(0)} π0,vπ0(0)。
迭代过程: v π k ( ∞ ) → π k + 1 → v π k + 1 ( ∞ ) v_{\pi_k}^{(\infty)} \rightarrow \pi_{k+1} \rightarrow v_{\pi_{k+1}}^{(\infty)} vπk(∞)→πk+1→vπk+1(∞)
终止条件: ∥ v π k ( ∞ ) − v π k + 1 ( ∞ ) ∥ < ϵ \Vert v_{\pi_k}^{(\infty)}-v_{\pi_{k+1}}^{(\infty)} \Vert < \epsilon ∥vπk(∞)−vπk+1(∞)∥<ϵ
3 中断策略迭代(truncated policy iteration)
观察 policy iteration 发现,在 policy evaluation 过程中无法取得 v π k ( ∞ ) v_{\pi_k}^{(\infty)} vπk(∞),而当每次的迭代次数都设置为固定值 j t r u n c a t e d j_{truncated} jtruncated,称为 truncated policy iteration。而 value iteration 和 policy iteration 算法分别是该算法 j t r u n c a t e d = 1 j_{truncated}=1 jtruncated=1和 j t r u n c a t e d = ∞ j_{truncated}=\infty jtruncated=∞的特殊情况。
4 代码链接
更多推荐



所有评论(0)