强化学习基础学习系列之MDP

来源:互联网 发布:怎么设置淘宝优惠券 编辑:程序博客网 时间:2024/05/21 17:28

在看david silver的强化学习课程,顺便做做笔记,作为回顾复习,有些内容加上了自己的理解,不正确的话还望指出。
下面用到的图片均来自课程中的ppt,就不一一说明了,课程链接:http://www0.cs.ucl.ac.uk/staff/d.silver/web/Home.html,优酷上有中文翻译的:http://v.youku.com/v_show/id_XMjcwNDA5NzIwOA==.html

在强化学习基础学习系列之强化学习简介我们简单地讨论了RL要解决的问题以及它的应用场景分类和算法类型。这一节是对RL应用场景分类中的MDP(马尔科夫决策过程)的一个详细讨论,事实上这门课后面要讲的算法都是基于问题的形式是MDP的情况的。要将RL应用到现实的问题中,就必须先把现实中的问题用MDP去建模,个人觉得,RL应用的一个很关键的地方就是如何把现实的问题较好地形式化为一个MDP,所以理解MDP是很非常重要的。而对于POMDP,我接触的不多,但就像第一节课说的那样,通过用历史来构造代理状态,而此时只能期望构造出来的代理状态能够具有像环境状态那样的作用,也就是根据当前的动作能够得到下一步的观测和回报(model-base的方法)或者根据代理状态足够用来作出决策(model-free的方法);对于MDP,则不用考虑这些问题,因为它的当前的观测=环境状态=代理状态。
MDP的一个特点就是马尔科夫性,这节课通过从马尔科夫过程(MP)讲到马尔科夫回报过程(MRP)再讲到马尔科夫决策过程(MDP),循序渐进。
因为这节课讲的其实已经是很清楚了,用一个生动的例子循序渐进地阐述,而且讲的很明白,我感觉实在没有必要再重述一遍,有兴趣可以自己去看,这里只是把一些概念性的东西陈述出来。

马尔科夫过程

如下图所示:
这里写图片描述
而马尔科夫性是指:
这里写图片描述
代理处于一个状态,然后根据当前的状态(不需要管之前经历过哪些状态也不需要管当前是什么时刻)以一定的概率跳到下一个状态,就这样一直到结束。

马尔科夫回报过程

马尔科夫回报过程是在马尔科夫过程的基础上,加上一个回报,如下图:
这里写图片描述
与MP不一样的时,MRP在从一个状态跳到另一个状态的同时也会获得一定的回报,而这个回报可能是随机的也可能是确定的,获得回报的依据只需知道当前的状态是什么而不需要考虑之前经历过哪些状态也不需要考虑当前是什么时刻;因为有回报,所以也就多了些东西,多了的东西叫回报和,表示从一个状态开始一直到最后能得到的回报总和,如下图:
这里写图片描述
这里定义的回报和是对一个sample来说的,真正在定义从某个状态开始的回报和时还需加上一个期望,也就是:
这里写图片描述
值得注意的是,这个回报和的定义不是简单地将各个时刻的回报加起来,而是会对各个时刻的回报乘上一个折扣因子,越到后面的回报乘上的因子越小,这样做的原因一是数学上的原因,有些过程是没有终止状态的,所以回报和可能会无穷,而加上折扣因子后则能保证数值有限,二是这样做往往更符合人的期望,人对短期的利益总是要比长期的利益要重视,就像当你要进行投资时,有人告诉你投资A公司在3天后就能收益1万元,而投资B公司10年后能收益1000万元,可能你还是更愿意投资A公司。
总的来说,MRP的过程是,一个代理处于某种状态,然后以一定的概率获得回报,再以一定的概率跳到下一个状态,就这样不断地进行一直到结束。

马尔科夫决策过程

