地址:https://datawhalechina.github.io/easy-rl/

马尔可夫决策过程

上图介绍了在强化学习里面 agent 跟 environment 之间的交互,agent 在得到环境的状态过后,它会采取动作,它会把这个采取的动作返还给环境。环境在得到 agent 的动作过后,它会进入下一个状态,把下一个状态传回 agent。在强化学习中,agent 跟环境就是这样进行交互的,这个交互过程是可以通过马尔可夫决策过程来表示的,所以马尔可夫决策过程是强化学习里面的一个基本框架。

在马尔可夫决策过程中(Markov Decision Process,MDP),它的环境是全部可以观测的(fully observable)。但是很多时候环境里面有些量是不可观测的,但是这个部分观测的问题也可以转换成一个 MDP 的问题。

在介绍马尔可夫决策过程(Markov Decision Process,MDP)之前,先给大家梳理一下马尔可夫过程(Markov Process,MP)、马尔可夫奖励过程(Markov Reward Processes,MRP)。这两个过程是马尔可夫决策过程的一个基础。

Markov Process(MP)

1. Markov Property
如果一个状态转移是符合马尔可夫的,那就是说一个状态的下一个状态只取决于它当前状态,而跟它当前状态之前的状态都没有关系。

Markov Process/Markov Chain

2. Markov Reward Process(MRP)

马尔可夫奖励过程(Markov Reward Process, MRP) 是马尔可夫链再加上了一个奖励函数。在 MRP 中,转移矩阵跟它的这个状态都是跟马尔可夫链一样的,多了一个奖励函数(reward function)。奖励函数是一个期望,就是说当你到达某一个状态的时候,可以获得多大的奖励,然后这里另外定义了一个 discount factor 。

我们通过一个形象的例子来理解 MRP。我们把一个纸船放到河流之中,那么它就会随着这个河流而流动,它自身是没有动力的。所以你可以把 MRP 看成是一个随波逐流的例子,当我们从某一个点开始的时候,这个纸船就会随着事先定义好的状态转移进行流动,它到达每个状态过后,我们就有可能获得一些奖励。

3. Bellman Equation
Bellman Equation 定义了当前状态跟未来状态之间的这个关系。
未来打了折扣的奖励加上当前立刻可以得到的奖励,就组成了这个 Bellman Equation。

Bellman Equation 就是当前状态与未来状态的迭代关系,表示当前状态的值函数可以通过下个状态的值函数来计算。Bellman Equation 因其提出者、动态规划创始人 Richard Bellman 而得名 ,也叫作“动态规划方程”。

4. Iterative Algorithm for Computing Value of a MRP

接下来我们来求解这个价值函数。我们可以通过迭代的方法来解这种状态非常多的 MRP(large MRPs),比如说:

  • 动态规划的方法,
  • 蒙特卡罗的办法(通过采样的办法去计算它),
  • 时序差分学习(Temporal-Difference Learning)的办法。 Temporal-Difference Learning 叫 TD
    Leanring,它是动态规划和蒙特卡罗的一个结合。

Markov Decision Process(MDP)


相对于 MRP,马尔可夫决策过程(Markov Decision Process)多了一个 decision,其它的定义跟 MRP 都是类似的:

这里说明了 MDP 跟 MRP 的之间的一个转换。已知一个 MDP 和一个 policy π 的时候,我们可以把 MDP 转换成 MRP。

Comparison of MP/MRP and MDP

这里我们看一看,MDP 里面的状态转移跟 MRP 以及 MP 的一个差异。

  • 马尔可夫过程的转移是直接就决定。比如当前状态是 s,那么就直接通过这个转移概率决定了下一个状态是什么。
  • 但对于 MDP,它的中间多了一层这个动作 a ,就是说在你当前这个状态的时候,首先要决定的是采取某一种动作,那么你会到了某一个黑色的节点。到了这个黑色的节点,因为你有一定的不确定性,当你当前状态决定过后以及你当前采取的动作过后,你到未来的状态其实也是一个概率分布。所以在这个当前状态跟未来状态转移过程中这里多了一层决策性,这是 MDP 跟之前的马尔可夫过程很不同的一个地方。在马尔可夫决策过程中,动作是由 agent 决定,所以多了一个 component,agent 会采取动作来决定未来的状态转移。

Chapter2 马尔可夫决策过程(MDP)

