从马尔可夫奖励过程到马尔可夫决策到强化学习【01/2】

一、说明

关于马尔可夫过程,如何将马尔可夫决策转化成决策依据,这里介绍的基本的思想路径,为读者将来设计和应用决策模型提供理论上的参考。

这是了解强化学习的一系列基础文章的后续文章。如果您有兴趣了解强化学习,请查看此处。

二、马尔可夫过程

        让我们尝试通过一个简单的例子来理解马尔可夫过程。(顺便说一句,我真的希望印度能赢得世界杯!)

        好吧,回到这个例子,假设下表代表了印度板球队在世界杯比赛中的历史表现。

|         | Winning | Losing | Drawing |
|---------|---------|--------|---------|
| Winning | 0.6     | 0.1    | 0.3     |
| Losing  | 0.3     | 0.4    | 0.3     |
| Drawing | 0.4     | 0.2    | 0.4     |

        注意:以上表格是转移矩阵,指把当前状态向量输入后,输出预测出可能的结果向量。 

        这里有 3 种可能的状态:(获胜、失败和平局)。现在,让我们想象一下球队目前的状态是“胜利”。使用上表中的转移概率:

  • 赢得下一场比赛的概率 = 0.6
  • 输掉下一场比赛的概率 = 0.1
  • 打平下一场比赛的概率 = 0.3

        如果球队目前处于“获胜”状态,并且我们想要预测两场比赛后的状态,我们可以连续应用这些概率。

        一场比赛后:

  • 获胜概率 = 0.6
  • 失败的概率 = 0.1
  • 打平概率 = 0.3

        两场比赛后:

  • 获胜概率 = (0.6 * 0.6) + (0.1 * 0.3) + (0.3 * 0.4) = 0.36 + 0.03 + 0.12 = 0.51
  • 失败概率 = (0.6 * 0.1) + (0.1 * 0.4) + (0.3 * 0.2) = 0.06 + 0.04 + 0.06 = 0.16
  • 打平概率 = (0.6 * 0.3) + (0.1 * 0.3) + (0.3 * 0.4) = 0.18 + 0.03 + 0.12 = 0.33

        因此,在两场比赛之后,如果球队以“获胜”状态开始,则他们仍有 51% 的机会获胜,16% 的机会输球,33% 的机会平局。

        这个简单的马尔可夫过程示例演示了如何根据板球队的历史表现概率对锦标赛中板球队比赛的潜在结果进行建模,从而帮助根据当前状态预测其未来状态。

        因此,这构成了随机强化学习问题的基础,我们可以使用马尔可夫决策过程对环境进行建模。

三、马尔可夫奖励过程

        现在,我们了解了马尔可夫过程,马尔可夫奖励过程是一个马尔可夫过程,我们可以将奖励与马尔可夫过程的状态转换联系起来,但不涉及决策或行动。马尔可夫奖励过程的关键组成部分是:

状态、转移概率、奖励、折扣因子

        折扣系数 (γ):

  • 代表未来奖励相对于即时奖励的重要性。
  • 有助于在价值评估中权衡未来奖励。

        让我们继续前面的例子来了解这个马尔可夫过程的价值函数。我们假设状态之间转换的奖励是:

|         | Winning | Losing | Drawing |
|---------|---------|--------|---------|
| Winning | +10     | -5     | 0       |
| Losing  | +8      | 0      | +2      |
| Drawing | +5      | -3     | 0       |

        状态的价值函数使用以下公式计算:

        MRP 的价值函数计算

        其中γ 表示折扣因子 ,s' 表示下一个状态,s 表示当前状态。

        上面的方程被称为贝尔曼方程,它可以帮助我们迭代计算每个状态的价值函数,提供马尔可夫奖励过程中从不同状态开始的预期累积奖励的估计。

        马尔可夫决策过程

        马尔可夫决策过程是马尔可夫奖励过程+行动。该流程的主要组成部分是:

{S, A, P, R, γ}

        其中马尔可夫决策过程成分之上的附加成分是与每个状态转换相关的又名动作。

