强化学习学习笔记(二):Markov决策过程

一、Markov决策过程模型

        Markov决策过程是强化学习最经典、最重要的数学模型。大多数的强化学习问题都建模成Markov决策过程。

1.离散时间Markov决策过程

        1.1数学表示

        智能体观察状态 S_{t}\epsilon \boldsymbol{S} 的环境,得到观测 O_{t}\epsilon \boldsymbol{O} ,其中\boldsymbol{S}是状态空间,表示状态取值的综合;\boldsymbol{O}是观测空间,表示观测取值的综合。智能体根据观测决定做出动作 A_{t}\epsilon \boldsymbol{A},其中\boldsymbol{A }是动作合集。环境根据智能体的动作,给予智能体奖励 R_{t+1}\epsilon \boldsymbol{R} ,并进入下一步状态 S_{t+1}\epsilon \boldsymbol{S} ,其中\boldsymbol{R}是奖励空间,表示奖励取值的集合,它是实数集R的子集。

        1.2轨道表示

                                        S_{0},O_{0},A_{0},R_{1},S_{1},O_{1},A_{1},R_{2},S_{2},O_{2},A_{2},R_{3},......

        对于回合制任务,可能有一个终止状态,含有终止状态的状态空间记为S^{+},回合制的轨道表示是:

              S_{0},O_{0},A_{0},R_{1},S_{1},O_{1},A_{1},R_{2},S_{2},O_{2},A_{2},R_{3},......S_{T}   ,\boldsymbol{T}是达到终止状态的步数。

        1.3环境完全可观测情况下的轨道表示

        令 O_{t}=S_{t}(t=0,1,2,...),完全可观测任务的轨道可以简化为:

                                          S_{0},A_{0},R_{1},S_{1},A_{1},R_{2},S_{2},A_{2},R_{3},......

         1.4Markov决策过程模型

        Markov性:假设奖励 R_{t+1} 和下一状态 S_{t+1} 仅仅依赖于当前的状态 S_{t} 和动作 A_{t} ,而不是依赖于更早的状态和动作,这样的性质称为Markov性。Markov性是Markov决策过程模型对状态的额外约束,它要求状态必须含有可能对未来产生影响的所有过去信息。

        定义在时间\boldsymbol{t},从状态 S_{t}=\boldsymbol{s} 和动作 A_{t}=\boldsymbol{a} 跳转到下一状态 S_{t+1}=s ^{'} 和奖励 R_{t+1}=r的概率为:

                                        Pr[S_{t+1}=s^{'},R_{t+1}=r|S_{t}=s,A_{t}=a]

2.环境与动力

        Markov 决策过程的环境由动力刻画。

        2.1动力的定义

       有限Markov策略是指状态空间S、动作空间A、奖励空间R都是元素个数有限的集合。

          2.2其它导出量

 3.智能体与策略

        在Markov决策过程中,定义策略是从状态到动作的转移概率。对于有限Markov决策过程,其策略 \pi :S\times A\rightarrow [0,1] 可以定义为

 

 4.奖励、回报与价值函数

        对于回合制任务来说,从步骤 t(t<T)以后的回报G_{t}可以定义为未来奖励的和:

                                        G_{t}=R_{t+1}+R_{t+2}+\cdot \cdot \cdot+R _{T}

        对于连续性任务来说,如果对未来奖励信息简单求和,那么未来奖励信息的总和往往是无限大。为了解决这一问题,引入了折扣这一概念,进而定义回报为:

                 基于回报的定义,我们可以定义价值函数。对于给定的策略\pi,定义以下价值函数。

 二、Bellman 期望方程

        Bellman期望方程是价值函数的性质,常用来进行策略评估。策略评估是试图求解给定策略的价值函数。

        Bellman期望方程刻画了状态价值函数与动作价值函数之间的关系。Bellman方程由以下两部分组成:

        如果用空心圆圈代表状态,实心圆圈代表状态-动作对,则用动作价值函数表示状态价值函数的过程可以用备份图表示:

       

 

         如果用空心圆圈代表状态,实心圆圈代表状态-动作对,则用状态价值函数表示动作价值函数的过程可以用备份图表示:

         也可以用代入法消除另一个价值函数,得到全是本身价值函数的式子:

 

         对应的自我表示的备份图:

 三、举个栗子

        前两部分的那个Markov决策模型和那个Bellman那东西也太难懂了,这是人能会的东西吗?可是不会还不行,来举个栗子加深下理解吧QAQ。

        举个超级简单的栗子,我们可能会在饿的时候吃东西,也可能在不饿的时候吃东西,吃完了可能还会饿也可能不饿了。其中,‘我们’就是智能体;饿/不饿就是完全可观测的环境;吃/不吃就是我们在观测环境后做出的动作;吃完了饿/不饿是环境对我们的行动做出的改变;当然环境会在我们做出吃/不吃的动作后给出相应的奖励。

        1.那么首先给出动力系统的示意图:

         根据动力系统的示意图可以得到其状态转移图:

 2.给出对应的策略(从状态到动作的转移概率)

 

 3.可写出状态价值函数和动作价值函数

 4.根据动力系统示例和对应的策略示例可以写出状态价值函数和动作价值函数之间的关系:

 

 就简简单单的代入,不难的!

上面的方程是一个标准形式的线性方程组,我们可以用sympy的solve_linear_system()函数来求解它得到状态价值函数和动作价值函数。

 

得到的状态价值函数和动作价值函数为:

 

四、最优策略及其性质

1.最优策略与最优价值函数

2.Bellman 最优方程

        Bellman最优方程可以用于求解最优价值函数

        最优函数的性质:

         将最优函数性质代入Bellman期望方程,就可以得到Bellman最优方程。

        Bellman最优方程分成两部分:

        用最优动作价值函数表示最优状态价值函数:

        用最优状态价值函数表示最优动作价值函数:

         对应的备份图表示:

         也可以用代入法消除另一个价值函数,得到全是本身价值函数的式子:

        把之前举的栗子再给用上,根据动力系统示例可以列出Bellman最优方程: 

 

        这个方程是规范的线性方程,可以用sympy求解这个方程。通过分类讨论来化解max()运算,将优化问题转化为普通的线性规划问题。

 

五、实际情况       

        在实际情况下,环境往往十分复杂,无法对动力系统完全了解,而且动力系统必须可以用由Markov性的Markov决策来建模,很难用概率模型完全建模。很难列出Bellman最优方程。

        在实际情况下,状态空间巨大,没有足够的计算资源来求解Bellman方程,这时候会考虑采用间接的方法求解最优价值函数的值,甚至是近似值。很难求解Bellman方程。

         

os:后续章节会给出Bellman方程难以建立和求解的解决方法,敬请期待! 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值