1. Keywords

  • 马尔可夫性质(Markov Property): 如果某一个过程未来的转移跟过去是无关,只由现在的状态决定,那么其满足马尔可夫性质。换句话说,一个状态的下一个状态只取决于它当前状态,而跟它当前状态之前的状态都没有关系。

  • 马尔可夫链(Markov Chain): 概率论和数理统计中具有马尔可夫性质(Markov property)且存在于离散的指数集(index set)和状态空间(state space)内的随机过程(stochastic process)。

  • 状态转移矩阵(State Transition Matrix): 状态转移矩阵类似于一个 conditional probability,当我们知道当前我们在 s_t 这个状态过后,到达下面所有状态的一个概念,它每一行其实描述了是从一个节点到达所有其它节点的概率。

  • 马尔可夫奖励过程(Markov Reward Process, MRP): 即马尔可夫链再加上了一个奖励函数。在 MRP之中,转移矩阵跟它的这个状态都是跟马尔可夫链一样的,多了一个奖励函数(reward function)。奖励函数是一个期望,它说当你到达某一个状态的时候,可以获得多大的奖励。

  • horizon: 定义了同一个 episode 或者是整个一个轨迹的长度,它是由有限个步数决定的

  • return: 把奖励进行折扣(discounted),然后获得的对应的收益。

  • Bellman Equation(贝尔曼等式): 定义了当前状态与未来状态的迭代关系,表示当前状态的值函数可以通过下个状态的值函数来计算。Bellman Equation 因其提出者、动态规划创始人 Richard Bellman 而得名 ,同时也被叫作“动态规划方程”。

  • Monte Carlo Algorithm(蒙特卡罗方法): 可用来计算价值函数的值。通俗的讲,我们当得到一个MRP过后,我们可以从某一个状态开始,然后让它让把这个小船放进去,让它随波逐流,这样就会产生一个轨迹。产生了一个轨迹过后,就会得到一个奖励,那么就直接把它的 Discounted 的奖励 gg 直接算出来。算出来过后就可以把它积累起来,当积累到一定的轨迹数量过后,然后直接除以这个轨迹,然后就会得到它的这个价值。

  • Iterative Algorithm(动态规划方法): 可用来计算价值函数的值。通过一直迭代对应的Bellman Equation,最后使其收敛。当这个最后更新的状态跟你上一个状态变化并不大的时候,这个更新就可以停止。

  • Q函数 (action-value function): 其定义的是某一个状态某一个行为,对应的它有可能得到的 return 的一个期望(over policy function)。

  • MDP中的prediction(即policy evaluation问题): 给定一个 MDP 以及一个 policy π ,去计算它的 value function,即每个状态它的价值函数是多少。其可以通过动态规划方法(Iterative Algorithm)解决。

  • MDP中的control问题: 寻找一个最佳的一个策略,它的 input 就是MDP,输出是通过去寻找它的最佳策略,然后同时输出它的最佳价值函数(optimal value function)以及它的这个最佳策略(optimal policy)。其可以通过动态规划方法(Iterative Algorithm)解决。

  • 最佳价值函数(Optimal Value Function): 我们去搜索一种 policy π ,然后我们会得到每个状态它的状态值最大的一个情况,v* 就是到达每一个状态,它的值的极大化情况。在这种极大化情况上面,我们得到的策略就可以说它是最佳策略(optimal policy)。optimal policy 使得每个状态,它的状态函数都取得最大值。所以当我们说某一个 MDP 的环境被解了过后,就是说我们可以得到一个 optimal value function,然后我们就说它被解了。

2 Questions

(1) 为什么在马尔可夫奖励过程(MRP)中需要有discount factor?

答:

  1. 首先,是有些马尔可夫过程是带环的,它并没有终结,然后我们想避免这个无穷的奖励;
  2. 另外,我们是想把这个不确定性也表示出来,希望尽可能快地得到奖励,而不是在未来某一个点得到奖励;
  3. 接上面一点,如果这个奖励是它是有实际价值的了,我们可能是更希望立刻就得到奖励,而不是我们后面再得到奖励。
  4. 还有在有些时候,这个系数也可以把它设为 0。比如说,当我们设为 0 过后,然后我们就只关注了它当前的奖励。我们也可以把它设为 1,设为 1的话就是对未来并没有折扣,未来获得的奖励跟我们当前获得的奖励是一样的。
    所以,这个系数其实是应该可以作为强化学习 agent 的一个hyperparameter 来进行调整,然后就会得到不同行为的 agent。

(2) 为什么矩阵形式的Bellman Equation的解析解比较难解?
答:
通过矩阵求逆的过程,就可以把这个 V 的这个价值的解析解直接求出来。但是一个问题是这个矩阵求逆的过程的复杂度是 O(N^3) 。所以就当我们状态非常多的时候,比如说从我们现在十个状态到一千个状态,到一百万个状态。那么当我们有一百万个状态的时候,这个转移矩阵就会是个一百万乘以一百万的一个矩阵。这样一个大矩阵的话求逆是非常困难的,所以这种通过解析解去解,只能对于很小量的MRP。