四、马尔可夫决策过程中的策略

        在马尔可夫决策过程(MDP)中,策略规定了代理在不同状态下选择操作的策略或规则。策略定义代理的行为,并通过指定代理在给定状态下应采取的操作来指导决策。

3.1 保单类型

        确定性策略 (π):

  • 确定性策略为每个状态选择特定的操作。
  • 它将每个状态映射到单个操作。
  • 示例:在状态s中,策略可能指定“执行操作a 1​”。

        随机策略 (π):

  • 随机策略提供每个状态的操作的概率分布。
  • 它指定在一个状态中选择每个可能动作的概率。
  • 示例:在状态s中,策略可能指示“以 0.6 的概率采取行动 1​,0.3 的概率采取行动 2​,以0.1的概率采取行动 3​” 

        在州 's' 采取行动 'a' 的政策

        因此,对于给定的策略 (π),计算与状态相关的价值函数的贝尔曼方程可以表示为:

3.2 政策特点

  • 探索与利用:策略在探索(尝试不同的操作来收集信息)和利用(利用已知的操作以获得即时奖励)之间取得平衡。
  • 最优性:最优策略随着时间的推移最大化预期累积奖励。

最优策略 π*

  • 状态价值:根据引导智能体走向更高价值状态(从长远来看会带来更高奖励的状态)的能力来评估策略。

五、马尔可夫决策过程中的政策改进和评估

        让我们考虑一个简单的网格世界场景来说明马尔可夫决策过程 (MDP) 中的策略评估和策略改进。

        想象一个代理在 3x3 网格世界中导航。代理可以向上、向下、向左或向右移动,并且每一步都会收到 -1 的奖励,直到到达最终状态,它会收到 +10 的奖励。

5.1 政策评估

  1. 设置:
  • 考虑代理在网格中随机移动的初始策略。

2.价值迭代方程(策略评估):

  • 价值函数V ( s )估计当前策略下每个状态的预期累积奖励。
  • V ( s )的贝尔曼期望方程为:

V ( s ) = Σ(a) π ( a ∣ s ) Σ( s ′, r) ​p ( s ′, r ∣ s , a )[ r + γ ⋅ V ( s ′)]

