强化学习(二)马尔科夫决策过程(MDP)

姓名:白子轩       学号:21011110229     学院:通信工程学院

转自:https://www.cnblogs.com/pinard/p/9426283.html

【嵌牛导读】本文将对马尔科夫决策过程进行介绍

嵌牛鼻子】马尔科夫决策

嵌牛提问】马尔科夫决策过程的原理是什么?

嵌牛正文

在强化学习(一)模型基础中,我们讲到了强化学习模型的8个基本要素。但是仅凭这些要素还是无法使用强化学习来帮助我们解决问题的, 在讲到模型训练前,模型的简化也很重要,这一篇主要就是讲如何利用马尔科夫决策过程(Markov Decision Process,以下简称MDP)来简化强化学习的建模。MDP这一篇对应Sutton书的第三章和UCL强化学习课程的第二讲。

强化学习引入MDP的原因

强化学习的8个要素我们在第一节已经讲了。其中的第七个是环境的状态转化模型,它可以表示为一个概率模型,即在状态s下采取动作a,转到下一个状态s′的概率,表示为P^a_{ss′}

如果按照真实的环境转化过程看,转化到下一个状态s′s′的概率既与上一个状态ss有关,还与上上个状态,以及上上上个状态有关。这一会导致我们的环境转化模型非常复杂,复杂到难以建模。因此我们需要对强化学习的环境转化模型进行简化。简化的方法就是假设状态转化的马尔科夫性,也就是假设转化到下一个状态s′s′的概率仅与上一个状态ss有关,与之前的状态无关。用公式表示就是:

P_{s s^{\prime}}^{a}=\mathbb{E}\left(S_{t+1}=s^{\prime} \mid S_{t}=s, A_{t}=a\right)

除了对于环境的状态转化模型这个因素做马尔科夫假设外,我们还对强化学习第四个要素个体的策略(policy)π也做了马尔科夫假设。即在状态s时采取动作a的概率仅与当前状态s有关,与其他的要素无关。用公式表示就是

\pi(a \mid s)=P\left(A_{t}=a \mid S_{t}=s\right)

对于第五个要素,价值函数v_{π(s)}也是一样, v_{π(s)}现在仅仅依赖于当前状态了,那么现在价值函数v_{π(s)}表示为:

v_{\pi}(s)=\mathbb{E}_{\pi}\left(G_{t} \mid S_{t}=s\right)=\mathbb{E}_{\pi}\left(R_{t+1}+\gamma R_{t+2}+\gamma^{2} R_{t+3}+\ldots \mid S_{t}=s\right)

其中,G_t代表收获(return), 是一个MDP中从某一个状态S_t开始采样直到终止状态时所有奖励的有衰减的之和。

MDP的价值函数与贝尔曼方程

对于MDP,我们在第一节里已经讲到了它的价值函数v_{\pi}(s)的表达式。但是这个表达式没有考虑到所采用的动作a带来的价值影响,因此我们除了v_{\pi}(s)这个状态价值函数外,还有一个动作价值函数q_π(s,a),即:

q_{\pi}(s, a)=\mathbb{E}_{\pi}\left(G_{t} \mid S_{t}=s, A_{t}=a\right)=\mathbb{E}_{\pi}\left(R_{t+1}+\gamma R_{t+2}+\gamma^{2} R_{t+3}+\ldots \mid S_{t}=s, A_{t}=a\right)

根据价值函数的表达式,我们可以推导出价值函数基于状态的递推关系,比如对于状态价值函数v_{\pi}(s),可以发现:

\begin{aligned}v_{\pi}(s) &=\mathbb{E}_{\pi}\left(R_{t+1}+\gamma R_{t+2}+\gamma^{2} R_{t+3}+\ldots \mid S_{t}=s\right) \\&=\mathbb{E}_{\pi}\left(R_{t+1}+\gamma\left(R_{t+2}+\gamma R_{t+3}+\ldots\right) \mid S_{t}=s\right) \\&=\mathbb{E}_{\pi}\left(R_{t+1}+\gamma G_{t+1} \mid S_{t}=s\right) \\&=\mathbb{E}_{\pi}\left(R_{t+1}+\gamma v_{\pi}\left(S_{t+1}\right) \mid S_{t}=s\right)\end{aligned}

也就是说,在t时刻的状态S_t和t+1时刻的状态S_{t+1}是满足递推关系的,即:

v_{\pi}(s)=\mathbb{E}_{\pi}\left(R_{t+1}+\gamma v_{\pi}\left(S_{t+1}\right) \mid S_{t}=s\right)

这个递推式子我们一般将它叫做贝尔曼方程。这个式子告诉我们,一个状态的价值由该状态的奖励以及后续状态价值按一定的衰减比例联合组成。

同样的方法,我们可以得到动作价值函数q_π(s,a)的贝尔曼方程:

q_{\pi}(s, a)=\mathbb{E}_{\pi}\left(R_{t+1}+\gamma q_{\pi}\left(S_{t+1}, A_{t+1}\right) \mid S_{t}=s, A_{t}=a\right)

状态价值函数与动作价值函数的递推关系

根据动作价值函数q_π(s,a)和状态价值函数v_{\pi}(s)的定义,我们很容易得到他们之间的转化关系公式:

v_{\pi}(s)=\sum_{a \in A} \pi(a \mid s) q_{\pi}(s, a)

也就是说,状态价值函数是所有动作价值函数基于策略π的期望。通俗说就是某状态下所有状态动作价值乘以该动作出现的概率,最后求和,就得到了对应的状态价值。

反过来,利用上贝尔曼方程,我们也很容易从状态价值函数v_{\pi}(s)表示动作价值函数q_π(s,a),即:

q_{\pi}(s, a)=R_{s}^{a}+\gamma \sum_{s^{\prime} \in S} P_{s s^{\prime}}^{a} v_{\pi}\left(s^{\prime}\right)

通俗说就是状态动作价值有两部分相加组成,第一部分是即时奖励,第二部分是环境所有可能出现的下一个状态的概率乘以该下一状态的状态价值,最后求和,并加上衰减。这两个转化过程也可以从下图中直观的看出:



把上面两个式子互相结合起来,我们可以得到:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容