(3) 计算贝尔曼等式(Bellman Equation)的常见方法以及区别?
答:

  1. Monte Carlo Algorithm(蒙特卡罗方法): 可用来计算价值函数的值。通俗的讲,我们当得到一个MRP过后,我们可以从某一个状态开始,然后让它让把这个小船放进去,让它随波逐流,这样就会产生一个轨迹。产生了一个轨迹过后,就会得到一个奖励,那么就直接把它的 Discounted 的奖励 g 直接算出来。算出来过后就可以把它积累起来,当积累到一定的轨迹数量过后,然后直接除以这个轨迹,然后就会得到它的这个价值。
  2. Iterative Algorithm(动态规划方法): 可用来计算价值函数的值。通过一直迭代对应的Bellman Equation,最后使其收敛。当这个最后更新的状态跟你上一个状态变化并不大的时候,通常是小于一个阈值 \gammaγ ,这个更新就可以停止。
  3. 以上两者的结合方法: 另外我们也可以通过 Temporal-Difference Learning 的那个办法。这个 Temporal-Difference Learning 叫 TD Leanring,就是动态规划和蒙特卡罗的一个结合。

(4) 马尔可夫奖励过程(MRP)与马尔可夫决策过程 (MDP)的区别?

答:相对于 MRP,马尔可夫决策过程(Markov Decision Process)多了一个 decision,其它的定义跟 MRP 都是类似的。**这里我们多了一个决策,多了一个 action ,那么这个状态转移也多了一个 condition,就是采取某一种行为,然后你未来的状态会不同。**它不仅是依赖于你当前的状态,也依赖于在当前状态你这个 agent 它采取的这个行为会决定它未来的这个状态走向。对于这个价值函数,它也是多了一个条件,多了一个你当前的这个行为,就是说你当前的状态以及你采取的行为会决定你在当前可能得到的奖励多少。

另外,两者之间是有转换关系的。具体来说,已知一个 MDP 以及一个 policy π 的时候,我们可以把 MDP 转换成MRP。在 MDP 里面,转移函数 P(s’|s,a) 是基于它当前状态以及它当前的 action,因为我们现在已知它 policy function,就是说在每一个状态,我们知道它可能采取的行为的概率,那么就可以直接把这个 action 进行加和,那我们就可以得到对于 MRP 的一个转移,这里就没有 action。同样地,对于奖励,我们也可以把 action 拿掉,这样就会得到一个类似于 MRP 的奖励。

(5) MDP 里面的状态转移跟 MRP 以及 MP 的结构或者计算方面的差异?

答:

  • 对于之前的马尔可夫链的过程,它的转移是直接就决定,就从你当前是 s,那么就直接通过这个转移概率就直接决定了你下一个状态会是什么。
  • 但是对于 MDP,它的中间多了一层这个行为 a ,就是说在你当前这个状态的时候,你首先要决定的是采取某一种行为。然后因为你有一定的不确定性,当你当前状态决定你当前采取的行为过后,你到未来的状态其实也是一个概率分布。所以你采取行为以及你决定,然后你可能有有多大的概率到达某一个未来状态,以及另外有多大概率到达另外一个状态。所以在这个当前状态跟未来状态转移过程中这里多了一层决策性,这是MDP跟之前的马尔可夫过程很不同的一个地方。在马尔科夫决策过程中,行为是由 agent 决定,所以多了一个 component,agent 会采取行为来决定未来的状态转移。

(6) 我们如何寻找最佳的policy,方法有哪些?

答:本质来说,当我们取得最佳的价值函数过后,我们可以通过对这个 Q 函数进行极大化,然后得到最佳的价值。然后,我们直接在这个Q函数上面取一个让这个action最大化的值,然后我们就可以直接提取出它的最佳的policy。

具体方法:

  1. 穷举法(一般不使用):假设我们有有限多个状态、有限多个行为可能性,那么每个状态我们可以采取这个 A 种行为的策略,那么总共就是
    |A|^{|S|} 个可能的 policy。我们可以把这个穷举一遍,然后算出每种策略的 value
    function,然后对比一下可以得到最佳策略。但是效率极低。
  2. Policy iteration:
    一种迭代方法,有两部分组成,下面两个步骤一直在迭代进行,最终收敛:(有些类似于ML中EM算法(期望-最大化算法)) 第一个步骤是
    (1)policy evaluation ,即当前我们在优化这个 policy \piπ ,所以在优化过程中得到一个最新的这个 policy。
    (2) 第二个步骤是 policy improvement ,即取得价值函数后,进一步推算出它的 Q 函数。得到 Q 函数过后,那我们就直接去取它的极大化。
  3. Value iteration: 我们一直去迭代 Bellman Optimality Equation,到了最后,它能逐渐趋向于最佳的策略,这是 value iteration 算法的精髓,就是我们去为了得到最佳的 v*,对于每个状态它的 v∗ 这个值,我们直接把这个 Bellman Optimality Equation 进行迭代,迭代了很多次之后它就会收敛到最佳的policy以及其对应的状态,这里面是没有policy function的。

