强化学习(Reinforcement Lrarning,RL)02:马尔科夫决策过程

强化学习(Reinforcement Lrarning,RL)02:马尔科夫决策过程

马尔科夫决策过程(Markov Decision Proocess, MDP)是强化学习和决策理论中的一个核心概念,通过引入决策(动作)以及奖励机制来模型化智能体在不确定环境中的决策问题,旨在找到一个最优策略,使得智能体在长期中获得的累计奖励最大

本文的马尔科夫决策过程的相关概念将在自定义的一个网格世界(Grid World)中进行阐述,如下图所示:

网格世界

在这个网格世界中,白色区域为普通区域,红色区域 为禁止区域,进入会获得相应惩罚,绿色区域为目标区域,进入会获得一定奖励。其中,动作的主体称作智能体(Agent),智能体可以在网格世界中上、下、左、右移动 。

规定: 若智能体试图越出边界,将会被反弹。例如,当智能体处于 s 1 s_1 s1 时,若向上移动,则会被反弹而停留在 s 1 s_1 s1,相当于又进入了 s 1 s_1 s1 一次。

注意: 本文中大写字母均表示随机变量,对应的小写字母则为随机变量的采样值。

状态与状态空间

状态(State)

对当前环境的概括,用 s s s 表示。 在上述网格世界中,可以简单理解为智能体所处的位置,如 s 1 , s 2 , . . . s_1,s_2,... s1s2... 都被称作为智能体的状态。

状态空间(State Space)

当前环境中,所有状态的集合,用花体字母 S S S 表示。在网格世界中, S = { s i } i = 1 9 = { s 1 , s 2 , . . . , s 8 , s 9 } S=\{s_i\}_{i=1}^{9}=\{s_1,s_2,...,s_8,s_9\} S={si}i=19={s1,s2,...,s8,s9}

动作与动作空间

动作

动作(Action)

指智能体做出的决策,用 a a a 表示。网格世界中,智能体可以上、下、左、右进行移动,记 a 0 a_0 a0= 停在原地, a 1 a_1 a1= 向上移动, a 2 a_2 a2= 向右移动, a 3 a_3 a3= 向下移动, a 4 a_4 a4= 向左移动。

动作空间(Action Space)

所有可能动作的集合,用花体字母 A A A 表示。在网格世界中, A = { a i } i = 0 4 = { a 0 , a 1 , a 2 , a 3 , a 4 } A=\{a_i\}_{i=0}^{4}=\{a_0,a_1,a_2,a_3,a_4\} A={ai}i=04={a0,a1,a2,a3,a4}

策略函数

策略函数(Policy Function): 根据观测到的状态做出决策,从而控制智能体的动作,用 π \pi π 表示。

策略函数 π : S × A → [ 0 , 1 ] \pi:S\times A\rightarrow [0,1] π:S×A[0,1] 是一个条件概率密度函数,指的是在当前状态 s s s 下,智能体做出动作 a a a 的概率:
π ( a ∣ s ) = P ( A = a ∣ S = s ) \pi(a|s)=P(A=a|S=s) π(as)=P(A=aS=s)

显然有,
∑ a π ( a ∣ s ) = 1 \sum_a{\pi(a|s)=1} aπ(as)=1

状态转移与状态转移函数

状态转移(State Transition): 指当前状态 s s s 变成新状态 s ′ s' s

状态转移函数(State Transition Function): 用于生成新的状态 s ′ s' s 所用到的函数,随机状态转移函数记作 p ( s ′ ∣ s , a ) p(s'|s,a) p(ss,a),它也是一个条件概率密度函数:
p ( s ′ ∣ s , a ) = P ( S ′ = s ′ ∣ S = s , A = a ) p(s'|s,a)=P(S'=s'|S=s,A=a) p(ss,a)=P(S=sS=s,A=a)

显然有,
∑ s ′ p ( s ′ ∣ s , a ) = 1 \sum_{s'}{p(s'|s,a)=1} sp(ss,a)=1

奖励

奖励(Reward): 智能体从当前状态 s s s 执行一个动作 a a a 后进入一个新的状态 s ′ s' s,环境反馈给智能体的一个数值,也叫即时奖励,用小写字母 r r r 表示。

网格世界中,从进入普通区域(白色区域)得到奖励为 r c o m m o n = 0 r_{common}=0 rcommon=0,进入禁止区域(红色区域)奖励为 r f o r b i d = − 1 r_{forbid}=-1 rforbid=1,进入目标区域奖励为 r t a r g e t = 1 r_{target}=1 rtarget=1。例如,当前状态为 s 5 s_5 s5 的情况下,执行动作 a 2 a_2 a2(即向右移动),得到的奖励为 r r r = -1,数学上可表示为:
p ( r = − 1 ∣ s 5 , a 2 ) = 1 p(r=-1|s_5,a_2)=1 p(r=1∣s5,a2)=1

