贝尔曼方程动态规划python,【强化学习】马尔科夫决策过程之Bellman Equation(贝尔曼方程)...
前面总结了马尔科夫决策过程之Markov Processes(马尔科夫过程),见下文:马尔科夫决策过程之Markov Processes(马尔科夫过程)
马尔科夫决策过程之Markov Reward Process(马尔科夫奖励过程),见下文:马尔科夫决策过程之Markov Reward Process(马尔科夫奖励过程)
本文总结一下马尔科夫决策过程之Bellman Equation(贝尔曼方程)
1Bellman Equation for MRPs
首先我们从value function的角度进行理解,value function可以分为两部分:
见下面的推导公式:
我们直接从第一行到最后一行是比较好理解的,因为从状态s到状态s+1,是不确定,还是之前的例子。
比如掷骰子游戏,当前点数是1的情况下,下一个状态有可能是1,2,3,4,5,6的任意一种状态可能,所以最外层会有一个期望符号。
如果我们跟着一直推下来的话:有疑问的会在导出最后一行时,将G(t+1)变成了v(St+1)。其理由是收获的期望等于收获的期望的期望。参考叶强童鞋的理解。
则最后我们得到了针对MRP的Bellman方程:
通过方程可以看出v(s)由两部分组成,一是该状态的即时奖励期望,即时奖励期望等于即时奖励,因为根据即时奖励的定义,它与下一个状态无关。
这里解释一下为什么会有期望符合,是因为从状态s的下一个状态s+1可能有多个状态,比如掷骰子,下一个状态可能有1,2,3,4,5,6,从s到下一个状态都是有一定概率,所以会有期望符合。
另一个是下一时刻状态的价值期望,可以根据下一时刻状态的概率分布得到其期望,比如在上面掷骰子例子中,从状态1到下一个状态1,2,3,4,5,6求期望的做法,我们可以直接用概率公式p(1->1),p(1->2),p(1->3),p(1->4),p(1->5),p(1->6) 然后乘以对应下一状态的价值函数即可。
如果用s’表示s状态下一时刻任一可能的状态,那么Bellman方程可以写成:
完整的slides如下:
2Example: Bellman Equation for Student MRP
好,我们在上面既然知道了通过Bellman Equation来迭代的计算每个状态的价值函数,下面我们举出一个例子来算一个状态的value function帮助理解
通过上图我们分析一下4.3如何计算?见下图即可:
可能还有一些童鞋会问,算该状态的value function的时候,其它的状态的value function是怎么知道的呢?
比如算4.3的时候,我们如何知道它后继状态的value funciton为0.8,10。其实这些值一开始可以任意初始化,后面可以学习更新,就类似于神经网络的权值参数,一开始任意初始化,后面通过loss反向更新一样。
3Bellman Equation in Matrix Form
最后我们可以给出Bellman方程的矩阵形式和求解
结合矩阵的具体表达形式如下:
总的slides如下:
Bellman方程是一个线性方程组,理论上解可以直接求解:
但是它的计算复杂度是0(n^3), 是状态数量,因为矩阵的求逆过程为0(n^3)。
由于求解复杂度较高。因此直接求解仅适用于小规模的MRPs。
大规模MRP的求解通常需要使用迭代法。常用的迭代方法有:
动态规划Dynamic Programming、
蒙特卡洛评估Monte-Carlo evaluation、
时序差分学习Temporal-Difference,
后面会分别介绍这些方法。
参考:
David Silver深度强化学习课程 第2课 - 马尔科夫决策过程叶强:
叶强 https://zhuanlan.zhihu.com/p/28084942
推荐阅读:
当RNN神经网络遇上NER(命名实体识别):双向LSTM,条件随机场(CRF),层叠Stack LSTM, 字母嵌入
【深度学习实战】pytorch中如何处理RNN输入变长序列padding
【机器学习基本理论】详解最大后验概率估计(MAP)的理解
欢迎关注公众号学习交流~
贝尔曼方程动态规划python,【强化学习】马尔科夫决策过程之Bellman Equation(贝尔曼方程)...相关推荐
- 深度强化学习-马尔科夫决策过程和表格型方法
深度强化学习-马尔科夫决策过程和表格型方法-笔记(二)_wield_jjz的博客-CSDN博客 深度强化学习2--马尔科夫决策过程(MDP)_谢宜廷的博客-CSDN博客 (零基础可以看懂)强化学习中的 ...
- 强化学习 马尔科夫决策过程(MDP)
1. 强化学习引入MDP的原因 强化学习的环境的状态转化模型,它可以表示为一个概率模型,即在状态下采取动作a,转到下一个状态s′的概率,表示为 如果按照真实的环境转化过程看,转化到下一个状态s′的概率 ...
- 强化学习——马尔科夫决策过程 MDP
马尔可夫决策过程是强化学习里面的一个基本框架. 马尔可夫过程.马尔可夫反馈过程是马尔可夫决策过程的基础,所以本博客将会一并介绍. 文章目录 1. 马尔科夫过程 Markov Process,MP 1. ...
- 【机器学习】强化学习的概念及马尔科夫决策
系列文章目录 第十八章 Python 机器学习入门之强化学习 目录 系列文章目录 前言 一.什么是强化学习? 二.强化学习算法的示例:火星探测器 三.强化学习的回报及折扣因子 四. 强化学习中的策略 ...
- 强化学习(part2)--马尔科夫决策
学习笔记,仅供参考,有错必纠 文章目录 马尔科夫决策 马尔科夫决策要求 马尔科夫决策过程由5个元素构成 状态转移过程 状态价值函数 最优价值函数 Bellman方程 马尔科夫决策 马尔科夫决策要求 能 ...
- 用Python中的马尔科夫链进行营销渠道归因
用Python中的马尔科夫链进行营销渠道归因 --第一部分:"更简单 "的方法 任何积极开展营销活动的企业都应该对确定哪些营销渠道推动了实际转化率感兴趣.投资回报率(ROI)是一个 ...
- 马氏系列(马尔科夫过程、马尔科夫决策、隐马尔科夫模型)
马尔科夫过程 马尔可夫链就是这样一个任性的过程,它将来的状态分布只取决于现在,跟过去无关! 具体内容参见:https://zhuanlan.zhihu.com/p/26453269 马尔科夫决策 也是 ...
- python做马尔科夫模型预测法_李航《统计学习方法》第十章——用Python实现隐马尔科夫模型...
相关文章: 李航<统计学习方法>第二章--用Python实现感知器模型(MNIST数据集) 李航<统计学习方法>第三章--用Python实现KNN算法(MNIST数据集) 李航 ...
- 动态规划:高阶马尔科夫模型
1. 综述 已知问题规模为n的前提A,求解一个未知解B.(我们用An表示"问题规模为n的已知条件") 此时,如果把问题规模降到0,即已知A0,可以得到A0->B. 如果从A0 ...
最新文章
- Boost:自动索引允许的选项
- 网站服务器在境外境内怎么维护,涉黄网站服务器移至境外 境内维护人员将受制裁...
- java面试题总结(三)----本文都是笔试题,值得学习
- java给xml加入值,怎么用java读取XML文件里的值并加入jsp页面中的下拉列表中
- java 获取键盘点击_Java中获取键盘输入值的三种方法介绍
- (1)numpy.power
- 《艾恩ASP文件上传类》开发和使用总结
- android刷步工具,公益步数刷步助手
- Java 实现 POS 打印机无驱打印
- iphone4屏幕各部分尺寸
- 互联网常见域名后缀含义
- java基于springboot+vue校园电动自行车管理系统
- 怎么删除feed php,怎样关闭或删除WordPress程序默认的RSS feed功能
- keras的net中使用tensorflow函数, AttributeError: ‘NoneType‘ object has no attribute ‘_inbound_nodes‘
- sql语句中带有中文怎么办
- Box2D和Chipmunk
- 时间序列预测(2):AI助力精准气象和海洋预测
- Guitar Pro8最新五线谱转六线谱软件
- linux电源管理子系统,电源管理子系统
- 苹果手机清灰_手机清灰音频