关闭

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

标签: 数学
1176人阅读 评论(0) 收藏 举报
分类:

前言

我在学习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,有时RA无关,R:SR
Ras=E[Rt+1|At=a,St=s]

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

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

马尔可夫决策过程如下

s0a0s1a1s2a2

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

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

策略

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

策略是指在各个特定的状态下执行不同动作的概率分布
给定一个MDPM=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的价值函数

给定一个MDPM=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))

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2456次
    • 积分:62
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档