强化学习中蒙特卡罗方法

一、蒙特卡洛方法

        这里将介绍一个学习方法和发现最优策略的方法,用于估计价值函数。与前文不同,这里我们不假设完全了解环境。蒙特卡罗方法只需要经验——来自实际或模拟与环境的交互的样本序列的状态、动作和奖励。从实际经验中学习是引人注目的,因为它不需要任何关于环境动态的先验知识,但仍然可以实现最优行为。从模拟经验中学习也很强大。尽管需要一个模型,但该模型只需要生成样本转换,而不是动态规划所需的完整概率分布的所有可能转换。令人惊讶的是,在很多情况下,根据所需概率分布生成经验样本很容易,但获得分布的显式形式是不可行的。

        蒙特卡罗方法是解决强化学习问题的方法,它基于平均样本回报。为了确保可定义回报可用,在这里我们将蒙特卡罗方法仅定义为针对离散任务的方法。即我们假设经验分为回合,并且所有回合最终都会终止,无论选择什么动作。只有在完成回合后才会更改价值估计和策略。因此,蒙特卡罗方法可以是逐回合的增量,但不能是逐步(在线)的增量。术语“蒙特卡罗”通常更广泛地用于任何涉及大量随机组件的估计方法。在这里,我们将其专门用于基于平均完整回报(而不是从部分回报中学习的方法)的方法。

        蒙特卡罗方法对每个状态-动作对进行采样和平均回报,就像我们在前文对每个动作进行采样和平均奖励一样。主要的区别在于,现在有多个状态,每个状态都像不同的问题(如联想搜索或上下文)一样,而且这些不同的问题是相互关联的。也就是说,在一个状态下采取一个行动后的回报取决于在同一回合中后来采取的行动。因为所有的行动选择都在进行学习,所以从更早的状态来看,这个问题就变成了非平稳的。

        为了处理非平稳性,我们采用了通用策略迭代(GPI)的想法。在那里,我们从MDP的知识中计算值函数,在这里,我们从样本回报中学习值函数与相应的策略仍然以相同的方式相互作用以获得最优性(GPI)。与DP一样,我们首先考虑预测问题(计算固定任意策略π的vπ和qπ),然后进行政策改进,最后是控制问题以及通过GPI解决。这些来自DP的想法都被扩展到了只有样本经验可用的蒙特卡罗情况下。

二、蒙特卡洛预测

        我们首先考虑使用蒙特卡罗方法学习给定策略的状态值函数。注意,一个状态的值是期望的回报,也就是从该状态开始的期望累积未来折扣奖励。那么,从经验中估计它的一个明显方法就是简单地将该状态后观察到的回报进行平均。随着更多的回报被观察到,平均值应该收敛到期望值。这个想法是所有蒙特卡罗方法的基础。

        特别是,假设我们希望估计π策略下状态s的值vπ(s),给定一组遵循π并通过s获得的状态转移序列。在每个回合中,状态s的每次出现称为对s的一次。当然,在同一个回合中,s可能被多次;让我们称在回合中对s的第一次为s的第一次。第一次蒙特卡罗方法估计vπ(s)为在第一次s后的回报的平均值,而每次蒙特卡罗方法则将所有s后的回报进行平均。这两种蒙特卡罗方法非常相似,但具有稍微不同的理论性质。蒙特卡罗方法是研究很广泛,以程序形式显示在图1中。

图1

图1中我们使用大写字母V表示近似值函数,因为在初始化之后,它很快就会变成一个随机变量。

        对于首次使用蒙特卡罗方法和每次使用蒙特卡罗方法,当次数(或首次次数)趋于无穷时,它们都会收敛到vπ(s)。对于首次蒙特卡罗方法的情况,这一点很容易理解。在这种情况下,每次返回都是vπ(s)的独立、相同分布的估计,具有有限方差。根据大数定律,这些估计的平均值序列收敛到它们的期望值。每个平均值本身都是一个无偏估计,其误差的标准偏差为1/√n,其中n是平均值的数量。每次蒙特卡罗方法不太直观,但其估计也渐近收敛到vπ(s)(Singh和Sutton,1996)。蒙特卡罗方法的使用最好通过一个例子来说明。

