马尔科夫决策过程及表格型方法

简介: 马尔科夫决策过程及表格型方法

一、马尔科夫属性

马尔可夫属性(Markov property)是概率论中的一个概念。意思是当在一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态;其实也就是一句话,这个事件的状态的下一秒变化是由这个状态决定,和以前没关系。

二、马尔科夫链

马尔可夫链是一组具有马尔可夫性质的离散随机变量的集合

他是一组概率转换的一组集合。其具有马尔科夫性质、存在离散指数集和状态空间的随机过程。如下面:

其马尔科夫链就是从这个图有四个状态,s1,s2,s3,s4这个相互转移。可以从任意状态开始,比如s1

  • s1有0.1概率继续s1,有0.7概率变成s4, 0.2概率变成s2
    其他依次类似
    因此在数学中我们可以构建状态转移矩阵。

    有状态转移矩阵去描述到其他节点概率

三、马尔科夫奖励过程

这个过程就是在原来马尔科夫链上加上一个奖励矩阵。也就是在上述所说的,我们四个过程,如果说我们这个过程到达s4节点就比较好我们就奖励他10个值。到达s1就奖励5即:[5,0,0,10]

我们在加上奖励之后,这个马尔科夫链就将会趋向于s1和s4了

四、马尔可夫决策过程(MDP)

在前面三种定义介绍之后,我们知道强化学习这是一个行为学习,所以我们要应该根据信息去做一些事情。因此我们就该加上一个行为,

在MDP中,我们为系统增加一个行为(action)变量 A t AtAt 与一个“奖励”(reward)变量 R ( t ) R(t)R(t) 。其中 A ( t ) A(t)A(t)代表了我们“主观能动性”的部分,相当于系统的“输入”;而 R ( t ) R(t)R(t) 代表着在 A ( t ) A(t)A(t)时刻我们采取的行动带来的回报,相当于系统的“输出”。

五、MDP

当我们定义了状态、动作、奖励等要素,并确定它们之间的转移关系具有马尔可夫性质时,就可以定义一个MDP。MDP由四元组而后面根据学习目标,我们可能会加上一个衰减因子的(在后文中介绍)< S , A , P , R > <S,A,P,R><S,A,P,R>即:

s:status(状态)

A:action(动作)

R:reward(奖励)

P:probability(状态转移)

根据图中人物小人,再根据每一刻状态时候,人物小人就会做出一定的决策,而每一刻,熊还是人他们都有不同行为概率的。我们就可把它变成树结构:

根据图片中结果,我们可以定义一个价值函数V去表示好与坏。

再知道他这个是好还是坏的时候,我们就可以记录下来之后,知道什么样的状态做什么样的事情了。我们把它用Q函数去表示。即:状态–动作值

1)Q-table

我们知道这个训练好的表格之后,这个表格就像小人的生活准则一样,遇到什么样的情况,记录之后查询,做出选择。他指导我们每一个行为动作。

2)折扣因子

在我们有的时候训练目标不同情况下,比如下棋过程, 训练迭代过程特别大,目标有点远,这样下去可能无数迭代,所以我们就加入一个折扣因子,能够加快我们步骤。

而在简单走简单迷宫时:迷宫比较小,我们就不需要加入,目标很近没必要加入了。

而我们的折扣因子一般在0----1之间的。因为我们要活在当下啊。赖以当情况学习。

3)时序差分(Temporal Difference):

一种Q函数(Q值)的更新方式,也就是可以拿下一步的 Q 值 ,公式是:

4)SARSA算法:

一种更新前一时刻状态的单步更新的强化学习算法,也是一种on-policy策略。该算法由于每次更新值函数需要知道前一步的状态(state),前一步的动作(action)、奖励(reward)、当前状态(state)、将要执行的动作(action),即 这几个值,所以被称为SARSA算法。agent每进行一次循环,都会用

( S ( t ) , A ( t ) , R ( t + 1 ) , A ( t + 1 ) ) ( S(t), A(t), R(t+1), A(t+1) )(S(t),A(t),R(t+1),A(t+1)) 来对于Q值更新

