深入理解强化学习——马尔可夫决策过程:马尔可夫决策过程和马尔可夫过程/马尔可夫奖励过程的区别

分类目录:《深入理解强化学习》总目录


《深入理解强化学习——马尔可夫决策过程》系列前面的文章讨论到的马尔可夫过程和马尔可夫奖励过程都是自发改变的随机过程,而如果有一个外界的“刺激”来共同改变这个随机过程,就有了马尔可夫决策过程(Markov Decision Process,MDP)。我们将这个来自外界的刺激称为智能体(Agent)的动作,在马尔可夫奖励过程(MRP)的基础上加入动作,就得到了马尔可夫决策过程(MDP)。马尔可夫决策过程由元组 ( S , A , P , r , γ ) (S, A, P, r, \gamma) (S,A,P,r,γ)构成,其中:

  • S S S是状态的集合
  • A A A是动作的集合
  • P P P是折扣因子
  • r ( s , a ) r(s, a) r(s,a)是奖励函数,此时奖励可以同时取决于状态 s s s和动作 a a a,在奖励函数只取决于状态 s s s时,则退化为 r ( s ) r(s) r(s)
  • P ( s ′ ∣ s , a ) P(s'|s, a) P(ss,a)是状态转移函数,表示在状态 s s s执行动作 a a a之后到达状态 s ′ s' s的概率

我们发现马尔可夫决策过程与马尔可夫奖励过程非常相像,主要区别为马尔可夫决策过程中的状态转移函数和奖励函数都比马尔可夫奖励过程多了动作作为自变量。注意,在上面马尔可夫决策过程的定义中,我们不再使用类似马尔可夫奖励过程定义中的状态转移矩阵方式,而是直接表示成了状态转移函数。这样做一是因为此时状态转移与动作也有关,变成了一个三维数组,而不再是一个矩阵(二维数组);二是因为状态转移函数更具有一般意义,例如,如果状态集合不是有限的,就无法用数组表示,但仍然可以用状态转移函数表示。我们在之后的课程学习中会遇到连续状态的马尔可夫决策过程环境,那时状态集合都不是有限的。现在我们主要关注于离散状态的马尔可夫决策过程环境,此时状态集合是有限的。

不同于马尔可夫奖励过程,在马尔可夫决策过程中,通常存在一个智能体来执行动作。例如,一艘小船在大海中随着水流自由飘荡的过程就是一个马尔可夫奖励过程,它如果凭借运气漂到了一个目的地,就能获得比较大的奖励;如果有个水手在控制着这条船往哪个方向前进,就可以主动选择前往目的地获得比较大的奖励。马尔可夫决策过程是一个与时间相关的不断进行的过程,在智能体和环境马尔可夫决策过程之间存在一个不断交互的过程。一般而言,它们之间的交互是如下图循环过程:智能体根据当前状态 S t S_t St选择动作 A t A_t At;对于状态 S t S_t St和动作 A t A_t At,马尔可夫决策过程根据奖励函数和状态转移函数得到 S t + 1 S_{t+1} St+1 R t R_t Rt并反馈给智能体。智能体的目标是最大化得到的累计奖励。智能体根据当前状态从动作的集合 A A A中选择一个动作的函数,被称为策略。
智能体与环境MDP的交互示意图

综上所述,相对于马尔可夫奖励过程,马尔可夫决策过程多了决策(决策是指动作),其他的定义与马尔可夫奖励过程的是类似的。此外,状态转移也多了一个条件,变成了 p ( s t + 1 = s ′ ∣ s t = s , a t = a ) p(s_{t+1}=s'|s_t=s, a_t=a) p(st+1=sst=s,at=a)。未来的状态不仅依赖于当前的状态,也依赖于在当前状态智能体采取的动作。马尔可夫决策过程满足条件: p ( s t + 1 ∣ s t , a t ) = p ( s t + 1 ∣ h t , a t ) p(s_{t+1}|s_t, a_t)=p(s_{t+1}|h_t, a_t) p(st+1st,at)=p(st+1ht,at)

对于奖励函数,它也多了一个当前的动作,变成了 R ( s t = s , a t = a ) = E [ r t ∣ s t = s , a t = a ] R(s_t=s, a_t=a)=E[r_t|s_t=s, a_t=a] R(st=s,at=a)=E[rtst=s,at=a]。当前的状态以及采取的动作会决定智能体在当前可能得到的奖励多少。

马尔可夫决策过程里面的状态转移与马尔可夫奖励过程以及马尔可夫过程的状态转移的差异如下图所示。马尔可夫过程/马尔可夫奖励过程的状态转移是直接决定的。比如当前状态是 s s s,那么直接通过转移概率决定下一个状态是什么。但对于马尔可夫决策过程,它的中间多了一层动作 a a a,即智能体在当前状态的时候,首先要决定采取某一种动作,这样我们会到达某一个黑色的节点。到达这个黑色的节点后,因为有一定的不确定性,所以当智能体当前状态以及智能体当前采取的动作决定过后,智能体进入未来的状态其实也是一个概率分布。在当前状态与未来状态转移过程中多了一层决策性,这是马尔可夫决策过程与之前的马尔可夫过程/马尔可夫奖励过程很不同的一点。在马尔可夫决策过程中,动作是由智能体决定的,智能体会采取动作来决定未来的状态转移。
马尔可夫决策过程与马尔可夫过程/马尔可夫奖励过程的状态转移的对比

参考文献:
[1] 张伟楠, 沈键, 俞勇. 动手学强化学习[M]. 人民邮电出版社, 2022.
[2] Richard S. Sutton, Andrew G. Barto. 强化学习(第2版)[M]. 电子工业出版社, 2019
[3] Maxim Lapan. 深度强化学习实践(原书第2版)[M]. 北京华章图文信息有限公司, 2021
[4] 王琦, 杨毅远, 江季. Easy RL:强化学习教程 [M]. 人民邮电出版社, 2022

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/172504.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【ctfshow】web入门-信息搜集-web11~20

【ctfshow】web入门-信息搜集-web11~17 web11_域名其实也可以隐藏信息,比如flag.ctfshow.com 就隐藏了一条信息web12_有时候网站上的公开信息,就是管理员常用密码web13_技术文档里面不要出现敏感信息,部署到生产环境后及时修改默认密码web14_…

构建和应用卡尔曼滤波器 (KF)--扩展卡尔曼滤波器 (EKF)

作为一名数据科学家,我们偶尔会遇到需要对趋势进行建模以预测未来值的情况。虽然人们倾向于关注基于统计或机器学习的算法,但我在这里提出一个不同的选择:卡尔曼滤波器(KF)。 1960 年代初期,Rudolf E. Kal…

低代码服务商,中小型数字化软件服务商的新出路

数字化时代大背景下,企业信息化向数字化转型成为所有企业发展的必由之路,企业在对业务模式、流程、组织形式、信息技术等方面进行重新定义时,软件必然参与价值创造的全过程,这势必驱使软件成为推动数字化转型的“引擎”&#xff0…

Motion Plan之搜索算法笔记

背景: 16-18年做过一阵子无人驾驶,那时候痴迷于移动规划;然而当时可学习的资料非常少,网上的论文也不算太多。基本就是Darpa的几十篇无人越野几次比赛的文章,基本没有成系统的文章和代码讲解实现。所以对移动规划的认…

React结合antd5实现整个表格编辑

通过react hooks 结合antd的table实现整个表格新增编辑。 引入组件依赖 import React, { useState } from react; import { Table, InputNumber, Button, Space, Input } from antd;定义数据 const originData [{ key: 1, name: 白银会员, value: 0, equity: 0, reward: 0…

PHP中isset() empty() is_null()的区别

在PHP中,isset()、empty()和is_null()是用于检查变量状态的三个不同的函数。它们分别用于检查变量是否已设置、是否为空以及是否为null。在本文中,我们将详细解释这三个函数的用法、区别和适当的使用场景。 isset(): isset()函数用于检查一个变量是否已…

MSTP配置示例

多生成树可以实现链路的防环、冗余备份、负载均衡功能 拓朴如下: 主要配置如下: [R1] interface GigabitEthernet0/0/1ip address 10.1.1.254 255.255.255.0 # interface GigabitEthernet0/0/2ip address 10.2.2.254 255.255.255.0 #[S1] interface …

如何利用CHATGPT写主题文章

问CHAT:新课标下畅言智慧课堂助力小学生量感培养,拟解决的关键问题 CHAT回复: 1. 确定智慧课堂在新课标下的正确应用方法:新课标对教育方法、内容等提出了新的要求,需要探讨如何将智慧课堂与新课标相结合,…

学习Rust适合写什么练手项目?【云驻共创】

Rust是一门备受关注的系统级编程语言,因其出色的内存安全性、高性能和并发性能而备受赞誉。对于那些希望学习和掌握Rust编程语言的人来说,练手项目是一个不可或缺的环节。通过实际动手完成项目,你可以加深对Rust语言特性和最佳实践的理解&…

JOSEF约瑟 数显电压继电器 HYJY-30-02 AC220V 导轨安装

HYJY系列电压继电器 HYJY-30-01集成电路电压继电器 HYJY-30-01A HYJY-30-01B HYJY-30-02集成电路电压继电器 HYJY-30-02A HYJY-30-02B HYJY-30-03-3集成电路电压继电器 HYJY-30-03-2 HYJY-30-03-1 HYJY-30-02电压继电器(以下简称继电器)用于发…

go语言学习之旅之Go 语言指针

学无止境,今天继续学习go语言的基础内容 Go语言支持指针,允许你在程序中直接操作变量的内存地址。指针存储了变量的内存地址,通过指针,你可以直接访问或修改该地址上的值。 学习过c语言的一定知道指针 定义指针 在Go语言中&…

基于非洲秃鹫算法优化概率神经网络PNN的分类预测 - 附代码

基于非洲秃鹫算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于非洲秃鹫算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于非洲秃鹫优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

leetcode刷题日记:205. Isomorphic Strings(同构字符串)

205. Isomorphic Strings(同构字符串) 对于同构字符串来说也就是对于字符串s与字符串t,对于 s [ i ] s[i] s[i]可以映射到 t [ i ] t[i] t[i],同时对于任意 s [ k ] s [ i ] s[k]s[i] s[k]s[i]都有 s [ k ] s[k] s[k]映射到 t [ k ] t[k] t[k],则 t [ k ] t [ i …

(swjtu西南交大)数据库实验(概念数据库设计及逻辑关系转换):音乐软件数据管理系统

一、实体型及属性 (20分) 用户(账号,用户名,密码,性别,生日,地区,手机号,个性签名,信息修改审核客服) 歌手(歌手号&#…

Linux内核mmap内存映射详解及例子实现

mmap在linux哪里? 什么是mmap? 上图说了,mmap是操作这些设备的一种方法,所谓操作设备,比如IO端口(点亮一个LED)、LCD控制器、磁盘控制器,实际上就是往设备的物理地址读写数据。 但…

猫罐头牌子哪个好一点?精选5款口碑好的猫罐头推荐!

猫罐头牌子哪个好一点?选择猫罐头是十分重要的事情,千万不能将就。因为,好的猫罐头不仅可以营养丰富,水分充足,适口性好,还能易吸收。而一旦选择错误,不仅无法达到上述效果,还可能产…

深度学习之基于YoloV5抽烟检测系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 基于YOLOv5(You Only Look Once)的抽烟检测系统可以用于实时检测图像或视频中是否存在抽烟行…

元素定位与选择器

元素定位与选择器 做元素定位时,你是否曾遇到过以下难题 元素 ID 或 class 是动态生成的你使用了 CSS选择器去定位,但开发把元素CSS样式改掉了 这种情况下通常会测试失败 Cypress 如何解决上述难题 提供了 data-* 属性,包含了下面三个定…

Android Serializable / Parcelable

Serializable 序列化,将对象转为二进制序列 Parcelable 不是序列化,属于进程间通信,不需要IO/操作,没有拷贝内存的操作, Object -> ShareMemory -> Object 不需要IO,使用内存共享等方式 Kotlin inline fun 内联函数 TCP协议将数据包拆分,进行发送,保证网络数据的可…

2024测试工程师必学系列之Jmeter(36):jmeter对图片验证码的处理

jmeter对图片验证码的处理 在web端的登录接口经常会有图片验证码的输入,而且每次登录时图片验证码都是随机的;当通过jmeter做接口登录的时候要对图片验证码进行识别出图片中的字段,然后再登录接口中使用; 通过jmeter对图片验证码…
最新文章