强化学习:原理与Python实现
上QQ阅读APP看书,第一时间看更新

2.1 Markov决策过程模型

在智能体/环境接口中,智能体可以向环境发送动作,并从环境得到状态和奖励信息。本节将从离散时间的智能体/环境接口出发导出离散时间Markov决策过程模型,并介绍离散时间Markov决策过程模型的关键数学概念。

2.1.1 离散时间Markov决策过程

离散时间Markov决策过程模型可以在离散时间的智能体/环境接口的基础上进一步引入具有Markov性的概率模型得到。首先我们来回顾上一章提到的离散时间智能体/环境接口。

在离散时间智能体/环境接口中,智能体和环境交互的时刻为{0,1,2,3,…}。在时刻t,依次发生以下事情。

·智能体观察状态St的环境,得到观测Ot,其中状态空间(state space),表示状态取值的综合;观测空间(observation space),表示观测取值的集合。

·智能体根据观测决定做出动作At,其中是动作集合。

·环境根据智能体的动作,给予智能体奖励Rt+1,并进入下一步的状态St+1。其中奖励空间(reward space),表示奖励取值的集合,它是实数集的子集。

在运行过程中,每一步的可能取值范围不同。很多时候,这是由于在不同观测下可选的动作集合可能不同造成的。为了分析方便,往往用一个包括所有可能动作的更大的集合来表示,使得每一步的动作集合在数学上可以用同样的字母表示。

注意:①不同的文献可能会用不同的数学记号。例如,有些文献会将动作At后得到的奖赏记为Rt,而本书记为Rt+1。本书采用这样的字母是考虑到Rt+1和St+1往往是同时确定的。

②这里的离散时间并不一定是间隔相同或是间隔预先设定好的时间。这里的离散时间指标t只是表示决策和动作的指标。

一个时间离散化的智能体/环境接口可以用这样的轨道(trajectory)表示:

S0,O0,A0,R1,S1,O1,A1,R2,S2,O2,A2,R3,…

对于回合制的任务,可能会有一个终止状态s终止。终止状态和其他普通的状态有着本质的不同:当达到终止状态时,回合结束,不再有任何观测或动作。所以,状态空间里的状态不包括终止状态。在回合制任务中,为了强调终止状态的存在,会将含有终止状态的状态空间记为+。回合制任务的轨道形式是:

S0,O0,A0,R1,S1,O1,A1,R2,S2,O2,A2,R3,…,ST=s终止

其中T是达到终止状态的步数。

注意:回合制任务中一个回合的步数T是一个随机变量。它在随机过程中可以视为一个停时(stop time)。

在时间离散化的智能体/环境中,如果智能体可以完全观察到环境的状态,则称环境是完全可观测的。这时,不失一般性地,可以令Ot=St(t=0,1,2,…),完全可观测任务的轨道可以简化为:

S0,A0,R1,S1,A1,R2,S2,A2,R3,…,ST=s终止

这样就不需要再使用字母Ot了。

注意:智能体/环境接口没有假设状态是完全可观测的。部分不完全可观测的问题可以建模为部分可观测的Markov决策过程(Partially Observable Markov Decision Process,POMDP),并用相应方法求解。

在上述基础上进一步引入概率和Markov性,就可以得到Markov决策过程模型。定义在时间t,从状态St=s和动作At=a跳转到下一状态St+1=s'和奖励Rt+1=r的概率为:

Pr[St+1=s',Rt+1=r|St=s,At=a]

引入这一概念,我们就得到了Markov决策过程模型。值得一提的是,这样的概率假设认为奖励Rt+1和下一状态St+1仅仅依赖于当前的状态St和动作At,而不依赖于更早的状态和动作。这样的性质称为Markov性。Markov性是Markov决策过程模型对状态的额外约束,它要求状态必须含有可能对未来产生影响的所有过去信息。

注意:智能体/环境接口没有假设状态满足Markov性。Markov性是Markov决策过程的特点。另外,有时也能从不满足Markov性的观测中构造满足Markov性的状态,或者去学习Markov性。

如果状态空间、动作空间、奖励空间都是元素个数有限的集合,这样的Markov决策过程称为有限Markov决策过程(Finite Markov Decision Process,Finite MDP)。

2.1.2 环境与动力

Markov决策过程的环境由动力刻画。本节介绍动力的定义和导出量。

对于有限Markov决策过程,可以定义函数p:×××→[0,1]为Markov决策过程的动力(dynamics):

p(s',r|s,a)=Pr[St+1=s',Rt+1=r|St=s,At=a]

p函数中间的竖线“|”取材于条件概率中间的竖线。

利用动力的定义,可以得到以下其他导出量。

·状态转移概率:

·给定“状态–动作”的期望奖励:

·给定“状态–动作–下一状态”的期望奖励:

对于不是有限Markov决策过程的Markov决策过程,可以用类似的方法定义动力函数与导出量,只是定义时应当使用概率分布函数。动力的定义将离散空间的情况和连续空间的情况用统一的字母表示,简化了书写。

我们来看一个有限Markov决策过程的例子:某个任务的状态空间为={饿,饱},动作空间为={不吃,吃},奖励空间为={-3,-2,-1,+1,+2,+3},转移概率由表2-1定义。

表2-1 动力系统示例(其中α,β∈(0,1)是参数)

该Markov决策过程可以用状态转移图(见图2-1)表示。

图2-1 示例的状态转移图

2.1.3 智能体与策略

如前所述,智能体根据其观测决定其行为。在Markov决策过程中,定义策略(policy)为从状态到动作的转移概率。对于有限Markov决策过程,其策略π:×→[0,1]可以定义为

π(a|s)=Pr[At=a|St=s],s∈,a∈

对于动作集为连续的情况,可以用概率分布来定义策略。

如果某个策略π对于任意的s∈,均存在一个a∈,使得

π(a'|s)=0,a'≠a

则这样的策略被称为确定性策略。这个策略可以简记为π:,即π:sπ(s)。

例如,对于表2-1的环境,某个智能体可以采用表2-2中的策略。

表2-2 表2-1对应的策略示例(其中x,y∈(0,1)是参数)

2.1.4 奖励、回报与价值函数

在第1章中已经介绍过,强化学习的核心概念是奖励,强化学习的目标是最大化长期的奖励。本节就来定义这个长期的奖励。

对于回合制任务,假设某一回合在第T步达到终止状态,则从步骤t(t<T)以后的回报(return)Gt可以定义为未来奖励的和:

Gt=Rt+1+R1+2+…+Rt

注意:在上式中,t是一个确定性的变量,而回合的步数T是一个随机变量。因此,在Gt的定义式中,不仅每一项是随机变量,而且含有的项数也是随机变量。

对于连续性任务,上述Gt的定义会带来一些麻烦。由于连续性的任务没有终止时间,所以Gt会包括t时刻以后所有的奖励信息。但是,如果对未来的奖励信息简单求和,那么未来奖励信息的总和往往是无穷大。为了解决这一问题,引入了折扣(discount)这一概念,进而定义回报为:

其中折扣因子γ∈[0,1]。折扣因子决定了如何在最近的奖励和未来的奖励间进行折中:未来τ步后得到的1单位奖励相当于现在得到的γτ单位奖励。若指定γ=0,智能体会只考虑眼前利益,完全无视远期利益,就相当于贪心算法的效果;若指定γ=1,智能体会认为当前的1单位奖励和未来的1单位奖励是一样重要的。对于连续性任务,一般设定γ∈(0,1)。这时,如果未来每一步的奖励有界,则回报也是有界的。

注意:有些文献为连续性任务定义了平均奖励(average reward)。平均奖励的定义为,是对除以步数的期望求极限的结果。还有文献会进一步定义相对于平均奖励的回报,即让每一步的奖励都减去平均奖励后再求回报。

基于回报的定义,可以进一步定义价值函数(value function)。对于给定的策略π,可以定义以下价值函数。

·状态价值函数(state value function):状态价值函数vπ(s)表示从状态s开始采用策略π的预期回报。如下式所示:

vπ(s)=Eπ[Gt|St=s]

·动作价值函数(action value function):动作价值函数qπ(s,a)表示在状态s采取动作a后,采用策略π的预期回报。如下式所示:

qπ(s,a)=Eπ[Gt|St=s,At=a]

终止状态s终止不是一个一般的状态,终止状态后没有动作。为了在数学上有统一的形式,一般定义vπ(s终止)=0,qπ(s终止,a)=0(a∈)。

例如,对于表2-1和表2-2的例子,有:

vπ(饿)=Eπ[Gt|St=饿]

vπ(饱)=Eπ[Gt|St=饱]

qπ(吃|饿)=Eπ[Gt|St=饿,At=吃]

qπ(不吃|饿)=Eπ[Gt|St=饿,At=不吃]

qπ(吃|饱)=Eπ[Gt|St=饱,At=吃]

qπ(不吃|饱)=Eπ[Gt|St=饱,At=不吃]

下一节将为给定的动力和策略计算价值函数。