MDP相对MRP是加上了动作,如下图:
这里写图片描述
我们一开始在讨论RL的问题时,我们的最终目标就是得到一个策略,而策略就是当处于当前场景时,代理应该采取什么动作,所以MDP自然地也就地包括动作。
先看策略的定义是怎样的:
这里写图片描述
可以看到,策略根据当前的状态(不管之前经历过什么状态也不管当前处于什么时刻)决定应该采取的动作。
代理在MDP中,处于某种状态,然后按照某种策略采取动作,以一定的概率获得一定的回报,然后又以一定的概率跳到某种状态,然后如此反复。
由于我们的目的是要得到最优的策略,从而最大化回报和,然后达到目标,而要判断一个策略是不是最优,很自然的一个衡量标准就是在该策略下的回报和,具体来讲,我们把它们称作价值函数,价值函数有两种,如下图:
这里写图片描述
状态价值函数是说,当处于状态s时,按照某种策略一直执行下去,最终能获得的期望回报和是多少,而动作价值函数是说当处于某种状态,作出了某种动作后,接下来再按某种策略一直执行下去,最终能获得的期望回报和是多少。
为了说明如何得到最优策略,这里是通过先定义最优的价值函数:
这里写图片描述
然后再说明什么叫一个策略比另一个策略好以及存在一个最优的策略不比任何策略差,在这个策略上计算出来的两种价值函数都是最优的价值函数:
这里写图片描述
但是,这并没有说明如何求得最优策略,接下来就提出了最优的策略可以通过最优动作价值函数得到:
这里写图片描述
值得注意的是这样的策略可能不止一个,但总存在一个最优的确定性的策略。这告诉我们如果能得到最有动作价值函数,那么我们就可以求出最优策略,由此引出来的后来的一些为了求得最优动作价值函数的算法,都属于value-base的方法。
这节课里还讲了价值函数的一些类似与递归的性质,这为后来的value-base的方法打下了基础,我准备把它在下篇再列举出来,这里就先不写了。

MDP的扩展

  • 连续的MDP:这门课讲的算法大都是针对有限的MDP的,也就是总是有一个终止状态,而事实上还有没有终止状态的情况,我们把那种叫做连续的MDP

  • POMDP:也就是部分可观测的MDP

  • 折扣因子为1的情况

  • 基于平均回报的MDP

一些讨论

这个不是课程里的内容,只是我自己的一些理解,有些内容我总是想在逻辑上把它说通,纠结好几天了,不知道正不正确,先写出来吧,后面如果还有不同的理解再修改。
RL对要要解决的问题的定义是如下图所示这样的:
这里写图片描述
代理内部会维持一个状态叫代理状态并以此来做出动作,环境根据代理做出的动作,然后根据其内部维持的环境状态来产生观测和回报并更新其环境状态(如果需要的话),然后代理接收观测和回报加入历史中,并根据历史来更新代理状态,然后再根据新的代理状态来作出新的动作,如此反复。

  • 识别MDP:MDP中,当前观测=当前代理状态=环境状态,具体而言,要看的是从环境的角度,根据当前的观测和动作是否能够预测出下一个观测和动作,如果可以说明当前观测=环境状态,而自然而然地,当前观测足够用来作为代理状态。否则的话,就要考虑如何用历史来构造代理状态。

  • 思考如何构造代理状态:当已经判断出是MDP是,代理状态当然就等于当前观测,而当问题不是MDP是,比如是POMDP,构造出来的代理状态就要近似等于环境状态。(因为解决MDP的方法比如蒙特卡罗都是从环境中采样的,采到的样本是基于环境状态的)

  • 一些理解:如果问题是MDP,那么自然model-base和model-free的方法都适合。而如果问题不是MDP,在model-free抑或model-base的方法中,属于value-base的方法的效果好坏就看构造出来的代理状态是否足够接近环境状态,而属于policy-base的方法则不管构造出来的代理状态足够接近环境状态还是不接近环境状态(比如就只拿当前观测作为代理状态),效果可能都还不错(一种可能的原因是它们得出来的最优策略可以是随机的而不不一定是确定的)。

总结起来,在对具体问题建模时:

  • 搞懂问题的动作,观测和回报(有时是自己设计)是什么,以及最大化回报是否能够达到最终目标;

  • 判断是否是MDP问题,如果是,则易知代理状态=当前观测;否则,用历史构造代理状态,使其近似等于环境状态(就是判断是否能根据构造出来的代理状态和动作预测出观测和回报),当然还要看是使用哪种方法,policy-base的方法对非MDP问题可能更适合些,因为它们可能在代理状态不等于环境状态时也能表现地比较好。