三、典型例子

        21点,又称黑杰克,是一种广受欢迎的赌场牌戏。游戏的目标是在不超出21点的情况下,尽可能获得高数值的牌。所有花牌都算作10点,而一张A可以算作1点或11点。我们考虑的是每个玩家独立与庄家对抗的版本。游戏开始时,庄家和玩家都会得到两张牌。庄家的一张牌是明牌,另一张是暗牌。如果玩家立即得到21点(一张A和一张10),那么就称为“自然”,除非庄家也有自然,否则玩家获胜。如果玩家没有自然,那么他可以要求额外的牌,一张一张地要(继续要牌),直到他停止(停牌)或超过21点(爆牌)。如果他爆牌,他就输了;如果他停牌,那么就轮到庄家。庄家根据固定的策略决定是否要牌或停牌,没有选择:他在任何总和为17点或更高的情况下停牌,否则就继续要牌。如果庄家爆牌,那么玩家就赢了;否则,结果(赢、输或平局)由谁的最终总和最接近21点决定。

图2

        图2中黑杰克策略的近似状态值函数,只在20或21点停牌,通过蒙特卡洛策略评估计算。玩二十一点被自然地制定为一段有限的MDP。 每一局二十一点是一个情节。 对于赢、输和平局,分别给予+1、-1和0的奖励。 在一局比赛中所有的奖励都是零,我们不进行贴现(γ = 1);因此这些末端奖励也是回报。 玩家的行动是击打或停牌。 状态依赖于玩家的牌和庄家的明牌。 我们假设卡片是从一个无限的套牌(即替换)中发出的,因此没有必要追踪已经发出的卡片。 如果玩家持有一张可以计为11的A牌而不会爆牌,那么这张A牌被称为可用。 在这种情况下,它总是被计为11,因为把它计为1会使总和小于或等于11,在这种情况下,没有做出决定,因为显然玩家应该一直击打。 因此,玩家根据三个变量做出决定:他当前的总和(12-21),庄家的一个明牌(A-10),以及他是否持有一张可用的A牌。 这总共有200个状态。

        考虑如果在玩家总和为20或21时停牌,否则就击打的策略。 通过蒙特卡罗方法找到此策略的状态值函数,模拟许多二十一点游戏并平均每个状态后的回报。 请注意,在此任务中,相同的状态在同一情节中永远不会重复发生,因此没有首次访问和每次访问的MC方法之间的区别。 通过这种方式,我们获得了图2中所示的状态值函数的估计值。具有可用A牌的状态的估计值不太确定也不太规律,因为这些状态不太常见。 无论如何,经过50万场比赛后,价值函数被很好地逼近。

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

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

相关文章

第二十五节——Vuex--历史遗留

文档地址 Vuex 是什么? | Vuex version V4.x 一、概念 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。一个状态自管理应用包含以下几个部…

HuggingFace模型头的自定义

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 在本文中我们将介绍如何使HuggingFace的模型适应你的任务,在Pytorch中建立自定义模型头并将其连接到HF模型的主体&#…

大数据Doris(二十一):数据导入演示

文章目录 数据导入演示 一、启动zookeeper集群(三台节点都启动) 二、启动hdfs集群

LLM代码生成器的挑战【GDELT早期观察】

越来越多的研究开始对LLM大模型生成的代码的质量提出质疑,尽管科技行业不断推出越来越多的旨在增强甚至取代人类编码员的工具。 随着我们(GDELT)继续探索和评估越来越多的此类工具,以下是我们的一些早期观察结果。 在线工具推荐&a…

CCF ChinaSoft 2023 论坛巡礼|机器人大模型与具身智能挑战赛

2023年CCF中国软件大会(CCF ChinaSoft 2023)由CCF主办,CCF系统软件专委会、形式化方法专委会、软件工程专委会以及复旦大学联合承办,将于2023年12月1-3日在上海国际会议中心举行。 本次大会主题是“智能化软件创新推动数字经济与社…

银行卡转账记录p图软件,建设邮政工商招商农业,易语言回执单生成开发!

花了好长时间设计出来了这么一个软件,当然各个功能我都做了防范处理界面还有生成的图片都有对应的水印提示,做不了啥坏事,这里就是分享下原理和代码还有运行逻辑,仅此而已,软件加了一个画板,画面上面的图片…

Semantic Kernel 学习笔记1

1. 挂代理跑通openai API 2. 无需魔法跑通Azure API 下载Semantic Kernel的github代码包到本地,主要用于方便学习python->notebooks文件夹中的内容。 1. Openai API:根据上述文件夹中的.env.example示例创建.env文件,需要填写下方两个内…

计网:第一章 概述

