强化学习中的马尔可夫决策过程

前言

我在学习Playing Atari with Deep Reinforcement Learning这篇论文时,文章中引用到了马尔可夫决策过程的相关概念,为此特意学习了马尔可夫决策过程的相关知识。


马尔可夫过程(MP)的基本概念

状态遵循马尔可夫是指

P[St+1|St]=P[St+1|St,,S1]

既未来与过去无关只与现在有关
S,P 是马尔可夫过程是指S为有限状态集合并且遵循马尔可夫,P是状态转移概率矩阵
Ps,s=P[St+1=s|St=s]


马尔可夫奖赏过程(MRP)的基本概念

S,P,R,γ 是马尔可夫奖赏过程是指S为有限状态集合,P为状态转移矩阵, RSR 为奖赏函数 Rs=E[Rt+1|St=s] γ 是折扣率

MRP的价值函数

Rt 定义为从状态 st1 到达状态 st 所得到的奖励,那么时刻0所能得到的回报可以写为

G0=R1+γR2+γ2R3+

t时刻在某一状态下的回报可以如下式子表示:
Gt=Rt+1+γRt+2+γ2Rt+3+

因为从某一状态到达另一个状态是根据一定的概率,所以真实的 Gt 的可能有很多种,所以定义在某一状态下的价值函数

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

其中 St 表示在t时刻的状态

Bellman方程

v(s)=E[Gt|St=s]=E[Rt+1+γRt+2+γ2Rt+3+|St=s]=E[Rt+1+γ(Rt+2+γRt+3+)|St=s]=E[Rt+1+γv(St+1)|St=s]=Rs+γsSPs,sv(s)

这个公式就是Bellman方程的基本形态,得到线性方程组
v=R+γPv

可以求得每个状态的价值。


马尔可夫决策过程(MDP)的基本概念

马尔可夫决策过程由五个关键元素 {S,A,P,R,γ} 组成

S 代表状态集合
A代表动作集合
P 是三维概率矩阵

Pas,s=P[St+1=s|At=a,St=s]

R 是回报函数,R:S×AR,有时 R A无关, R:SR

Ras=E[Rt+1|At=a,St=s]

γ 表示学习随着时间推移的折扣率

这里有确定的概率矩阵,所以也就给出了状态转移的模型,所以这里的MDP是基于模型的(Model-based),很多时候概率是不确定的,这就是不基于模型的(Model-free)

马尔可夫决策过程如下

s0a0s1a1s2a2

状态 s0 在动作 a0 作用下根据概率分布 Ps0a0 s1 ,然后执行动作 a1 ,得到的回报如下
R(s0,a0)+γR(s1,a1)+γ2R(s2,a2)+

为了方便解释,把 rt 定义为从状态 st1 执行行为 at1 根据一定概率到达状态 st 所得到的奖励

策略

π(a|s)=P[At=a|St=s]

策略是指在各个特定的状态下执行不同动作的概率分布
给定一个MDP M=S,A,P,R,γ 和一个策略 π ,那么 S,Pπ 是一个MP, S,Pπ,Rπ,γ 是一个MRP,其中
Pπs,s=aAπ(a|s)Pas,sRπs=aAπ(a|s)Ras

MDP的价值函数

给定一个MDP M=S,A,P,R,γ 和一个策略 π ,因为 S,Pπ,Rπ,γ 是一个MRP,所以可以求出这个MRP的价值函数

vπ(s)=Eπ[Gt|St=s]=Eπ[Rt+1+γvπ(St+1)|St=s]

动作价值函数

考虑某个状态下不同动作的价值

qπ(s,a)=Eπ[rt+1+γrt+2+γ2rt+3+|At=a,St=s]=Eπ[Gt|At=a,St=s]=Eπ[Rt+1+γqπ(St+1,At+1)|At=a,St=s]

价值函数和动作价值函数的关系

  vπ(s)=aAπ(a|s)qπ(s,a)qπ(s,a)=Ras+γsSPas,svπ(s)vπ(s)=aAπ(a|s)(Ras+γsSPas,svπ(s))vπ=Rπ+γPπvπvπ=(1γPπ)Rπ

所以在给定的策略下可以求出价值函数和动作价值函数

最优价值函数和最优动作价值函数

定义最优价值函数 v:SR

v(s)=maxπvπ(s)

定义最优动作价值函数 q:SR

q(s,a)=maxπqπ(s,a)

策略的偏序关系

ππvπ(s)vπ(s),sS

定理

对于任意一个MDP

  • 存在一个最优策略 π使πππ
  • 所有的最优策略对应的价值函数就是最优价值函数
    vπ(s)=v(s)
  • 所有的最优策略对应的动作价值函数就是最优动作价值函数
    qπ(s,a)=q(s,a)

根据这个定理,可以得到Bellman最优方程

v(s)=maxaq(s,a)q(s,a)=Ras+γsSPas,sv(s)


策略迭代(Policy Iteration)

Policy Iteration的目的是通过迭代计算value function 价值函数的方式来使policy收敛到最优。
Policy Iteration本质上就是直接使用Bellman方程而得到的:

vk+1(s)=Eπ[Rt+1+γvk(St+1)|St=s]=aAπ(a|s)(Ras+γsSPas,svk(s))

Policy Iteration一般分为两步:
1. 策略评估 Policy Evaluation: 更新 vπ
2. 策略改进 Policy Improvement: π=greedy(vπ)
直至收敛到 π

考虑一个决定性的策略, a=π(s)π(a|s)=1 可以通过贪婪的方法改进策略

π(s)=qπ(s,π(s))=vπ(s)qπ(s,π(s))==argmaxaAqπ(s,a)maxaAqπ(s,a)qπ(s,π(s))=vπ(s)Eπ[Rt+1+γvπ(St+1)|St=s]Eπ[Rt+1+γqπ(St+1,π(St+1))|St=s]Eπ[Rt+1+γRt+2+γ2qπ(St+2,π(St+2))|St=s]Eπ[Rt+1+γRt+2+γ2Rt+3+|St=s]vπ(s)

如果改进结束,那么
vπ(s)=qπ(s,π(s))=maxaAqπ(s,a)

满足Bellman最优方程,因此
vπ(s)=v(s) sS

得多了最优策略 π


值迭代(Value Iteration)

根据Bellman最优方程,得到

v(s)=maxaA(Ras+γsSPas,sv(s))

有以下迭代公式
vk+1(s)=maxaA(Ras+γsSPas,svk(s))vk+1=maxaA(Ra+γPavk)v1v2v3vπ(s)=argmaxaA(Ras+γsSPas,sv(s))

  • 5
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值