前言

本文重点介绍MDP,因为MDP是目前最适合表征强化学习问题的模型。

一个具体的赌徒例子,来说明强化学习的算法如何与MDP构建联系,并且求解出最优策略。链接如下:link

一、马尔可夫性

其假设未来的状态仅取决与当前的状态。过去与未来无关。
P[St+1∣St]=P[St+1∣S1,...,St]P[S_{t+1}|S_t]=P[S_{t+1}|S_1,...,S_t]P[St+1​∣St​]=P[St+1​∣S1​,...,St​]

二、马尔可夫过程

马尔可夫过程是满足马尔可夫性的随机过程,由二元组M=(S,P)M=(S,P)M=(S,P)组成。

  1. SSS表示有限状态集合;
  2. PPP表示状态转移概率矩阵。

如下图所示的一个马尔可夫过程:

对应的状态转移矩阵为:

根据是否考虑动作与状态是否完全可观,我们可以将马尔可夫过程做如下分类:

状态可观 状态不完全可观
不考虑动作 马尔科夫链(MC) 隐马尔可夫模型(HMM)
考虑动作 马尔可夫决策过程(MDP) 部分可观马尔科夫决策过程(POMDP)

1. 马尔可夫奖励过程MRP

MRP由四元组组成:
M=(S,P,R,γ)M=(S,P,R,\gamma)M=(S,P,R,γ)

  1. SSS代表所有状态集合
  2. PPP描述状态转移矩阵
  3. RRR表示奖励函数
  4. γ\gammaγ表示衰减因子discounted factor, γ∈[0,1]\gamma\in[0, 1]γ∈[0,1]。γ\gammaγ越接近1,智能体越侧重考虑长远收益。

同样的用状态转移图做表示:

价值函数

价值函数给出了某一状态或某一行为的长期价值。

定义:一个马尔科夫奖励过程中某一状态的价值函数为从该状态开始的马尔可夫链收获的期望

v(s)=E(Gt∣St=s)v(s)=E(G_t|S_t = s)v(s)=E(Gt​∣St​=s)

收获 GtG_tGt​为在一个马尔科夫奖励链上从t时刻开始往后所有的奖励的有衰减的总和.
Gt=Rt+1+γRt+2+γ2Rt+3+...=∑k=0∞γkRt+k+1G_t=R_{t+1}+\gamma R_{t+2}+\gamma ^2R_{t+3}+...=\sum^{\infty}_{k=0}\gamma^kR_{t+k+1} Gt​=Rt+1​+γRt+2​+γ2Rt+3​+...=k=0∑∞​γkRt+k+1​

价值可以仅描述状态,也可以描述某一状态下的某个行为,在一些特殊情况下还可以仅描述某个行为。通常用状态价值函数或价值函数来描述针对状态的价值;用行为价值函数来描述某一状态下执行某一行为的价值,严格意义上说行为价值函数是“状态行为对”价值函数的简写。

如何合理求解各状态的价值,也就是寻找一个价值函数(从状态到价值的映射)很重要,强化学习中很多问题可以归结为求价值函数问题。

面向MRP的贝尔曼方程


上述推导中,关键的是最后一步,Gt+1=v(St+1)G_{t+1} = v(S_{t+1})Gt+1​=v(St+1​),收货的期望的期望 = 收货的期望。

继续做如下推导:

其中s′s's′为s的下一个任意可能的状态.

矩阵形式的表述:

贝尔曼方程的求解

对于小规模state的贝尔曼方程,我们可以直接做如下求解:


可以看到,在求解v的时候,如果知道γ、P、R\gamma 、P、Rγ、P、R就能求得。
对于大规模MRP问题,可以用迭代方法求解,比如:

  • 动态规划
  • 蒙特卡洛估计
  • 时序差分法

2. 马尔可夫决策过程MDP

相比MRP,MDP多了一个动作A,用五元组表示:
M=(S,A,P,R,γ)M=(S,A,P,R,\gamma)M=(S,A,P,R,γ)

  1. SSS代表所有状态集合
  2. AAA表示决策过程中的动作集合
  3. PPP描述状态转移矩阵
  4. RRR表示奖励函数
  5. γ\gammaγ表示衰减因子discounted factor, γ∈[0,1]\gamma\in[0, 1]γ∈[0,1]

MDP与MC以及MRP的关系:

对于MDP,任意一条状态转移链:S1,S2,S3,...S_1, S_2, S_3,...S1​,S2​,S3​,...就是一个马尔科夫链;

对于给定的MDP以及确定的policy π\piπ,MDP就是MRP

MDP描述智能体与环境交互的过程。整个过程是在不断寻找reward最大化的过程。下图中,s表示状态,a表示动作,r表示奖励。

MDP的价值函数推导

状态价值函数

MDP下的基于策略π\piπ的状态价值函数,表示从状态s开始,遵循当前策略时所获得的收获的期望。