同理,状态 s 5 s_5 s5 还有如下情况:
p ( r = 0 ∣ s 5 , a 0 ) = p ( r = 0 ∣ s 5 , a 1 ) = p ( r = 0 ∣ s 5 , a 3 ) = p ( r = 0 ∣ s 5 , a 4 ) = 1 p(r=0|s_5,a_0)=p(r=0|s_5,a_1)=p(r=0|s_5,a_3)=p(r=0|s_5,a_4)=1 p(r=0∣s5,a0)=p(r=0∣s5,a1)=p(r=0∣s5,a3)=p(r=0∣s5,a4)=1

轨迹

轨迹(Trajectory): 指一个回合(Episode)游戏中,智能体观测到的所有状态、动作、奖励的序列,用 τ \tau τ 表示。具体来说,一个Trajectory可以被形式化表示为:
τ = { s 0 , a 0 , r 0 , s 1 , a 1 , r 1 , s 2 , . . . , s T − 1 , a T − 1 , r T − 1 , s T } \tau = \{s_0,a_0,r_0, s_1, a_1,r_1,s_2,...,s_{T-1}, a_{T-1},r_{T-1},s_{T}\} τ={s0,a0,r0,s1,a1,r1,s2,...,sT1,aT1,rT1,sT}

其中 s t s_t st 表示 t t t 时刻下智能体所处的状态, a t a_t at 表示 s t s_t st 状态下智能体所采取的动作, r t r_t rt 是在采取动作 a t a_t at 后,从环境得到的即时奖励, T T T 是整个轨迹的长度。

轨迹

对于上图所示的网格世界,
τ = { s 1 , a 2 , r = 0 , s 2 , a 3 , r = 0 , s 5 , a 3 , r = 0 , s 8 , a 2 , r = 1 , s 9 } \tau = \{s_1,a_2,r=0,s_2,a_3,r=0,s_5,a_3,r=0,s_8,a_2,r=1,s_9\} τ={s1,a2,r=0,s2,a3,r=0,s5,a3r=0,s8,a2,r=1,s9}

回报与折扣回报(重要)

回报: 从当前时刻开始到回合结束所有的奖励总和,也叫累计奖励, 用 R R R 表示。

折扣回报: 从当前时间步开始,未来所有时间步奖励的折扣和,用 G G G 表示。考虑以下轨迹:
S t . . A t . . > R t , S t + 1 . . A t + 1 . . > R t + 1 , S t + 2 . . A t + 2 . . > R t + 2 , S t + 3 , . . . S_t\frac{..A_t..}{}>R_{t},S_{t+1}\frac{..A_{t+1}..}{}>R_{t+1},S_{t+2}\frac{..A_{t+2}..}{}>R_{t+2},S_{t+3},... St..At..>Rt,St+1..At+1..>Rt+1,St+2..At+2..>Rt+2,St+3,...

折扣回报为:
G t = R t + γ R t + 1 + γ 2 R t + 2 + . . . G_t=R_{t}+\gamma R_{t+1}+\gamma^2R_{t+2}+... Gt=Rt+γRt+1+γ2Rt+2+...

显然,上式可以作如下变形:
G t = R t + γ R t + 1 + γ 2 R t + 2 + . . . = R t + γ ( R t + 1 + γ R t + 2 + . . . ) = R t + γ G t + 1 \begin{aligned} G_t &= R_{t}+\gamma R_{t+1}+\gamma^2R_{t+2}+...\\ &= R_{t}+\gamma (R_{t+1}+\gamma R_{t+2}+...) \\ &= R_{t}+\gamma G_{t+1} \end{aligned} Gt=Rt+γRt+1+γ2Rt+2+...=Rt+γ(Rt+1+γRt+2+...)=Rt+γGt+1

其中 γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ[0,1] 表示折扣率, R t R_{t} Rt称作即时奖励 G t + 1 G_{t+1} Gt+1 称作未来奖励。由于折扣率的存在,会对未来的回报进行折扣;由于折扣率的次数随着 t t t 不断增加,因此对越久远的未来给奖励打的折扣越大,体现出即时奖励相比于未来奖励的重要性

一个重要性质

无记忆性: 在一个马尔科夫过程中,系统的下一步行为仅与现在的位置(状态)有关,而与它是如何到达当前位置的所有过去信息无关。换句话说,给定当前状态,未来状态的概率分布仅依赖于当前状态,而不依赖于到达当前状态的任何历史状态。数学形式如下:
p ( s t + 1 ∣ a t , s t , . . . , a 0 , s 0 ) = p ( s t + 1 ∣ a t , s t ) p(s_{t+1}|a_t,s_t,...,a_0,s_0) = p(s_{t+1}|a_t, s_t) p(st+1at,st,...,a0,s0)=p(st+1at,st)
p ( r t + 1 ∣ a t , s t , . . . , a 0 , s 0 ) = p ( r t + 1 ∣ a t , s t ) p(r_{t+1}|a_t,s_t,...,a_0,s_0) = p(r_{t+1}|a_t, s_t) p(rt+1at,st,...,a0,s0)=p(rt+1at,st)


后续会更新相应实战代码

若有不足之处,欢迎批评指正!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

越菜越摆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值