在哪里:

  • π ( a ∣ s ) 是根据策略在状态s下采取动作a的概率。
  • p ( s ', r ∣ s , a ) 是在状态 s 中采取动作 a 时,以奖励r转移到状态'的概率。
  • γ是折扣因子。

3、迭代:

  • 迭代所有状态,根据贝尔曼方程更新值估计,直到收敛。

5.2 政策改进

有多种技术和算法可用于马尔可夫决策过程 (MDP) 中强化学习的策略改进。这些方法的重点是增强代理的策略,以随着时间的推移实现更高的累积奖励。

贪心策略改进

  • 方法:选择在每个状态下最大化价值函数的行动。
  • 流程:根据当前价值函数更新策略以支持具有最高估计值的行动。
  • 目标:旨在通过偏向看似最有回报的行动,使政策更具剥削性。

5.3 政策迭代:

  • 方法:政策评估和政策改进步骤交替进行。
  • 流程:迭代评估当前策略并根据评估进行更新。
  • 目标:通过基于价值估计迭代细化策略,努力收敛到最优策略。

5.4 值迭代:

  • 方法:使用贝尔曼最优方程通过迭代更新确定价值函数。
  • 过程:通过重复应用贝尔曼方程直到收敛来计算每个状态的值估计。
  • 目标:专注于获得最优价值函数,以便根据这些估计来改进政策。

        除了这些技术之外,还有基于 Q 的学习、蒙特卡罗策略改进和 Actor-Critic 方法来改进策略,我们将在另一篇文章中讨论这些方法。

六、可观察和部分可观察马尔可夫过程

        可观察马尔可夫决策过程(MDP)是强化学习中的一个场景,其中代理在决策过程中可以完全访问环境的当前状态。简单来说:

  • 代理确切地知道环境中每一时刻发生的事情。
  • 它具有有关当前情况的清晰且完整的信息。
  • 决策仅依赖于当前状态,不需要过去的额外信息。
  • 这种类型的 MDP 是理想化的,代表代理的观察完美反映环境状态的场景,允许基于准确的信息直接做出决策。

        在部分可观察马尔可夫决策过程(POMDP)中,代理缺乏对环境状态的完整和直接访问。相反,它收到的观察结果不明确且不完整,无法完全揭示真实状态。这种不确定性给决策带来了挑战,因为智能体必须根据观察和过去的行动维持对可能状态的信念。

        关键点:

  • 信息不完整:代理缺乏有关环境状态的完整详细信息。
  • 不确定的观察结果:收到的观察结果没有精确地指定状态,从而导致模糊性。
  • 信念空间:代理根据观察到的信息维护可能状态的概率

        在 POMDP 中工作:

  • 信念更新:使用观察和过去的知识不断更新关于可能状态的信念。
  • 政策制定:制定考虑不确定性的策略,以根据对潜在状态的信念做出决策。

        希望到目前为止您已经对马尔可夫过程、价值函数有了基本的了解,并对与马尔可夫过程相关的策略有了直观的了解。

参考资料:

机器学习5:关于期望的深入讨论_对一个概率分布求期望有什么

机器学习系列4:期望到底是个啥?_机器学习中的期望乐观度 

回到未来:使用马尔可夫转移矩阵分析时间序列数据_马尔科夫转移概率矩阵应用案例 

 @souptik.reach.095。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

huggingface的tokenizer解读

文章目录 前言一、huggingface的tokenizer含义1、含义2、整体概括 二、加载lmsys/vicuna-7b-v1.5模型的tokenizer三、调用tokernizer方法四、字符串的tokens应用1、tokenizer应用2、tokenizer进行token分词(tokenizer.tokenize)3、tokens转模型识别ids(tokenizer.convert_token…

STM32F407-14.3.10-表73具有有断路功能的互补通道OCx和OCxN的输出控制位-00x10

如上表所示,MOE0,OSSI0,CCxE1,CCxNE0时,OCx与OCxN的输出状态取决于GPIO端口上下拉状态。 ---------------------------------------------------------------------------------------------------------------------…

Python 中的运算符介绍(1)

算数运算符 常见的% 、//、/ 用法 赋值运算符 赋值运算:将等号右边赋值给等号左边 常见场景: 比较运算符 代码解析: 逻辑运算符 位运算符(了解) 三目运算符 身份证运算符 成员运算符

考研后SpringBoot复习2—容器底层相关注解

考研后SpringBoot复习2 SpringBoot底层注解学习 与容器功能相关的注解与springboot的底层原理密切相关 组件添加注解configuration Spring Ioc容器部分回顾 包括在配置中注册,开启包扫描和注解驱动开发等需要在进行重新的学习回顾 实例 package com.dzu.boot;imp…

Python装饰器的专业解释

装饰器,其实是用到了闭包的原理来进行操作的。 单个装饰器: 以下是一个简单的例子: def outer(func):print("OUTER enter ...")def wrapper(*args, **kwargs):print("调用之前......")result func(*args, **kwargs)p…

【Vue2+3入门到实战】(17)VUE之VueCli脚手架自定认创建项目、ESlint代码规范与修复、 ESlint自动修正插件的使用 详细示例

目录 一、本节内容二、VueCli 自定义创建项目三、ESlint代码规范及手动修复1.JavaScript Standard Style 规范说明2.代码规范错误3.手动修正 四、通过eslint插件来实现自动修正 一、本节内容 VueCli脚手架自定认创建项目ESlint代码规范与修复ESlint自动修正插件 二、VueCli 自…

FA模板制作流程

1、FA模板制作的流程(完整复制模板制作) 总结: FA完整复制云桌面模板流程: 1、安装一个全新的Windows,挂载并安装tools 2、关闭防火墙、启动administrator本地超管用户 3、挂载FusionAccess_WindowsDesktop_Instal…

C/C++面向对象(OOP)编程-回调函数详解(回调函数、异步编程、函数指针、)

本文主要介绍回调函数的使用,包括函数指针、异步回调编程、主要通过详细的例子来指导在异步编程和事件编程中如何使用回调函数来实现。 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:C/C精进之路 &…

黑马程序员SSM框架-SpringBoot

视频连接:SpringBoot-01-SpringBoot工程入门案例开发步骤_哔哩哔哩_bilibili SpringBoot简介 入门程序 也可以基于官网创建项目。 SpringBoot项目快速启动 下面的插件将项目运行所需的依赖jar包全部加入到了最终运行的jar包中,并将入口程序指定。 Spri…

【网络面试(2)】DNS原理-域名和IP地址的查询转换

从上一篇博客我们得知浏览器是如何生成了HTTP消息了,但是浏览器作为应用程序,是不具备向网络中发送请求的能力,而是需要委托给操作系统的内核协议栈来发送请求。在委托协议栈之前,浏览器还要做的一件事情就是将域名转换为IP地址。…

java进阶(三)

IO与网络编程 3 输入输出流IO3.1 基础定义3.2 IO框架3.3 读取字节输入流-InputStream3.3.1 InputStream.read3.3.2 FileInputStream类说明 3.4读取字符输入流Reader3.4.1 Reader.read3.4.2 FileReader类说明 3.5 字节输出流OutputStream3.5.1 OutputStream.write3.5.2 FileOutp…

nodejs微信小程序+python+PHP特困救助供养信息管理系统-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

分库分表之Mycat应用学习四

4 分片策略详解 分片的目标是将大量数据和访问请求均匀分布在多个节点上,通过这种方式提升数 据服务的存储和负载能力。 4.1 Mycat 分片策略详解 总体上分为连续分片和离散分片,还有一种是连续分片和离散分片的结合,例如先 范围后取模。 …

基于AT89C51单片机可做实物的温度烟雾火灾报警设计

点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/88658141?spm1001.2014.3001.5503 C 源码仿真图毕业设计实物制作步骤02 摘要 随着现代家庭用火、用电量的增加,家庭火灾发生的频率越来越高。火灾报警…

浅学lombok

Lombok(Project Lombok)是一个用于 Java 编程语言的开源库,旨在减少 Java 代码中的冗余和样板代码,提高开发人员的生产力。它通过使用注解来自动生成 Java 类的常见方法和代码,从而使开发人员能够编写更简洁、更具可读…

ColibriSM v1.4.2 已注册– 仿脸书类社交网络PHP源码

ColibriSM:当代社交网络平台的崛起 一、开篇与概述 在信息时代的浪潮中,社交媒体成为了人们日常生活中不可或缺的一部分。ColibriSM,作为一个仿照脸书(Facebook)、推特(Twitter)和照片墙&#…

WPF 新手指引弹窗

新手指引弹窗介绍 我们在第一次使用某个软件时,通常会有一个“新手指引”教学引导。WPF实现“新手指引”非常方便,且非常有趣。接下来我们就开始制作一个简单的”新手指引”(代码简单易懂,便于移植),引用到我们的项目中又可添加一…

Windows电脑引导损坏?按照这个教程能修复

前言 Windows系统的引导一般情况下是不会坏的,小伙伴们可以不用担心。发布这个帖子是因为要给接下来的文章做点铺垫。 关注小白很久的小伙伴应该都知道,小白的文章都讲得比较细。而且文章与文章之间的关联度其实还是蛮高的。在文章中,你会遇…

使用uni-app editor富文本组件设置富文本内容及解决@Ready先于onload执行,无法获取后端接口数据的问题

开始使用富文本组件editor时,不知如何调用相关API设置富文本内容和获取内容,本文将举例详解 目录 一.了解editor组件的常用属性及相关API 1.属性常用说明 2.富文本相关API说明 1)editorContext 2) editorContext.setContents…

【Leetcode】第 378 场周赛

文章目录 100166. 检查按位或是否存在尾随零题目题意代码 100185. 找出出现至少三次的最长特殊子字符串 I题目思路代码 100184. 找出出现至少三次的最长特殊子字符串 II 100166. 检查按位或是否存在尾随零 题目 题意 这里题目要求的是或运算,所以原数组中只需要有…