策略评估

智能体与环境之间的交互,智能体得到环境的状态后,它会采取动作,并把这个采取的动作返还给环境。环境得到智能体的动作后,它会进入下一个状态,把下一个状态传给智能体。
 1. 马尔可夫奖励过程

马尔可夫奖励过程(Markov reward process, MRP) 是马尔可夫链加上奖励函数。在马尔可夫奖
励过程中,状态转移矩阵和状态都与马尔可夫链一样,只是多了奖励函数(reward function) 。奖励函数 R 是一个期望,表示当我们到达某一个状态的时候,可以获得多大的奖励。这里另外定义了折扣因子 γ。如果状态数是有限的,那么 R 可以是一个向量。

1)回报与价值函数
回报(return) 是指把奖励进行折扣后所获得的奖励。

这里有一个折扣因子,越往后得到的奖励,折扣越多。这说明我们更希望得到现有的奖励,对未来的奖励要打折扣。
1.1)定义状态的价值了,就是状态价值函数(state-value function)。

其中, Gt 是之前定义的折扣回报(discounted return) 。我们对 Gt 取了一个期望,期望就是从这个状态开始,我们可能获得多大的价值。

当我们有了一些轨迹的实际回报时,怎么计算它的价值函数呢?

1.2)贝尔曼方程

另外一种计算方法,从价值函数里面推导出贝尔曼方程

贝尔曼方程描述的就是当前状态到未来状态的一个转移

 1.3)计算马尔可夫奖励过程价值的迭代算法

可以将迭代的方法应用于状态非常多的马尔可夫奖励过程(large MRP),比如:动态规划的方
法,蒙特卡洛的方法(通过采样的办法计算它), 时序差分学习(temporal-difference learning, TD learning) 的方法(时序差分学习是动态规划和蒙特卡洛方法的一个结合)

2. 马尔可夫决策过程

在当前状态与未来状态转移过程中多了一层决策性,这是马尔可夫决策过程与之前的马尔可夫过程/马尔可夫奖励过程很不同的一点.马尔可夫决策过程,它的中间多了一层动作 a ,即智能体在当前状态的时候,首先要决定采取某一种动作,这样我们会到达某一个黑色的节点

2.1)马尔可夫决策过程中的价值函数

2.2)策略评估
已知马尔可夫决策过程以及要采取的策略 π ,计算价值函数 Vπ(s) 的过程就是策略评估。策略评估在有些地方也被称为(价值)预测 [(value) prediction) ],也就是预测我们当前采取的策略最终会产生多少价值。
例子:

马尔可夫决策过程的不同之处在于有一个智能体控制船,这样我们就可以尽可能多地获得奖励。

贝尔曼方程来得到价值函数

2.3) 预测与控制

 在马尔可夫决策过程里面,预测和控制都可以通过动态规划解决。要强调的是,这两者的区别就在于,预测问题是给定一个策略,我们要确定它的价值函数是多少。而控制问题是在没有策略的前提下,我们要确定最佳的价值函数以及对应的决策方案。实际上,这两者是递进的关系,在强化学习中,我们通过解决预测问题,进而解决控制问题

 在控制问题中,问题背景与预测问题的相同,唯一的区别就是:不再限制策略。也
就是动作模式是未知的,我们需要自己确定

控制问题要做的就是,给定同样的条件,求出在所有可能的策略下最优的价值函数是什么,最优策略是什么

2.4)动态规划

动态规划(dynamic programming, DP) 适合解决满足最优子结构(optimal substructure) 和
重叠子问题(overlapping subproblem) 两个性质的问题

马尔可夫决策过程是满足动态规划的要求的,在贝尔曼方程里面,我们可以把它分解成递归的结构。
动态规划应用于马尔可夫决策过程的规划问题而不是学习问题,我们必须对环境是完全已知的,才能做动态规划,也就是要知道状态转移概率和对应的奖励。使用动态规划完成预测问题和控制问题的求解,是解决马尔可夫决策过程预测问题和控制问题的非常有效的方式。

2.5)马尔可夫决策过程中的策略评估

策略评估就是给定马尔可夫决策过程和策略,评估我们可以获得多少价值,即对于当前策略,我们可以得到多大的价值。可以把贝尔曼期望备份转换成动态规划的迭代

策略评估的核心思想就是把如式 (2.39) 所示的贝尔曼期望备份反复迭代,然后得到一个收敛的价值函数的值。

2.6)马尔可夫决策过程控制

策略迭代和价值迭代来解决马尔可夫决策过程的控制问题

2.7)策略迭代

策略迭代由两个步骤组成:策略评估和策略改进(policy improvement)。在初始化的时候,我们有一个初始化的状态价值函数 V 和策略 π ,然后在这两个步骤之间迭代

第一个步骤是策略评估,当前我们在优化策略 π,在优化过程中得到一个最新的策略。我们先保证这个策略不变,然后估计它的价值,即给定当前的策略函数来估计状态价值函数。第二个步骤是策略改进,得到状态价值函数后,我们可以进一步推算出它的 Q 函数。得到 Q 函数后,我们直接对 Q 函数进行最大化,通过在Q 函数做一个贪心的搜索来进一步改进策略。这两个步骤一直在迭代进行。

