马尔科夫决策过程

  • 简介
  • 马尔可夫过程
    • 随机过程
    • 马尔可夫性质
    • 马尔可夫过程
  • 马尔可夫奖励过程
    • 回报
    • 价值函数
  • 马尔可夫决策过程
    • 策略
    • 状态价值函数
    • 动作价值函数
    • 贝尔曼期望方程
  • 蒙特卡洛方法
  • 占用度量
  • 最优策略
    • 贝尔曼最优方程
  • 总结
  • 参考文献

简介

马尔可夫决策过程(Markov decision process,MDP)是强化学习的重要概念。要学好强化学习,我们首先要掌握马尔可夫决策过程的基础知识。前两章所说的强化学习中的环境一般就是一个马尔可夫决策过程。与多臂老虎机问题不同,马尔可夫决策过程包含状态信息以及状态之间的转移机制。如果要用强化学习去解决一个实际问题,第一步要做的事情就是把这个实际问题抽象为一个马尔可夫决策过程,也就是明确马尔可夫决策过程的各个组成要素。本章将从马尔可夫过程出发,一步一步地进行介绍,最后引出马尔可夫决策过程。

马尔可夫过程

随机过程

随机过程(stochastic process)是概率论的“动力学”部分。概率论的研究对象是静态的随机现象,而随机过程的研究对象是随时间演变的随机现象(例如天气随时间的变化、城市交通随时间的变化)。在随机过程中,随机现象在某时刻的取值是一个向量随机变量,用表示,所有可能的状态组成状态集合。随机现象便是状态的变化过程。在某时刻的状态通常取决于时刻之前的状态。我们将已知历史信息时下一个时刻状态为的概率表示成。

马尔可夫性质

当且仅当某时刻的状态只取决于上一时刻的状态时,一个随机过程被称为具有马尔可夫性质(Markov property),用公式表示为。也就是说,当前状态是未来的充分统计量,即下一个状态只取决于当前状态,而不会受到过去状态的影响。需要明确的是,具有马尔可夫性并不代表这个随机过程就和历史完全没有关系。因为虽然时刻的状态只与时刻的状态有关,但是时刻的状态其实包含了时刻的状态的信息,通过这种链式的关系,历史的信息被传递到了现在。马尔可夫性可以大大简化运算,因为只要当前状态可知,所有的历史信息都不再需要了,利用当前状态信息就可以决定未来。

马尔可夫过程

马尔可夫过程(Markov process)指具有马尔可夫性质的随机过程,也被称为马尔可夫链(Markov chain)。我们通常用元组描述一个马尔可夫过程,其中是有限数量的状态集合,是状态转移矩阵(state transition matrix)。假设一共有个状态,此时。状态转移矩阵定义了所有状态对之间的转移概率,即矩阵中第行第列元素表示从状态转移到状态的概率,我们称为状态转移函数。从某个状态出发,到达其他状态的概率和必须为 1,即状态转移矩阵的每一行的和为 1。

上图 是一个具有 6 个状态的马尔可夫过程的简单例子。其中每个绿色圆圈表示一个状态,每个状态都有一定概率(包括概率为 0)转移到其他状态,其中通常被称为终止状态(terminal state),因为它不会再转移到其他状态,可以理解为它永远以概率 1 转移到自己。状态之间的虚线箭头表示状态的转移,箭头旁的数字表示该状态转移发生的概率。从每个状态出发转移到其他状态的概率总和为 1。例如,有 90%概率保持不变,有 10%概率转移到,而在又有 50%概率回到,有 50%概率转移到。
给定一个马尔可夫过程,我们就可以从某个状态出发,根据它的状态转移矩阵生成一个状态序列(episode),这个步骤也被叫做采样(sampling)。例如,从出发,可以生成序列 或序列 等。生成这些序列的概率和状态转移矩阵有关。

马尔可夫奖励过程

在马尔可夫过程的基础上加入奖励函数 和折扣因子,就可以得到马尔可夫奖励过程(Markov reward process)。一个马尔可夫奖励过程由构成,各个组成元素的含义如下所示。

按顺序:
是有限状态的集合。
是状态转移矩阵。
是奖励函数,某个状态的奖励 指转移到该状态时可以获得奖励的期望。
是折扣因子(discount factor),的取值范围为。引入折扣因子的理由为远期利益具有一定不确定性,有时我们更希望能够尽快获得一些奖励,所以我们需要对远期利益打一些折扣。接近 1 的更关注长期的累计奖励,接近 0 的更考虑短期奖励。
3.3.1 回报

回报

在一个马尔可夫奖励过程中,从第时刻状态开始,直到终止状态时,所有奖励的衰减之和称为回报(Return),公式如下:

价值函数