本文后面还不完整,还需继续更新,感谢理解

最后。 文章中如有不足之处,请务必指出,一定迅速改正。谢谢

相关文章
|
2月前
|
Ubuntu 芯片 Windows
掌握timedatectl命令:Ubuntu 系统时间管理指南
掌握timedatectl命令:Ubuntu 系统时间管理指南
796 121
|
Linux API Windows
linux系统中利用QT实现蓝牙功能的方法
linux系统中利用QT实现蓝牙功能的方法
1243 0
|
Ubuntu Linux
Linux Ubuntu 20.04 LTS 解决无法输入中文 输入法问题
Linux Ubuntu 20.04 LTS 解决无法输入中文 输入法问题
5496 0
|
9月前
|
Ubuntu Linux 定位技术
在Ubuntu 20.04系统安装Matlab R2021a步骤
希望你可以充分享受这场旅行,从无知的迷雾中找到通向智慧的路。好好装备你的 Linux 旅行箱吧,因为还有很多其他的知识世界等待你去探索和征服。在知识的海洋里,只有勇敢的探索者才能找到自己的道路。快乐旅行!
945 23
C#WPF 图片在显示时没有问题,但在运行时图片显示不出来的解决
选中项目,点击右上角的显示全部文件按钮,会将默认隐藏的文件显示出来,选中所需图片,右键,添加到项目,然后选择图片查看属性,生成操作选择resource。完毕。本人目前的解决方案。
1116 41
C#WPF 图片在显示时没有问题,但在运行时图片显示不出来的解决
|
安全 NoSQL Linux
深入探索Linux命令pldd:用途、原理与最佳实践
`pldd`是Linux下用于显示进程加载的动态链接库的工具,非标准内核组件,但对调试和分析至关重要。通过读取`/proc`目录下的信息,它列出进程依赖的`.so`文件,提供实时视图。常用选项包括`-v`(详细信息)、`-p`(按PID查看)和`-n`(按进程名查看)。使用时注意权限、进程状态及系统兼容性。结合其他工具使用,可增强系统诊断能力。
|
传感器 数据可视化 机器人
Nvidia Isaac Sim图编程OmniGraph 入门教程 2024(6)
本文是Nvidia Isaac Sim图编程OmniGraph的入门教程,介绍了OmniGraph的概念、图的分类、以及如何利用ActionGraph创建可视化编程流程来控制仿真中的机器人动作和物体跟随,包括键盘控制小车的流程分析、Graph的创建、节点添加与连接,以及测试和Python实现方法。
1640 0
|
算法 数据可视化 机器人
ROS2教程01 ROS2介绍
本文是ROS2(机器人操作系统的下一代)的介绍教程,内容包括ROS2的诞生背景、核心功能、特点、框架以及与ROS1的比较。文章涵盖了ROS2的通信系统、框架和工具、生态系统、全球性社区支持、完全开源、跨平台特性、多机协同能力、实时系统支持和更强的稳定性。此外,还提供了ROS2架构的详细介绍资源链接,适合对ROS2感兴趣的读者学习和了解。
2739 1
|
Ubuntu Linux Python
UserWarning: Glyph 27668 (\N{CJK UNIFIED IDEOGRAPH-6C14}) missing from current font.
UserWarning: Glyph 27668 (\N{CJK UNIFIED IDEOGRAPH-6C14}) missing from current font.
1361 2
|
机器学习/深度学习 数据采集 人工智能
数据工作中的自动化与AI融合实践
【8月更文第13天】随着大数据和人工智能(AI)技术的发展,数据处理和分析变得越来越重要。本文将探讨如何通过自动化工具和AI技术来优化数据处理流程,包括数据清洗、特征工程、模型训练以及结果可视化等步骤。我们将使用Python编程语言及其相关库(如Pandas、Scikit-learn和TensorFlow)作为实现手段。
972 0