参考书籍:
Reinforcement Learning An introduction 第二版
作者:Richard S. Sutton and Andrew G. Barto
以及此书的中文版《强化学习》

第3章:有限马尔可夫决策过程

上一章:第2章:多臂赌博机
下一章:第4章:动态规划

1.代理-环境接口

马尔可夫决策过程(MDP)是代理对环境执行动作,环境受到动作影响后,做出反馈并将新的环境反馈给代理,然后代理又采取动作…这样一个“决策过程”。马尔可夫决策过程中的“决策”体现在代理需要确定采用哪一个动作。“过程”体现在不断的进行交互。

如上图所示,环境与代理得交互过程中,环境会给代理提供状态S和奖励R,代理对环境执行动作。
因此,在环境与代理得交互过程中,我们可以记录下这些状态、动作和奖励,如下:
S0, A0, R1, S1, A1, R2, S2, A2, R3, . . .

2.状态转移概率及奖励的表示方法

论文中经常以各种表示法出现,因此,如果是需要读论文的话,最好知道这些表示方法。
1.含四个参数的状态转移概率函数
表示为:

2.:含三个参数的状态转移概率函数:

表示为:

3.含三个参数的奖励函数:

表示为:

4.含两个参数的奖励函数:

表示为:

3.目标、奖赏、累积奖赏与episode

在强行学习中, 代理的目的或目标是使用一个特殊的被称为奖赏 (reward )的信号来形式化的, 且该信号由环境传给代理. 在每一时步, 奖赏就是简单的一个数值, Rt ∈ R. 不那么正式地说, 代理的目标就是最大化接受到的奖赏总量. 这意味着不是最大化立即奖赏, 而是最大化长期的累积奖赏.
我们所说的目标或目的可以完全被理解为: 最大化收到的标量信号 (称为奖赏)的累积量的期望值.
假设从t时刻开始,我们希望最大化t时刻开始的期望回报, 其中回报记为 Gt, 被定义为奖赏序列的某一具体函数. 在最简单的情况下回报就是奖赏的和:

其中 T 为最后一个时步. 这种方式对 “能自然地定义最终时步” 这样的应用而言才有意义,也就是说, 当代理与环境的交互可以自然地划分为不同的子序列时才有意义, 我们将这样的子序列称为 episode。我个人喜欢把episode翻译成“回合”的意思,但是这个词翻译太多了,我就不想翻译了,直接写英文好了。例如赢得比赛或失去比赛, 但无论上一分节是如何结束的, 紧接着的分节如何起始与此毫无关系.因此所有的分节可以认为是在相同的末状态结束的, 只是对不同的结果而言有不同的奖赏.具有不同分节的任务被称为“episodic task”. 在分节式任务中, 我们有时需要将记为 S 的非末状态的集合, 与记为 S+ 的包括末状态的所有状态的集合区分开来. 终止的时间 T, 通常是随episode不同而不同的随机变量
然而,有的任务是无终止的,可以无限运行下去。例如, 可以很自然地以此种方式形式化一个持续进行的过程控制任务,或一个长生命周期的机器人应用. 我们将这样的任务称为持续式任务(continuing task)。 对持续式任务来说, 上面Gt回报公式是有问题的, 因为最终时步 T = ∞, 且我们希望最大化的回报可以很轻易地为无穷大. (例如, 假设代理在每一时步都接收到 +1 的奖赏.) 因此,引入折扣因子γ。其中,0 ≤ γ ≤ 1。

.如果 γ = 0, 那么代理因仅关心于最大化立即奖赏而变得 “短视”: 在这种情况下, 代理的目标即为选择 At 以仅仅最大化 Rt+1. 如果代理的每一个动作恰巧仅影响立即奖赏而不会影响未来奖赏, 那么一个短视的代理可以通过分别最大化每一个立即奖赏来最大化上式。但是一般来说, 为了最大化立即奖赏而选择动作, 会减少将来的奖赏, 因而减少回报. 当 γ 趋近于 1 时, 回报的目标更多地将未来的奖赏考虑在内, 即代理的目光变得更为长远。
注意,Gt存在以下这种迭代的形式:

4.episode式与持续式任务的统一标记方式

