当前位置: 首页 > news >正文

第五篇:强化学习基础之马尔科夫决策过程

你好,我是zhenguo(郭震)

今天总结强化学习第五篇:马尔科夫决策过程

基础

马尔科夫决策过程(MDP)是强化学习的基础之一。下面统一称为:MDP

MDP提供了描述序贯决策问题的数学框架。

它将决策问题建模为:

状态动作转移概率奖励的组合,并通过优化累积奖励的目标来找到最优的决策策略。

详细来说,MDP包含以下要素:

  • 状态(State):系统或环境可能处于的不同状态。

  • 动作(Action):在每个状态下可选的决策或行动。

  • 转移概率(Transition Probability):在执行某个动作后,系统从一个状态转移到另一个状态的概率分布。

  • 奖励(Reward):在每个状态执行某个动作后获得的即时奖励。

  • 策略(Policy):根据当前状态选择动作的策略。

再看迷宫游戏

之前文章,我已经拿着迷宫例子详细阐述过一遍上面的这些概念。

"迷宫问题"是MDP的经典案例。下面我们拿着此案例,再深入理解下这些基础概念。

假设我们有一个迷宫,智能体要在迷宫中找到一个宝藏。

abb4c13e0465e0d305ce78d4158f9ac1.png

迷宫可以表示为一个二维网格,每个格子可以是墙壁(不可通过)或空地(可通过)。智能体可以采取四个动作:向上、向下、向左和向右移动。目标是找到宝藏,同时避免碰到墙壁。

现在,逐一解释下MDP的这些要素。

状态(State)

在这个例子中,状态是智能体所处的位置坐标,即迷宫中的某个格子。

例如,可以使用(x, y)坐标来表示状态,其中xy是迷宫中某个格子的行和列索引。

动作(Action)

动作是智能体在某个状态下可以采取的行动,即向上、向下、向左或向右移动。

可以使用符号(U,D,L,R)来表示相应的动作。

转移概率(Transition Probability)

转移概率描述在某个状态下执行某个动作后,智能体转移到下一个状态的概率分布。

在迷宫游戏中,转移概率是确定性的,因为智能体在执行一个动作后会准确地移动到下一个状态。

例如,如果智能体在状态(x, y)执行向上的动作,那么下一个状态将是(x, y-1),转移概率为1。

奖励(Reward)

奖励是智能体在执行某个动作后所获得的即时反馈。

在迷宫游戏中,可以设置以下奖励机制:

当智能体移动到宝藏位置时,获得正奖励(例如+10)。

当智能体移动到墙壁位置时,获得负奖励(例如-5)。

在其他情况下,获得较小的负奖励(例如-1),以鼓励尽快找到宝藏。

公式化表达

下面,我们尝试将这个例子使用公式化表达。

状态(State)

状态可以表示为一个二维坐标 (x, y),其中 x 表示迷宫的行索引,y 表示迷宫的列索引。

假设迷宫的大小为 N × M,则状态集合为

动作(Action)

动作集合为 ,分别代表向上、向下、向左和向右移动。

转移概率(Transition Probability)

由于在迷宫中移动是确定性的,转移概率可以表示为函数

其中 表示在状态 s 下执行动作 a 后转移到状态 s' 的概率。

根据迷宫规则,如果智能体在状态 执行动作 a,那么下一个状态 s' 可以根据动作 a 来计算,例如:

  • 如果 ,则

  • 如果 ,则

  • 如果 ,则

  • 如果 ,则

注意,在边界情况下,如果智能体试图移动到迷宫之外的位置或者移动到墙壁位置,转移概率为0。

奖励(Reward)

奖励函数可以表示为函数 ,其中 表示在状态 s 下执行动作 a 后转移到状态 `s'`` 的即时奖励

根据迷宫的设定,定义如下奖励:

  • 如果 是宝藏位置,则

  • 如果 是墙壁位置,则

  • 否则,

这篇文章我想重点阐述清楚MDP的这些核心要素,它们是强化学习的根基,这些你一定要理解。

下一篇介绍:MDP的决策方法

你的点赞和转发,给我更新增加更大动力,感谢你的支持。

http://www.lryc.cn/news/89405.html

相关文章:

  • Oracle面试题
  • 用Vue写教务系统学生管理
  • 专门用于管理企业与自己客户之间所有信息的客户管理系统
  • (转载)基于多层编码遗传算法的车间调度算法(matlab实现)
  • Redis的常用数据结构之哈希类型
  • 计算机组成原理-存储系统-缓存存储器(Cache)
  • 打开c语言生成exe文件,出现闪退的解决方法
  • 算法基础学习笔记——⑩DFS与BFS\树与图
  • chatgpt赋能python:Python中可迭代对象的介绍
  • 报表控件FastReport使用指南——如何打开WebP格式的图片
  • 【鲁棒、状态估计】用于电力系统动态状态估计的鲁棒迭代扩展卡尔曼滤波器研究(Matlab代码实现)
  • 整理6个超好用的在线编辑器!
  • ArcGIS10.8下载及安装教程(附安装步骤)
  • AI智能照片编辑:AI Photo for Mac
  • Tuxera for Mac2023中文版读写硬盘U盘工具
  • 项目遇到的实际需求: java从信任所有证书到对server证书进行校验
  • 使用JS来实现轮播图的效果
  • Springboot +spring security,自定义认证和授权异常处理器
  • Dockerfile(1) - FROM 指令详解
  • 【嵌入式Linux】源码菜单配置 | 编译 | 菜单配置的实现 | 源码编译的实现
  • python自动化爬虫实战
  • LVGL-最新版本及其版本定义标准
  • ORB_SLAM2算法中如何计算右目和左目两个特征点的是否匹配?
  • Android 12.0系统Settings主页去掉搜索框
  • 电脑数据丢失如何恢复
  • 大数据分析案例-基于决策树算法构建世界杯比赛预测模型
  • Python 图形界面框架 PyQt5 使用指南
  • 代码随想录算法训练营第四十二天 | 二维dp数组01背包, 力扣 416. 分割等和子集
  • 【1110. 删点成林】
  • 第三章 JVM内存概述