vπ(s)=Eπ[Gt∣St=s]v_{\pi}(s)=E_{\pi}[G_t|S_t=s]vπ​(s)=Eπ​[Gt​∣St​=s]

上述中的π\piπ是固定的。变化的是在当前state,依据policy产生的action。

行为价值函数

行为价值函数,表示在执行策略π\piπ时,对当前状态s执行某一具体行为a所能得到的收获的期望。行为价值函数一般都是与某一特定的状态相对应的,更精细的描述是状态行为对价值函数。

qπ(s,a)=Eπ[Gt∣St=s,At=a]q_{\pi}(s,a)=E_{\pi}[G_t|S_t=s,A_t=a]qπ​(s,a)=Eπ​[Gt​∣St​=s,At​=a]

状态价值函数对应的贝尔曼方程

vπ(s)=Eπ[Rt+1+γvπ(St+1)∣St=s]v_{\pi}(s)=E_{\pi}[R_{t+1}+\gamma v_{\pi}(S_{t+1})|S_t=s]vπ​(s)=Eπ​[Rt+1​+γvπ​(St+1​)∣St​=s]

行为价值函数对应的贝尔曼方程

qπ(s,a)=Eπ[Rt+1+γqπ(St+1,At+1)∣St=s,At=a]q_{\pi}(s,a)=E_{\pi}[R_{t+1}+\gamma q_{\pi}(S_{t+1}, A_{t+1})|S_t=s, A_t=a]qπ​(s,a)=Eπ​[Rt+1​+γqπ​(St+1​,At+1​)∣St​=s,At​=a]

状态价值函数与行为价值函数之间的关系

  1. 从状态价值角度来理解:

    如上图所示,空圈表示状态,黑圈表示action。当我们要求在某种策略π\piπ下当前state对应的value,相当于,当前状态依据策略π\piπ所有可能采取的动作的概率π(a∣s)\pi(a|s)π(a∣s)乘以该动作对应的行为价值qπ(s,a)q_{\pi}(s,a)qπ​(s,a)之和。

  2. 从行为价值的角度来理解:

    某个行为action对应的value,其实是当前状态的reward + 执行该action所有可能抵达的状态价值之和。

  3. 将状态与行为价值合并:

    当然,我们也可以用另外一种推导办法,将action作为tree的root:

求解MDP:价值函数的最优化

最优状态价值函数

v∗(s)=max(vπ(s))v_*(s)=max(v_{\pi}(s))v∗​(s)=max(vπ​(s))

所有可能的策略中,使得当前state对应的value最大的π\piπ

最优行为价值函数

q∗(s,a)=max(qπ(s,a))q_*(s,a)=max(q_{\pi}(s,a))q∗​(s,a)=max(qπ​(s,a))

所有可能的策略中,使得当前**状态行为对<s,a>**对应value最大的π\piπ

求解MDP问题,就是在寻找q*.

最优策略

在MDP中,总是至少有一个最优policy


如果我们每次选取使得q∗q_*q∗​最大的action,这就是一种最优策略。

所以,如果我们知道最优行为价值函数,则表明我们找到了最优策略。

整个求解过程就可以表述为寻找最大回报V∗(s)V^*(s)V∗(s)以及对应最优策略的π∗(s)\pi^*(s)π∗(s)

贝尔曼最优方程