图 2.21b 上面的线就是我们当前状态价值函数的值,下面的线是策略的值。策略迭代的过程与踢皮球一样。我们先给定当前已有的策略函数,计算它的状态价值函数。算出状态价值函数后,我们会得到一个Q 函数。我们对 Q 函数采取贪心的策略,这样就像踢皮球,“踢”回策略。然后进一步改进策略,得到一个改进的策略后,它还不是最佳的策略,我们再进行策略评估,又会得到一个新的价值函数。基于这个新的价值函数再进行 Q 函数的最大化,这样逐渐迭代,状态价值函数和策略就会收敛。

策略改进:状态价值函数后,我们就可以通过奖励函数以及状态转移函数来计算 Q 函数

对于每个状态,策略改进会得到它的新一轮的策略,对于每个状态,我们取使它得到最大值的动作,即

2.8)价值迭代

价值迭代就是把贝尔曼最优方程当成一个更新规则来进行

2.9)马尔可夫决策过程中的预测和控制总结
     我们使用动态规划算法来解马尔可夫决策过程里面的预测和控制,并且采取不同的贝尔曼方程。对于预测问题,即策略评估的问题,我们不停地执行贝尔曼期望方程,这样就可以估计出给定的策略,然后得到价值函数。对于控制问题,如果我们采取的算法是策略迭代,使用的就是贝尔曼期望方程;如果我们采取的算法是价值迭代,使用的就是贝尔曼最优方程

 总结

第 2 章 马尔可夫决策过程相关推荐

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

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

  2. 强化学习蘑菇书Easy RL第二、三章学习(马尔可夫决策过程、表格型方法)

    马尔可夫决策过程概述 Markov Process(MP)通常来说是未来状态的条件概率分布仅依赖于当前的状态.在离散随机过程里,我们需要把随机变量所有可能取值的集合放到一个状态空间里,在强化学习里,我 ...

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

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

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

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

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

    参考书籍: Reinforcement Learning An introduction 第二版 作者:Richard S. Sutton and Andrew G. Barto 以及此书的中文版&l ...

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

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

  7. DeepMind 的马尔可夫决策过程(MDP)课堂笔记

    DeepMind Teaching by David Silver 视频课程链接(Youtube资源,需梯子):https://youtu.be/lfHX2hHRMVQ 文章目录 DeepMind T ...

  8. (二)马尔可夫决策过程

      从第一章中了解到强化学习中,智能体通过和环境进行交互获得信息.这个交互过程可以通过马尔可夫决策过程来表示,所以了解一下什么是MDP至关重要.   不过在了解马尔可夫决策过程之前,先要一些预备知识, ...

  9. 系统学习机器学习之增强学习(二)--马尔可夫决策过程

    参考: http://blog.csdn.net/zz_1215/article/details/44138823 http://www.cnblogs.com/jerrylead/archive/2 ...

最新文章

  1. python私有属性和property装饰器_python – 在使用@property装饰器时在属性的s...
  2. 详解 javascript中offsetleft属性的用法(转)
  3. 工业级PoE交换机的分类知识详解
  4. 随手小记·080911
  5. python给图片加半透明水印_Python 批量加水印就这么简单!
  6. gradle 查看依赖类库版本_如何查找第三方库(Gradle引用)的依赖?
  7. [机器学习-原理篇]支持向量机(SVM)深入理解
  8. python cv模块_Python cv包_程序模块 - PyPI - Python中文网
  9. Linux移植随笔:对tslib库的ts_test测试程序代码的一点分析
  10. linux wc -l命令,Linux wc sort和uniq的用法
  11. 网吧用服务器做虚拟化,刀片、无盘、集群、虚拟化,给你一个选择的理由(上)...
  12. 2021 年电工杯 B 题
  13. 接入Internet的技术有哪几种?各有什么特点?
  14. Cloudera Manager 安装
  15. hexo yilia个性化样式设置
  16. PMS(PackageManagerService)原理简单介绍,启动过程源码简单解析
  17. 中国大学MOOC体育保健学考试试题及答案
  18. 练手之经典病毒熊猫烧香分析(上)
  19. 云效触发Jenkins自动构建
  20. MOS管基本认识(快速入门)

热门文章

  1. OpenCV_7漩涡
  2. 各类船舶作业注意事项(昼夜计划表)
  3. base62编码 java_Golang 之 Base62 编码
  4. 大数据预言帝现身 猜奥斯卡奖24中21
  5. HNUCM信息科学与工程学院第二届新生赛——热身赛
  6. 分子动力学模拟学习1-采用AmberTools21的MCPB.py构建金属蛋白的top文件
  7. PaddleOCR测试报告
  8. 奥运金牌追逐战,可视化动态图表炫酷展示
  9. HDFS读写数据流程
  10. win10安装anaconda详细教程