强化学习——值和策略迭代(四)

值和策略迭代算法

1 值迭代算法(value iteration algorithm)

根据贝尔曼最优公式就能得出最优的 state value 和最优的 policy。

1.1 策略更新(policy update)

为了得出最优的策略通过
πk+1=arg maxπ(rπ+γPπvk)\pi_{k+1}= \displaystyle \argmax_\pi(r_\pi + \gamma P_\pi v_k)(matrix form)
或者
πk+1=arg maxπaπ(as)[rp(rs,a)r+γsp(ss,a)vk(s)]qk(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)}(elementwise form)

πk+1(as)={1,a=ak=arg maxaqk(s,a)0,aak\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}

1.2 值更新(value update)

vk+1=rπk+1+γPπk+1vkv_{k+1}= r_{\pi_{k+1}} + \gamma P_{\pi_{k+1}} v_k(matrix form)
或者
vk+1=aπ(as)[rp(rs,a)r+γsp(ss,a)vk(s)]qk(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)}(elementwise form)
由于π(as)=1\pi(a|s)=1,而且是在a=ak=arg maxaqk(s,a)a=a_k^*= \displaystyle \argmax_a q_k(s,a)取得。可以简化成vk+1=maxqk(s,a)v_{k+1}=\max q_k(s,a)

1.3 整体步骤

初始条件:p(ss,a),p(rs,a),γp(s'|s,a),p(r|s,a),\gamma,以及随机初始化的v0v_0
迭代过程:vkqkπk+1vk+1v_k \rightarrow q_k \rightarrow \pi_{k+1} \rightarrow v_{k+1}
终止条件:vk+1vk<ϵ\Vert v_{k+1}-v_k \Vert < \epsilon

2 策略迭代算法(policy iteration algorithm)

2.1 策略评估(policy evaluation)

通过贝尔曼公式的迭代解求出当前策略下最优的 state value。该步骤是需要不断迭代的。
vπk(j+1)=rπk+γPπkvπk(j)v_{\pi_{k}}^{(j+1)}=r_{\pi_k}+\gamma P_{\pi_k} v_{\pi_k}^{(j)}(matrix form)
或者
vπk(j+1)=aπ(as)[rp(rs,a)r+γsp(ss,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)}(elementwise form)
现实中往往无法无线迭代,所以当vπk(j+1)vπk+1(j)<ϵ\Vert v_{\pi_k}^{(j+1)}-v_{\pi_{k+1}}^{(j)} \Vert < \epsilon停止迭代。

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}})(matrix form)
或者
ππk+1=arg maxπaπ(as)[rp(rs,a)r+γsp(ss,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)}(elementwise form)

πk+1(as)={1,a=aπk=arg maxaqπk(s,a)0,aaπ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}

2.3 整体步骤

初始条件:p(ss,a),p(rs,a),γp(s'|s,a),p(r|s,a),\gamma,以及随机初始化的π0,vπ0(0)\pi_0,v_{\pi_0}^{(0)}
迭代过程:vπk()πk+1vπk+1()v_{\pi_k}^{(\infty)} \rightarrow \pi_{k+1} \rightarrow v_{\pi_{k+1}}^{(\infty)}
终止条件:vπk()vπk+1()<ϵ\Vert v_{\pi_k}^{(\infty)}-v_{\pi_{k+1}}^{(\infty)} \Vert < \epsilon

3 中断策略迭代(truncated policy iteration)

观察 policy iteration 发现,在 policy evaluation 过程中无法取得vπk()v_{\pi_k}^{(\infty)},而当每次的迭代次数都设置为固定值jtruncatedj_{truncated},称为 truncated policy iteration。而 value iteration 和 policy iteration 算法分别是该算法jtruncated=1j_{truncated}=1jtruncated=j_{truncated}=\infty的特殊情况。