我们需要一些额外的标记来更清楚地表示episode式任务. 对于episode式任务, 我们不能将其考虑为由时步组成的单个长序列, 而是考虑为一系列的episode, 其中每一个episode都由有限的时步序列组成. 在每一个episode开始时, 我们重新从 0 开始对时步进行计数. 因此, 仅使用 St, 即时步 t 处的状态, 来进行指代是不够的, 我们需要使用 St,i, 即episode i 中的时步 t 处的状态, 来进行指代 (类似地, 有 At,i, Rt,i, πt,i, 以及 Ti 等等). 然而, 事实上当我们讨论episode任务时我们几乎不用对各个episode节进行区分. 我们几乎总是仅考虑单个特定episode, 或者我们所论述的对所有的分节都成立.因此, 实践中我们总是轻微地滥用标记: 省去了episode的具体索引. 也就是说, 我们使用 St 时, 我们指的是 St,i, 其余的也类似.
为了得到分节式与持续式任务的统一标记方式, 我们还需要另一个规约. 在情形(3.7)下,我们将回报定义为有限个项的和; 而在情形(3.8)下, 我们将其定义为无限个项的和. 如果我们将分节的终结视为进入了一个特殊的吞没状态 , 即仅转移到自身且获得的所有奖赏均为 0 的状态, 那么我们可以将两种任务统一起来. 例如, 考虑如下的转移图:

其中实心的方框表示对应于episode的终止的、特别的吞没状态. 从 S0 开始, 我们获得了奖赏序列 +1, +1, +1, 0, 0, 0, . . . . 那么仅对前 T 个奖赏求和的值 (此处 T = 3), 同对整个无穷项的序列求和的值是一样的. 即使我们引入折扣, 这同样成立. 因此, 我们可以以如下方式定义一般性的回报:并且依照 “当不需要episode的编号时将其省略” 这一惯例;同时如果和有定义, 那么保留 γ = 1 的可能 (例如, 如果所有的episode都会终止, 那么可以这么做). 作为代替, 我们可以获得

其中 T = ∞ 或 γ = 1 都是被允许的 (但不能两者同时). 我们在余下内容中使用这一惯例, 以简化标记并展示分episode任务与持续式任务的高度并行性.

5. 策略与值函数

策略 (policy) 是从状态到选择各个可能动作的概率的映射.如果代理在时步 t 使用策略 π, 那么 π(a | s) 即为当 St = s 时 At = a 的概率. 就像 p 一样, π 也是一个普通的函数;
π(a | s) 中的 “|” 仅用于提醒我们: 该函数为每一个 s ∈ S 定义了 a ∈ A(s) 上的概率分布. 由强化学习方法指定代理的策略如何根据经历来调整.
值函数估计对代理而言给定状态的好坏程度的, 以状态为参数的函数记为V(s).(或估计在给定状态执行给定动作的好坏程度的, 以状态-动作对为参数的函数记为q(s,a)).这里 “好坏程度” 的概念是就可以期待的未来奖赏定义的, 或更准确地说, 就期望回报定义的. 当然, 代理所期望的能在未来接收到的奖赏, 依赖于其所采取的动作(策略). 因此, 值函数是关于某一个具体策略π的值函数
在策略 π 下状态 s 的值函数, 记为 Vπ(s), 为从状态 s 开始, 并在之后遵循策略 π, 而获得的期望回报. 对于 MDP, 我们可以用下式正式定义 Vπ:

其中 Eπ[·] 表示当代理使用策略 π 时随机变量的期望值, 而 t 为任一时步. 如果有吞没状态
的话, 那么该状态的值一定为 0. 我们将函数Vπ 称为针对策略 π 的状态值函数.
类似的, 我们将策略 π 下在状态 s 中采取动作 a 的值, 定义为从状态 s 开始, 采取动作
a, 并在之后遵循策略 π, 而可以获得的期望回报, 并将其记为qπ(s, a):

我们将 函数qπ 称为针对策略 π 的动作值函数 (action-value function).

值函数 vπ 与 qπ 可以利用经历来进行估计. 例如, 如果对遇到的每一个状态, 记录该状态随后的实际回报, 然后计算均值, 那么当遇到该状态的次数趋于无穷大时, 均值也会收敛到该状态的值 vπ(s). 如果对每一个状态中的各个动作分别计算均值, 那么这些均值也会类似地收敛到 qπ(s, a). 我们将此类估计方式称为蒙特卡洛方法 (Monte Carlo method)。此类方法将会在第 5 章中进行介绍.当然, 如果有许多状态的话, 那么为每个状态各自维持一个均值是不切实际的. 作为代替, 代理将以参数化函数的形式 (参数个数必须少于状态个数) 来维持 vπ 与 qπ, 并调整参数来更好地与观测到的回报匹配。使用参数化函数的目的就是解决状态数过多的问题,如果参数个数要是大于状态数,那使用参数化函数来表示就没有意义了。