在马尔可夫奖励过程中,一个状态的期望回报被称为这个状态的价值(value)。所有状态的价值就组成了价值函数(value function),价值函数的输入为某个状态,输出为这个状态的价值。我们将价值函数写成
在上式的最后一个等号中,一方面,即时奖励的期望正是奖励函数的输出,即;另一方面,等式中剩余部分可以根据从状态出发的转移概率得到,即可以得到

以上解析解的计算复杂度是,其中是状态个数,因此这种方法只适用很小的马尔可夫奖励过程。求解较大规模的马尔可夫奖励过程中的价值函数时,可以使用动态规划(dynamic programming)算法、蒙特卡洛方法(Monte-Carlo method)和时序差分(temporal difference),这些方法将在之后的章节介绍。

马尔可夫决策过程

如果有一个外界的“刺激”来共同改变这个随机过程,就有了马尔可夫决策过程(Markov decision process,MDP)。我们将这个来自外界的刺激称为智能体(agent)的动作,在马尔可夫奖励过程(MRP)的基础上加入动作,就得到了马尔可夫决策过程(MDP)。马尔可夫决策过程由元组构成,其中:
我们发现 MDP 与 MRP 非常相像,主要区别为 MDP 中的状态转移函数和奖励函数都比 MRP 多了动作作为自变量。注意,在上面 MDP 的定义中,我们不再使用类似 MRP 定义中的状态转移矩阵方式,而是直接表示成了状态转移函数。这样做一是因为此时状态转移与动作也有关,变成了一个三维数组,而不再是一个矩阵(二维数组);二是因为状态转移函数更具有一般意义,例如,如果状态集合不是有限的,就无法用数组表示,但仍然可以用状态转移函数表示。我们在之后的课程学习中会遇到连续状态的 MDP 环境,那时状态集合都不是有限的。现在我们主要关注于离散状态的 MDP 环境,此时状态集合是有限的。

不同于马尔可夫奖励过程,在马尔可夫决策过程中,通常存在一个智能体来执行动作。例如,一艘小船在大海中随着水流自由飘荡的过程就是一个马尔可夫奖励过程,它如果凭借运气漂到了一个目的地,就能获得比较大的奖励;如果有个水手在控制着这条船往哪个方向前进,就可以主动选择前往目的地获得比较大的奖励。马尔可夫决策过程是一个与时间相关的不断进行的过程,在智能体和环境 MDP 之间存在一个不断交互的过程。一般而言,它们之间的交互是如图 3-3 循环过程:智能体根据当前状态选择动作;对于状态和动作,MDP 根据奖励函数和状态转移函数得到和并反馈给智能体。智能体的目标是最大化得到的累计奖励。智能体根据当前状态从动作的集合中选择一个动作的函数,被称为策略。

策略

智能体的策略(Policy)通常用字母表示。策略是一个函数,表示在输入状态情况下采取动作的概率。当一个策略是确定性策略(deterministic policy)时,它在每个状态时只输出一个确定性的动作,即只有该动作的概率为 1,其他动作的概率为 0;当一个策略是随机性策略(stochastic policy)时,它在每个状态时输出的是关于动作的概率分布,然后根据该分布进行采样就可以得到一个动作。在 MDP 中,由于马尔可夫性质的存在,策略只需要与当前状态有关,不需要考虑历史状态。回顾一下在 MRP 中的价值函数,在 MDP 中也同样可以定义类似的价值函数。但此时的价值函数与策略有关,这意为着对于两个不同的策略来说,它们在同一个状态下的价值也很可能是不同的。这很好理解,因为不同的策略会采取不同的动作,从而之后会遇到不同的状态,以及获得不同的奖励,所以它们的累积奖励的期望也就不同,即状态价值不同。

状态价值函数

我们用表示在 MDP 中基于策略的状态价值函数(state-value function),定义为从状态出发遵循策略能获得的期望回报,数学表达为:

动作价值函数

不同于 MRP,在 MDP 中,由于动作的存在,我们额外定义一个动作价值函数(action-value function)。我们用表示在 MDP 遵循策略时,对当前状态执行动作得到的期望回报:
状态价值函数和动作价值函数之间的关系:在使用策略中,状态的价值等于在该状态下基于策略采取所有动作的概率与相应的价值相乘再求和的结果:
使用策略时,状态下采取动作的价值等于即时奖励加上经过衰减后的所有可能的下一个状态的状态转移概率与相应的价值的乘积:

贝尔曼期望方程

蒙特卡洛方法

占用度量

最优策略

贝尔曼最优方程

总结

参考文献

[1] SUTTON R S, BARTO A G. Reinforcement learning: an introduction [M]. Cambridge:MIT press, 2018.

[2] OTTERLO M V, WIERING M. Reinforcement learning and markov decision processes [M]. Berlin, Heidelberg: Springer, 2012: 3-42.

