强化学习-MDP(马尔可夫决策过程)算法原理
1. 前言
前面的强化学习基础知识介绍了强化学习中的一些基本元素和整体概念。今天讲解强化学习里面最最基础的MDP(马尔可夫决策过程)。
2. MDP定义
MDP是当前强化学习理论推导的基石,通过这套框架,强化学习的交互流程可以很好地以概率论的形式表示出来,解决强化学习问题的关键定理也可以依此表示出来。
MDP(马尔可夫决策过程)包含以下三层含义:
- “马尔可夫”表示了状态间的依赖性。当前状态的取值只和前一个状态产生依赖,不和更早的状态产生联系。虽然这个条件在有些问题上有些理想,但是由于它极大地简化了问题,所以人们通常会选择使用它。
- “决策”表示了其中的策略部分将由Agent决定。Agent可以通过自己的行动改变状态序列,和环境中存在的随机性共同决定未来的状态。
- “过程”表示了时间的属性。如果把Agent和环境的交互按时间维度展开,那么Agent行动后,环境的状态将发生改变,同时时间向前推进,新的状态产生,Agent将获得观测值,于是新的行动产生,然后状态再更新”
3. 价值函数
前面介绍了MDP的基本形式,我们发现游戏的关键在于策略(policy),也就是如何做出决策与执行行动。在理想状态下,每一个行动都要为最终的目标——最大化长期回报努力,那么理论上只要能够找到一种方法,量化每一个行动对实现最终目标贡献的价值,这个方式就是用价值函数(简称值函数)来衡量。
值函数分两类:
- 状态值函数\(v_{\pi}(s)\):也就是已知当前状态s,按照某种策略行动产生的长期回报期望。
- 状态-行动值函数\(q_{\pi}(s,a)\):也就是已知当前状态s和行动a,按照某种策略行动产生的长期回报期望。
其中的\(\pi\)是一个行动策略。
3.1 状态值函数
我们从下图中来学习状态值函数:
我们计算左边的\(s^0\)状态的\(v(s^0)\),我们可以通过它后面的\(r_{a_i}^{s^1_{0,i}}+s^1_{0,i}\)加权的和,其中\(r_{a_i}^{s^1_{0,i}}\)是采取行动\(a_i\)后获得的奖励。
所以有状态值函数的Bellman公式:
\[
v_{\pi}(s_t)=\sum_{a_t}\pi(a_t|s_t)\sum_{s_{t+1}}p(s_{t+1}|s_t,a_t)[r_{a_t}^{s_{t+1}} + \gamma * v_{\pi}(s_{t+1})]\;\;\;\;\;\;(1)
\]
通过这样的计算,我们发现状态值函数可以以递归的形式表示。假设值函数已经稳定,任意一个状态的价值可以由其他状态的价值得到。
3.2 状态-行动值函数
和状态值函数的推到一样,我们有下面这张状态-行动值函数,它是以\(q(s,a)\)为目标来计算值函数。
同样和状态值函数一样,状态-行动值函数也有相应的Bellman公式:
\[
q_{\pi}(s_t,a_t)=\sum_{s_{t+1}}p(s_{t+1}|s_t,a_t)[r_{a_t}^{s_{t+1}} + \gamma * \sum_{a_{t+1}}\pi(a_{t+1}|s_{t+1})q_{\pi}(s_{t+1},a_{t+1})]\;\;\;\;\;\;(2)
\]
这个公式和上面的状态值函数的非常类似。
以上\((1)(2)\)个Bellman公式是MDP中最核心的内容,后面的各种强化学习的算法也是建立在上面2个Bellman公式之上。
通过\((1)(2)\),我们还能推导出\(v_{\pi}(s_t),q_{\pi}(s_t,a_t)\)之间的关系。
\[
v_{\pi}(s_t)=\sum_{a_t}\pi(a_t|s_t)q_{\pi}(s_t,a_t)\;\;\;\;\;\;(3)
\]
\[
q_{\pi}(s_t,a_t)=\sum_{s_{t+1}}p(s_{t+1}|s_t,a_t)[r_{a_t}^{s_{t+1}} + \gamma * v_{\pi}(s_{t+1})]\;\;\;\;\;\;(4)
\]
其实\((3)(4)\)也可以通过上面2幅图得到验证。
4. 总结
MDP是强化学习入门的关键一步,如果这部分研究的比较清楚,后面的学习就会容易很多。因此值得多些时间在这里。虽然MDP可以直接用方程组来直接求解简单的问题,但是更复杂的问题却没有办法求解,因此我们还需要寻找其他有效的求解强化学习的方法。
强化学习-MDP(马尔可夫决策过程)算法原理的更多相关文章
- 强化学习入门基础-马尔可夫决策过程(MDP)
作者:YJLAugus 博客: https://www.cnblogs.com/yjlaugus 项目地址:https://github.com/YJLAugus/Reinforcement-Lear ...
- David Silver强化学习Lecture2:马尔可夫决策过程
课件:Lecture 2: Markov Decision Processes 视频:David Silver深度强化学习第2课 - 简介 (中文字幕) 马尔可夫过程 马尔可夫决策过程简介 马尔可夫决 ...
- 转:增强学习(二)----- 马尔可夫决策过程MDP
1. 马尔可夫模型的几类子模型 大家应该还记得马尔科夫链(Markov Chain),了解机器学习的也都知道隐马尔可夫模型(Hidden Markov Model,HMM).它们具有的一个共同性质就是 ...
- 增强学习(二)----- 马尔可夫决策过程MDP
1. 马尔可夫模型的几类子模型 大家应该还记得马尔科夫链(Markov Chain),了解机器学习的也都知道隐马尔可夫模型(Hidden Markov Model,HMM).它们具有的一个共同性质就是 ...
- 马尔可夫决策过程MDP
1. 马尔可夫模型的几类子模型 马尔科夫链(Markov Chain),了解机器学习的也都知道隐马尔可夫模型(Hidden Markov Model,HMM).它们具有的一个共同性质就是马尔可夫性(无 ...
- 【cs229-Lecture16】马尔可夫决策过程
之前讲了监督学习和无监督学习,今天主要讲“强化学习”. 马尔科夫决策过程:Markov Decision Process(MDP) 价值函数:value function 值迭代:value iter ...
- 【RL系列】马尔可夫决策过程——状态价值评价与动作价值评价
请先阅读上两篇文章: [RL系列]马尔可夫决策过程中状态价值函数的一般形式 [RL系列]马尔可夫决策过程与动态编程 状态价值函数,顾名思义,就是用于状态价值评价(SVE)的.典型的问题有“格子世界(G ...
- 【RL系列】马尔可夫决策过程——Jack‘s Car Rental
本篇请结合课本Reinforcement Learning: An Introduction学习 Jack's Car Rental是一个经典的应用马尔可夫决策过程的问题,翻译过来,我们就直接叫它“租 ...
- [Reinforcement Learning] 马尔可夫决策过程
在介绍马尔可夫决策过程之前,我们先介绍下情节性任务和连续性任务以及马尔可夫性. 情节性任务 vs. 连续任务 情节性任务(Episodic Tasks),所有的任务可以被可以分解成一系列情节,可以看作 ...
随机推荐
- 从香港机房引入google/bitbucket路由
首先说这种方法有一个局限性:只适用于非CDN网段的引入,比如Google自己足够大,所以用不到CDN,那在香港解析出来的就是Google在香港自己的AS number,因此不存在CDN干扰的问题.如果 ...
- 免花生壳 TCP测试 DTU测试 GPRS测试TCP服务器
通常在学习GPRS或者DTU的时候,往往没有自己的服务器,很多时候我们只能用这个模块打个电话发个短信,但是随着移动互联的兴起,各行各业大家都开始弄移动接入.为了这个需求,这里提供TCP移动接入. 工作 ...
- [P3452][POI2007]BIU-Offices (BFS)
这里有一个很完美(搞笑但是确实是这样的)翻译 题意 神牛 LXX 昨天刚刚满 18 岁,他现在是个成熟的有为男青年.他有 N 个 MM,分别从 1 到 N 标号. 这些 MM 有些是互相认识的.现在, ...
- Eclipse 安装Maven插件m2eclipse
Eclipse->Help->Install New Software->Work with右边Add按钮->Name字段中输入m2e,Location字段中输入http:// ...
- 常见问题1:默认div隐藏,点击按钮时出现,再点击时隐藏。
例:默认div隐藏,点击按钮时出现,再点击时隐藏. <a href="#" onclick="f('ycbc')"; >控制按钮</a> ...
- js扩展运算符(spread)三个点(...)
常见用法: 1.该运算符主要用于函数调用. function push(array, ...items) { array.push(...items); } function add(x, y) { ...
- flask之基于DBUtils实现数据库连接池、本地线程、上下文
本篇导航: 数据库连接池 本地线程 上下文管理 面向对象部分知识点解析 1.子类继承父类__init__的三种方式 class Dog(Animal): #子类 派生类 def __init__(se ...
- Lua游戏开发之时区问题
目前大部分游戏都采用了Lua语言进行功能开发,在进行多语种发行的时候就会遇到时区显示的问题.以韩国版本为例,场景如下: 1.服务器处于固定的位置,比如放在首尔机房: 2.玩家所处的位置不确定,可能在韩 ...
- .NET上传大文件时提示Maximum request length exceeded错误的解决方法
使用IIS托管应用程序时,当我们需要上传大文件(4MB以上)时,应用程序会提示Maximum request length exceeded的错误信息.该错误信息的翻译:超过最大请求长度. 解决方法: ...
- linux go环境安装和基本项目结构
最近项目中要用到Go语言,所以简单总结一下安装和配置,Go这个语言本身就限定了很多规范,比如项目设置,编程风格等,开发中就不需要再因为各种规范问题纠结了,直接用官方规定的能避免很多坑,下面直接切正题, ...