一条贯穿于强化学习与动态规划始终的, 关于值函数的基本性质为: 对任意策略 π 和任意状态 s 来说, 下述的一致性条件在 s 的值与其可能的后一状态的值间成立:

请注意对最后那个表达式, 我们可以轻易地将其作为期望值来理解. 实际上其为在三个变量 a, s′ 与 r 的所有值上的和式.对每一个三元组, 我们计算其概率 π(a | s)p(s′, r | s, a), 并将该概率作为方括号内值的权重,然后在所有的概率上求和来得到期望值.
上式为针对 vπ 的贝尔曼方程 .其阐述了某一状态的值与其各个后一状态的值间的关系. 试想下从某一个状态向前看, 看到了所有可能的后一状态的情形,如右图所示. 每一个空心圆代表了一个状态, 而每一个实心圆代表了一个动作-状态对 . 从最上方的作为根结点的状态 s 出发, 代理可以基于其策略 π 选择某一动作集中的任何一个动作——图中展示了 3 个这样的动作. 从任一动作出发, 环境会反馈以数个下一状态 (在图中展示了两个) 中的选择, 即 s′, 以及依据由函数 p 给出的动态得到的奖赏 r. 贝尔曼方程(3.14)以概率为权重, 在所有可能性上求和. 其显示出: 一状态的值一定等于其下一状态的 (折扣的) 值与随同的奖赏这两者之和的期望值。

6.最优策略与最优值函数

粗略地说, 解决强化学习问题即意味着发现能在长期中接高额奖赏的策略. 对于有限MDP 来说, 我们可以使用下述的方式精确地定义最优策略. 通过值函数, 我们可以在策略上定义一个偏序关系. 如果在所有的状态上, 使用策略 π 获得的期望回报都高于或等于策略 π′, 则策略 π 被定义为优于策略 π′. 换句话说, π ≥ π′ 当且仅当 vπ(s) ≥ vπ′(s) 对所有的s ∈ S 成立. 总有一个策略优于或其他的所有策略或和其他的所有策略一样好. 这就是最优策略 (optimal policy). 虽然可能有不止一个的最优策略, 但我们将所有的最优策略都记为π∗. 这些最优策略都有着相同的状态值函数, 该状态值函数称为最优状态值函数 (optimalstate-value function), 记为 v∗, 定义如下:

上式对所有的 s ∈ S 成立.
最优策略也共享着相同的最优动作值函数 (optimal action-value function), 其记为 q∗,且定义如下:

对所有的 s ∈ S 与 a ∈ A(s) 成立. 对状态-动作对 (s, a) 来说, 这一函数定义了在状态 s 下采取动作 a, 并在之后遵循最优策略而可以获得的期望回报. 因此, 我们可以如下用 v∗ 定义q∗:

因为 v∗ 为某一策略下的值函数, 其必须满足针对状态值的贝尔曼方程所给出的自我一致性条件. 但因为最优值函数的缘故, v∗ 的一致性条件可以以不参照任何特定策略的特殊形式写出. 这即为针对 v∗ 的贝尔曼方程, 或者可以称之为贝尔曼最优性方程 . 直观地看, 贝尔曼最优性方程所表述的事实为: 在最优策略下, 一个状态的值一定等于在该状态下采取最优动作所获得的期望回报:

最后两个等式是针对 v∗ 的贝尔曼最优性方程的两种形式. 针对 q∗ 的贝尔曼最优性方程为

下图 中的逆流图从图形上展示了针对 v∗ 与 q∗ 的贝尔曼最优性方程中所考虑的未来状态与动作的范围. 这些逆流图和之前呈现的针对 vπ 与 qπ 的逆流图类似, 只是在选择点处添加了添加了弧线来表明进行了最优选择, 而不是计算给定策略下的期望值. 图中左侧的逆流图从图形上表示贝尔曼最优性方程v∗, 而右侧的从图形上表示q∗ 。

上一章:第2章:多臂赌博机
下一章:第4章:动态规划

