强化学习 4. 动态规划

本章假设环境是一个有限的MDP,且概率分布由\(p(s',r|s,a)\)给出
\[ \begin{aligned} v_* (S)&=\mathop{\max}_ {\pi} v_\pi(s)=\mathop{\max}_ {a} E_{\pi_* }[G_t|S_t=s,A_t=a]\\ &=\mathop{\max}_ {a} E_{\pi_* }[R_{t+1} +\gamma G_{t+1}|S_t=s,A_t=a]\\ &=\mathop{\max}_ {a} \sum_{s',r} p(s',r|s,a)[r+\gamma v_* (s')]\\ q_* (s,a)&=\mathop{\max}_ {\pi} q_\pi(s,a)=E[R_{t+1}+\gamma v_* (S_{t+1})|S_t=s,A_t=a]\\ &=\sum_{s',r}p(s',r|s,a)[r+\gamma \mathop{\max}_ {a'} q_* (s',a')] \end{aligned} \]

4.1 策略评估【预测】

\[ \begin{aligned} v_\pi(s) &=E_\pi[G_t|S_t=s]=E_\pi[R_{t+1}+\gamma G_{t+1}|S_t=s]\\ &=\sum_{a} \pi(a|s)\sum_{s'}\sum_{r} p(s',r|s,a)[r+\gamma E_\pi[G_{t+1}|S_{t+1}=s']]\\ &=\sum_{a} \pi(a|s)\sum_{s',r}p(s',r|s,a)[r+\gamma v_\pi(s')]\\ \end{aligned} \]
上式是一个有着\(|\mathcal{S}|\)个未知数以及 \(|\mathcal{S}|\)个等式的联立线性方程组,理论上,这个方程可以被直接解出,但是计算过程有点烦琐,所以我们用迭代法来解决这个问题。
迭代评估策略:初始值\(v_0\)可以任意选取(除了终止状态值必须为0外),每次迭代都近似使用贝尔曼方程,显然当\(v_k=v_\pi\)时是这个更像规则的不动点。【实际上会在变化足够小的时候停止\(\mathop{\max}_ {s\in \mathcal{S}}|v_{k+1} (s)-v_k(s)|< \theta\)

4.2 策略改进

策略评估只是计算给定策略下的价值函数,而计算价值函数目的是为了寻找更好的策略。
如果对于任意状态\(s\in \mathcal{S}\),有\(q_\pi(s,\pi'(s)) \ge v_\pi(s)\),我们称\(\pi'\)\(\pi\)一样好或者更好,即对于任意状态\(s\in \mathcal{S}\),\(v_\pi'(s)\ge v_\pi(s)\)

每次选当前的最优动作,会改进策略

证明:
\[ \begin{aligned} v_\pi(s) &\le q_\pi(s,\pi'(s))=E[R_{t+1}+\gamma v_\pi(S_{t+1})|S_t=s,A_t=\pi'(s)]=E_{\pi'}[R_{t+1}+\gamma v_\pi(S_{t+1})|S_t=s]\\ & \le E_{\pi'}[R_{t+1}+\gamma q_\pi(S_{t+1},\pi'(S_{t+1}))|S_t=s]=E_{\pi'}[R_{t+1}+\gamma R_{t+2}+\gamma^2 v_\pi(S_{t+2})|S_t=s]\\ & \le E_{\pi'}[R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+...|S_t=s]=v_{\pi'}(s) \end{aligned} \]

4.3 策略迭代

重复 策略评估和策略改进过程,直到最优策略【迭代收敛】
\[ \pi_0 \xrightarrow{E} v_{\pi_0}\xrightarrow{I}\pi_1 \xrightarrow{E} v_{\pi_1}\xrightarrow{I}\pi_2... \xrightarrow{I} \pi_* \xrightarrow{E} v_* \]

4.4 价值迭代

策略评估步骤中,一次遍历后就停止策略评估【对每个状态只进行一次更新】,该算法称为价值迭代。
\[ v_{k+1}(s)=\mathop{\max}_ {a} E[R_{t+1}+\gamma v_k(S_{t+1})|S_t=s,A_t=a]=\mathop{\max}_ {a}\sum_{s',r}p(s',r|s,a)[r+\gamma v_k(s')] \]
max的过程也是策略更新的过程。策略迭代和价值迭代哪个更好目前没有定论。

4.5 异步动态规划

DP的一个缺点是他们涉及对MDP整个状态集的操作,即要遍历整个状态集,若状态集很大,即使单次遍历也十分昂贵。
异步DP算法是就地迭代的DP算法【以任意顺序来更新状态值,类似可重复抽样】,比如价值迭代中,一次只更新一个状态\(s_k\)的值。

4.6 广义策略迭代

策略迭代时先进行策略评估,之后策略改进,两个流程交替进行,而异步DP则是评估和改进以更细粒度交替进行,在某些特殊情况,甚至可能仅有一个状态在评估流程中进行了更细,就利马返回改进流程。但只要这两个流程持续更新所有状态,最后的结果总是相同的,即收敛到最优价值函数和最优策略。
广义策略迭代GPI来指代策略评估和策略改进相互作用的一般思路,与这两个流程的粒度和其他细节无关。几乎所有的强化学习方法都可以被描述为GPI。
GPI的评估和改进流程可以看做竞争和合作,竞争是他们朝着相反的方向前进,策略改进会让价值函数对当前策略不匹配,而价值函数与策略一致会让策略不再满足贪心。
GPI的评估和改进流程还可视为两个约束或目标之间相互作用的过程。

4.7 动态规划的效率

DP算法有时会由于纬度灾难【状态总数随着状态变量的增加而指数上升】而被认为是缺乏实用性的。但这是问题本身的难度,而非DP作为解法带来的困难,事实上,相比直接搜索和线性规划,DP更适合解决大规划状态空间问题。
可解决数百万个状态的的马尔可夫决策过程。对于很大状态空间的,我们通常使用异步DP算法【往往只有相对较少的状态会沿着最优解的轨迹出现】

猜你喜欢

转载自www.cnblogs.com/ximelon/p/11812492.html