强化学习——day13 马尔科夫决策过程MDP相关推荐

  1. 强化学习——day11 马尔科夫决策过程MDP

    第 3 章 马尔可夫决策过程 3.1 简介 马尔可夫决策过程(Markov decision process,MDP)是强化学习的重要概念.要学好强化学习,我们首先要掌握马尔可夫决策过程的基础知识.前 ...

  2. 【机器学习】强化学习:马尔科夫决策过程(Markov decision process)

    本章是强化学习的基础,主要讲的就是马尔科夫决策过程,以后的内容都是以这一节为基础的,所以对本节的相关概念的理解是很重要的. 这一节的概念比较多,也是后面章节的基础,一开始笔者也是一头雾水,只有多看几遍 ...

  3. 强化学习note1——马尔科夫奖励过程MRP和马尔科夫决策过程MDP各个函数的定义与区别

    马尔科夫奖励过程MRP 状态转移函数:P(St+1=s′∣st=s)P\left(S_{t+1}=s^{\prime} \mid s_{t}=s\right)P(St+1​=s′∣st​=s) 奖励函 ...

  4. 强化学习(二)马尔科夫决策过程(MDP)

    在强化学习(一)模型基础中,我们讲到了强化学习模型的8个基本要素.但是仅凭这些要素还是无法使用强化学习来帮助我们解决问题的, 在讲到模型训练前,模型的简化也很重要,这一篇主要就是讲如何利用马尔科夫决策 ...

  5. 强化学习——马尔科夫决策过程 MDP

    马尔可夫决策过程是强化学习里面的一个基本框架. 马尔可夫过程.马尔可夫反馈过程是马尔可夫决策过程的基础,所以本博客将会一并介绍. 文章目录 1. 马尔科夫过程 Markov Process,MP 1. ...

  6. 贝尔曼方程动态规划python,【强化学习】马尔科夫决策过程之Bellman Equation(贝尔曼方程)...

    前面总结了马尔科夫决策过程之Markov Processes(马尔科夫过程),见下文:马尔科夫决策过程之Markov Processes(马尔科夫过程) 马尔科夫决策过程之Markov Reward ...

  7. 强化学习(part2)--马尔科夫决策

    学习笔记,仅供参考,有错必纠 文章目录 马尔科夫决策 马尔科夫决策要求 马尔科夫决策过程由5个元素构成 状态转移过程 状态价值函数 最优价值函数 Bellman方程 马尔科夫决策 马尔科夫决策要求 能 ...

  8. 漫谈机器学习经典算法—增强学习与马尔科夫决策过程

    公式及图片正常显示的精美排版版请移步http://lanbing510.info/2015/11/17/Master-Reinforcement-Learning-MDP.html 写在前面 现有的机 ...

  9. 强化学习 马尔科夫决策过程(MDP)

    1. 强化学习引入MDP的原因 强化学习的环境的状态转化模型,它可以表示为一个概率模型,即在状态下采取动作a,转到下一个状态s′的概率,表示为 如果按照真实的环境转化过程看,转化到下一个状态s′的概率 ...

最新文章

  1. chart.Correlation绘制相关性热图
  2. 包含min函数的栈 python_面试题_设计包含 min函数的栈
  3. php mysql 线程安全_PHP 线程安全与非线程安全版本的区别深入解析
  4. 500 OOPS: vsftpd: both local and anonymous access disabled
  5. mysql关联语句优化_MySql语句关联优化问题,为什么加了限制条件反而更慢?
  6. 1386兆瓦:东能源拟建全球最大海上风电场
  7. 易语言解析html实例,易语言完整示例(单设备)
  8. 10000个虎年限定版红包封面!给!
  9. 公共DNS递归服务器(转发)
  10. python怎样查找收盘价_如何在Python中从晨星获得调整后的收盘价?
  11. LOL雨鱼ADC一键走砍清兵工具v10.14
  12. 飞思卡尔 s19 转 bin
  13. oppo Reno 5 pro​​手机打开USB调试步骤(oppo手机大同小异,其他品牌也适用)
  14. ADAS不是自动驾驶汽车
  15. redis原理快速入门知识点总结
  16. [note] 微电子学概论(二) PN结 MOS和MOSFET
  17. 如何从Mac到HomePod播放音频
  18. 【转】GitLab配合小乌龟配置SSH Key
  19. WordPress 搭建个人博客全攻略
  20. java 源码 股票_java+实时股票报价系统源代码+NeatBeans java的股票系统 - 下载 - 搜珍网...

热门文章

  1. win10 睡眠,重启,关机关不住?只需两步
  2. java js 截取字符串_js截取字符串的方法
  3. JS数据类型存贮位置
  4. Qt 之tree widget和treeView控件C++语言
  5. 什么是监督学习?如何理解分类和回归?
  6. winxp 无法连接计算机,win XP系统的电脑无法连接苹果手机怎么解决
  7. 利用Linux中file命令查看音频文件的采样率
  8. 充电宝无线和有线哪个好?无线的充电宝好吗
  9. Thrift--Thrift简介
  10. webpack5学习笔记-3 打包优化的操作