同样的,有两种途径给出公式求解,分别是通过状态价值函数最优和行为价值最优。

  1. 状态价值最优:

    其中maxaRsa\mathop{max}\limits_{a}R^a_samax​Rsa​是从state到最优action得到的reward;

    γ∑s′∈SPss′av∗(s′)\gamma \sum\limits_{s'\in S}P^a_{ss'}v_*(s')γs′∈S∑​Pss′a​v∗​(s′)是最优action到所有可能state的概率value之和

  2. 行为价值最优:

    同样的行为价值也可以推导出来。这里不再详细说明。

求解贝尔曼最优方程的方法

3. MDP的变种

除了如下列出来的两种外,还有平均奖励MDP、Ergodic MDP等等。

a. 无限状态或连续空间下的MDP

b. POMDP

参考文献

[1] https://leovan.me/cn/2020/05/markov-decision-process/#fn:sutton2018reinforcement
[2] http://lanbing510.info/2015/11/17/Master-Reinforcement-Learning-MDP.html
[3] https://tianshou.readthedocs.io/zh/latest/_static/thesis.pdf
[4] https://www.davidsilver.uk/wp-content/uploads/2020/03/MDP.pdf

强化学习(2): 马尔可夫过程相关推荐

  1. 强化学习在携程酒店推荐排序中的应用探索

    https://www.toutiao.com/a6708585355555111431/ 目前携程酒店绝大部分排序业务中所涉及的问题,基本可以通过应用排序学习完成.而其中模型训练步骤中所需的训练数据 ...

  2. 干货 | 强化学习在携程酒店推荐排序中的应用探索

    宣云儿,携程酒店排序算法工程师,主要负责酒店排序相关的算法逻辑方案设计实施.目前主要的兴趣在于排序学习.强化学习等领域的理论与应用. 前言 目前携程酒店绝大部分排序业务中所涉及的问题,基本可以通过应用 ...

  3. 【算法学习】马尔可夫过程及经典例题讲解(含代码实现)

    公众号关注 52DATA ,获得更多数据分析知识,感谢支持-> 文章目录 马尔可夫过程 1. 马尔可夫性 2. 马尔可夫链 2.1 转移概率矩阵(随机矩阵) 2.2 状态概率 2.3 平稳分布 ...

  4. 【强化学习入门】三.马尔可夫家族中的MP、MRP、MDP分别是什么?

    文章目录 1.基础知识 1.1.随机过程 1.2.马尔可夫性质 2.马尔可夫过程(MP) 3.马尔可夫奖励过程(MRP) 3.1.回报 3.2.价值函数与贝尔曼方程 4.马尔可夫决策过程(MDP) 4 ...

  5. 那些年玩过的超级玛丽,竟然还隐藏了强化学习的这些原理

    深度强化学习是一个很有意思,值得持续研究的方向.现在深度学习大热,一点也不输给现在的室外气温,但大热背后也有隐忧,也就是深度学习虽然表面光鲜,但细看就会发现:仍然充满了槽点.这里说两个"费& ...

  6. 强化学习笔记:马尔可夫过程 马尔可夫奖励过程

    1 马尔可夫性质 (Markov Property) 我们设状态的历史为(包含了之前的所有状态) 如果一个状态转移是符合马尔可夫性质的,也就是满足如下条件: 也就是说,从当前状态转移到状态的概率,就直 ...

  7. 强化学习案例_强化学习实践案例!携程如何利用强化学习提高酒店推荐排序质量...

    作者简介: 宣云儿,携程酒店排序算法工程师,主要负责酒店排序相关的算法逻辑方案设计实施.目前主要的兴趣在于排序学习.强化学习等领域的理论与应用. 前言 目前携程酒店绝大部分排序业务中所涉及的问题,基本 ...

  8. 关于马尔可夫过程的一些学习笔记

    ①马尔可夫性质:已知"现在"的情况下,"未来"与"过去"彼此独立(N+1仅与N有关,与N以前的所有都无关) ②马尔可夫过程:具有马尔可夫性质 ...

  9. 安装gym库_强化学习Gym库学习实践(一)

    最近看了一篇研究方向相关的文章,介绍了一种DQN的应用,感觉还挺新鲜的.想着把这篇文章复现出来,就开始学习强化学习的相关知识,作为一名小白,这一路走的可是真的十分艰难(我太菜了啊!) 看了莫烦Pyth ...

最新文章

  1. Microbiome:在人工肠道中建立动态线性模型指导设计和分析微生物组研究
  2. IO流基础,创建File对象与方法是用
  3. Spring Cloud-Honghu Cloud分布式微服务云系统(一)
  4. 程序员最后可能的出路
  5. shader 4 杂 一些和函数名词、数据结构
  6. [CF487E]Tourists
  7. Spring框架中有哪些不同类型的事件
  8. 小cookie,大智慧
  9. debian uefi legacy 区别_电脑硬盘格式有Legacy与UEFI,选择哪一个好?千万别选错了!...
  10. linux下ip协议(V4)的实现(二)
  11. zabbix 时间错误_监控的朋友看过来,官方社区专家开源的Zabbix报表系统
  12. 从程序员到CTO的Java技术路线图 JAVA职业规划 JAVA职业发展路线图 系统后台框架图、前端工程师技能图 B2C电子商务基础系统架构解析...
  13. php高级编程 薛忠胜_2019年,最值得学习的编程语言是?
  14. 用R进行meta分析(metafor包)
  15. 分兵策略应对高速发展
  16. 践行快乐音乐教育 郎朗The ONE全球公益钢琴盛典传递音乐力量!
  17. 黑客穷追不舍攻击“谷姐” [转]
  18. Maya粒子消散特效制作(一)
  19. JPA @Query动态添加参数查询(超级详细,附代码)
  20. 给图片加ALT属性是个什么意思?有什么优点呢

热门文章

  1. 兔子生育问题·斐波那契数列·python
  2. C语言实验:等额本金还款法的计算
  3. 【操作系统】4、设备管理
  4. 从防窃听到双系统隔离 手机安全是怎样一步步发展的?
  5. 《试用》--项目总结
  6. flutter友盟分享_Flutter 集成友盟 深坑
  7. 让vmware世界纤毫毕现——vROPs初体验
  8. WSL1 和 WSL2 的优缺点
  9. IT30:30岁的IT男之选择与努力!
  10. 基于Django手机销售网站