目录 1.1计算机网络在信息时代作用 1.2因特网概述 1.3三种交换方式 1.4计算机网络的定义和分类 1.5计算机网络的性能指标 1.6计算机网络的体系结构 基于湖科大教书匠b站计算机网络教学视频以及本校课程老师ppt 整合出的计算机网络学习笔记 根据文章目录,具体内…

删除成绩(数组)

任务要求 设计程序,实现从多名学生某门课程的成绩查找到第一个不及格的成绩,删除其成绩,输出删除成绩后的多名学生这一门课程的成绩。任务保证至少存在1个学生的成绩为不及格。

Vuex:模块化Module :VOA模式

由于使用单一状态树,应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时,store 对象就有可能变得相当臃肿。 这句话的意思是,如果把所有的状态都放在/src/store/index.js中,当项目变得越来越大的时候,Vue…

推荐 8 款OCR工具(二)完结篇

双十一,又要剁手了,但我还是 推荐 8 款OCR工具! 当你感到迷茫时,不妨停下来,深呼吸,重新审视自己所处的位置和你的内心。这样的简单行为可能会帮助你找到方向。 SimpleOCR 网址:https://simple…

web:[网鼎杯 2018]Fakebook

题目 点进页面,页面显示为 查看源代码 用dirsearch扫一下,看一下有什么敏感信息泄露 扫出另一个flag.php和robots.txt,访问flag.php回显内容为空 请求robots.txt 网页提示/user.php.bak,直接访问会自动下载.bak备份文件 进行代码…

过去5年,Python生态有什么变化?

你好,我是 EarlGrey,一名双语学习者,会一点编程,目前已翻译出版《Python 无师自通》、《Python 并行编程手册》等书籍。 点击上方蓝字关注我,持续接收优质好书、高效工具和赚钱机会,一起提升认知和思维。 过…

智慧水利整体解决方案:PPT全文43页,附下载

关键词:智慧水利发展前景,智慧水利解决方案,智慧水利建设方案,智慧水利平台系统 一、智慧水利建设背景 传统水利系统存在一些问题: 现有基础感知不能满足更高标准的水利管理需求;决策调度支撑能力亟需加强…

Benchmarking Large Language Models in Retrieval-Augmented Generation-学习翻译

提检索增强生成中大型语言模型的基准测试文献学习 作者将在https://github.com/chen700564/RGB上发布本文的代码和RGB。 y ˇ \check{y} yˇ​ 文章目录 摘要IntroductionRelated workRetrieval-Augmented Generation BenchmarkRAG所需能力数据构建评估指标 ExperimentsSetting…

PCBA表面污染的分类及处理方法

NO.1 引言 在PCBA生产过程中,锡膏和助焊剂会产生残留物质,残留物中包含的有机酸和电离子,前者易腐蚀PCBA,后者会造成焊盘间短路故障。且近年来,用户对产品的清洁度要求越来越严格,PCBA清洗工艺逐渐被电子组…

国际阿里云:无法访问ECS实例中的服务的排查方法!!!

操作场景 无法访问ECS实例中的服务可能有以下原因: 可能原因 排查方案 ECS实例的安全组未开放相应端口 检查ECS实例安全组规则 ECS实例中,该服务未启动/开启或服务对应端口未被监听 检查服务状态及端口监听状态 ECS实例内防火墙设置错误 检查ECS…

Linux下的调试工具——GDB

GDB 1.什么是GDB GDB 是由 GNU 软件系统社区提供的调试工具,同 GCC 配套组成了一套完整的开发环境,GDB 是 Linux 和许多 类Unix系统的标准开发环境。 一般来说,GDB 主要能够提供以下四个方面的帮助: 启动程序,可以按…

FRI的Commit、Query以及FRI Batching内部机制

1. 引言 前序博客见: Reed-Solomon Codes及其与RISC Zero zkVM的关系RISC Zero ZKP协议中的商多项式 FRI用途: 用于证明某vector commitment是(接近)某Reed-Solomon codeword。即证明某low-degree多项式。 FRI工作原理&#…

时间序列预测实战(十二)DLinear模型实现滚动长期预测并可视化预测结果

官方论文地址->官方论文地址 官方代码地址->官方代码地址 个人修改代码->个人修改的代码已经上传CSDN免费下载 一、本文介绍 本文给大家带来是DLinear模型,DLinear是一种用于时间序列预测(TSF)的简单架构,DLinear的核…