深度强化学习笔记(二)马尔可夫决策过程相关推荐

  1. 深度强化学习入门:马尔可夫决策过程(井字棋案例理解)

    注:笔记 来自知乎文章 深度强化学习综述(上) Tips①:只是记录从这个文章学到的东西 Tips②:只摘选了文章中部分理论阅读整理 Tips③:重点是对文章中的一些公式进行理解,方便自己回顾 Tip ...

  2. 深度强化学习笔记(二)——Q-learning学习与二维寻路demo实现

    深度强化学习笔记(二)--Q-learning学习与二维寻路demo实现 文章目录 深度强化学习笔记(二)--Q-learning学习与二维寻路demo实现 前言 理论 什么是Q-Learning 算 ...

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

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

  4. 强化学习介绍和马尔可夫决策过程详细推导

    强化学习系列学习笔记,结合<UCL强化学习公开课>.<白话强化学习与PyTorch>.网络内容,如有错误请指正,一起学习! 强化学习基本介绍 强化学习的中心思想是让智能体在环境 ...

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

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

  6. 【深入浅出强化学习】2 马尔可夫决策过程

    文章目录 2.1 马尔科夫决策过程理论讲解 2.2 MDP 中的概率学基础讲解 2.3 基于 gym 的 MDP 实例讲解 Appendix grid_mdp.py 文件代码 2.1 马尔科夫决策过程 ...

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

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

  8. 深度强化学习笔记02-马尔可夫链

    深度强化学习笔记02-马尔可夫链 这几天杂事比较多,看了一些相关内容,但是没有时间形成笔记,此笔记复制与datawhale的MDP一节,后期自己学习填补. MDP [外链图片转存失败,源站可能有防盗链 ...

  9. CNTK与深度强化学习笔记: Cart Pole游戏示例

    CNTK与深度强化学习笔记之二: Cart Pole游戏示例 前言 前面一篇文章,CNTK与深度强化学习笔记之一: 环境搭建和基本概念,非常概要的介绍了CNTK,深度强化学习和DQN的一些基本概念.这 ...

  10. 【李宏毅深度强化学习笔记】3、Q-learning(Basic Idea)

    [李宏毅深度强化学习笔记]1.策略梯度方法(Policy Gradient) [李宏毅深度强化学习笔记]2.Proximal Policy Optimization (PPO) 算法 [李宏毅深度强化 ...

最新文章

  1. 从新手到入门,如何进入协议分析的世界
  2. golang map 删除 清空
  3. OVS技术介绍(四十一)
  4. java biginterger_Java BigInteger类知识点总结
  5. 天梯赛 L1-025 正整数A+B (15 分)
  6. QT下 cannot find -IGL的解决办法
  7. lsnrctl status区分静态注册与动态注册
  8. 我为什么雇佣家庭主妇做软件测试
  9. 设计模式之(Factory method)工厂方法模式
  10. 加强Eclipse代码自动提示的方法
  11. centos7 nginx+php5.6+mysql安装与配置
  12. CreateDirectory和SHCreateDirectoryExW区别
  13. PyInstaller 生成exe文件
  14. PHP Cookbook读书笔记 – 第13章Web自动化
  15. 【分享】5G+北斗RTK高精度人员定位解决方案
  16. 《应用时间序列分析:R软件陪同》——第 3 章 一元时间序列数据的拟合及预测 3.1 一些估计和预测方法的基本数学原理...
  17. Windows无法启动 VMware Workstation server错误1068依赖服务或组无法启动
  18. 农大计算机工程,肖德琴-华南农业大学计算机科学与工程系
  19. 为什么有些人拒绝别人的方式是说谎而不是直接说不?
  20. App Ratings and Reviews

热门文章

  1. 莫言:自尊就是吃饱了撑的
  2. 还未正式辞职的我开始焦虑了
  3. 安卓apk在CentOS上自动化编译打包发布
  4. 网易游戏面试题刷刷刷(1)
  5. GP技术的展望——先有鸿钧后有天
  6. 【C#】QQ消息自动发送代码
  7. 惊喜开学季,教你如何在人工智能时代站稳脚跟!
  8. web前端新手面试指南:自我介绍
  9. PandoraBox版本及已安装软件包
  10. 软件介绍 CamStudio (屏幕录制工具)