第3章:有限马尔可夫决策过程相关推荐

  1. 强化学习丨有限马尔可夫决策过程学习总结

    目录 一.前言 二.有限MDP问题简介 三.相关概念定义 3.1 动态函数 3.2 收益与回报 3.3 策略和价值函数 3.4 贝尔曼方程 3.5 最优策略和最优价值函数 一.前言 有限马尔可夫决策过 ...

  2. 动手学强化学习第三章(马尔可夫决策过程)

    文章目录 马尔可夫决策过程 1.公式总结 2.代码实践 2.1 计算序列的回报 2.2 利用贝尔曼方程的矩阵形式计算解析解 2.3 解析法计算MDP中每个状态价值 2.4 使用蒙特卡洛方法计算MDP的 ...

  3. 3 有限马尔可夫决策过程(Finite Markov Decision Processes)

    [上一篇 2 从Multi-arm Bandits问题分析 - RL进阶] [下一篇 4 动态编程(Dynamic Programming, DP)] 本次总结中的 1-4 小节主要介绍了增强学习中的 ...

  4. RL(Chapter 3): Finite Markov Decision Processes (有限马尔可夫决策过程)

    本文为强化学习笔记,主要参考以下内容: Reinforcement Learning: An Introduction 代码全部来自 GitHub 习题答案参考 Github 目录 The Agent ...

  5. 【Pytorch】第 2 章 :马尔可夫决策过程和动态规划

  6. 决策过程并举例_David Silver 增强学习——Lecture 2 马尔可夫决策过程(一)

    其他lecture [1]搬砖的旺财:David Silver 增强学习--笔记合集(持续更新) 目录 **David Silver 增强学习--Lecture 2 马尔可夫决策过程(一)**1. 前 ...

  7. [强化学习-3] Devil 课程第二章解析+ 学生马尔可夫决策过程代码

    马尔可夫决策过程(MDP) 一:介绍 马尔可夫决策过程是用来形式化地描述强化学习中的环境 其中环境是完全可以观测的 值得注意的是,大部分强化学习问题都可以看作 MDP 问题. 简单地理解,MDP是用来 ...

  8. 【EasyRL学习笔记】第二章 Markov Decision Process 马尔可夫决策过程

    文章目录 一.马尔可夫过程 1.1 马尔可夫性质 1.2 马尔可夫链 1.3 马尔可夫过程的例子 二.马尔可夫奖励过程 2.1 回报与价值函数 2.2 贝尔曼方程 2.3 计算马尔可夫奖励过程价值的迭 ...

  9. 第二章 马尔可夫决策过程及表格型方法

    马尔可夫决策过程. 在介绍马尔可夫决策过程之前,先介绍它的简化版本:马尔可夫链以及马尔可夫奖励过程,通过跟这两种过程的比较,我们可以更生动地理解马尔可夫决策过程. 第二部分会介绍马尔可夫决策过程中的 ...

最新文章

  1. DirectInput:poll轮询理解
  2. java:1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
  3. HDU - 5876 Sparse Graph(bfs+set)
  4. 合流超几何函数_【初中数学大招流】从平面几何到解析几何
  5. 从M2M迁移到IIoT工业物联网
  6. linux oracle dblink,Oracle 创建 DBLink 的方法
  7. TeamWork#3,Week5,Bing Input Method vs Sogou Input Method
  8. Windows10应用Docker部署DoNet Core
  9. IE火狐的代理服务器的设置
  10. 有关XLS文件的读取
  11. elasticsearch 聚合搜索
  12. 计算机毕业设计JAVA企业售后服务管理系统mybatis+源码+调试部署+系统+数据库+lw
  13. Qt 实现Unicode字符表情包显示到界面 Emoji
  14. 电脑端扫描二维码(java)
  15. 有关虚拟专用局域网业务VPLS的总结
  16. 【软件入门】Keil:从AC5到AC6
  17. 2018年6月8日 星期五 天气晴
  18. Oracle 正则表达式详解(regexp_substr、regexp_instr、regexp_replace、regexp_like)
  19. 克劳士比:有用的和可信赖的组织的核心是什么?
  20. 第一篇【Python】基础-关东升-专题视频课程

热门文章

  1. docker: Error response from daemon: Conflict. The container name xxx is already in use by container
  2. Python绘制条形图
  3. UI设计如何做好排版?你可以学习一下格式塔原理
  4. 信息与通信基础第3次小班讨论课
  5. Cisco搭建邮件服务器实现邮件收发
  6. redis数据库--学习笔记
  7. Postman 是个好用的工具,不试一下?
  8. 计算机专业函授好学吗,千万别去函授这几个专业 什么专业好
  9. 微信怎样进入微交易?微信好友都在用
  10. 在Ubuntu20.04使用微信和企业微信