强化学习的数学原理-04值迭代与策略迭代
Value iteration algorithm
算法可以被分为两步去做:
\(Step1:policy \: update\)
\(Step2:value \: update\)
Q:\(v_k\)是否是一个\(state \: value \:\)?\(A:\)不是的
Matrix-vector form对于理论分析通常是有用的
Elementwise form对于具体实现是有用的
\(Step1:policy \: update\)
对应的最优策略应该是:\(q_k(s, a)\)最大的\(action\)
\(\pi_{k+1}\)是一个贪心的策略,因为他只是单纯地寻找最大的\(q-value\)
\(Step2:value \: update\)
因为\(\pi_{k+1}\)是贪心的,上面的等式就变为
也就是说\(state \: value\)就是\(action \: value\)最大的那个\(action\)对应的
Policy iteration algorithm
给一个随机初始化的策略\(\pi_0\)
第一步进行:策略评估(PE, policy evaluation)
$$v_{\pi_k} : = : r_{\pi_k} + \gamma P_{\pi_{k}}v_{\pi_k}$$
根据贝尔曼方程可以计算出\(v_{\pi_k}\)
第二步进行:策略改进(PI,policy improvement)
$$\pi_{k+1} ; = ; \arg \max_{\pi}\left( r_{\pi} + \gamma P_{\pi} v_{\pi_k} \right)$$
具体实现需要看\(elementwise \: form\)
Truncated policy iteration algorithm
是上面\(value \; iteration \:\)和\(policy \; iteration \:\)算法的推广
对比一下\(value \; iteration \:\)和\(policy \; iteration \:\)
\(value \; iteration \:\)和\(policy \; iteration \:\)主要的区别在Value更新的那一步
\(value \; iteration \:\)在计算了一步之后就用\(v_1\)去更新策略了,而\(policy \; iteration \:\)是在计算了无穷步之后用收敛的\(v_{\pi_1}\)去更新的\(v_{\pi}\)
而实际中我们是不可能去计算无穷步的,我们之后计算算有限步,当\(error\)很小的时候就停止更新,这就是\(Truncated \: policy \: iteration \: algorithm\)