强化学习,第 3 部分:蒙特卡罗方法

news2024/9/25 15:27:39

在这里插入图片描述

文章目录

  • 一、介绍
  • 二、关于此文章
  • 三、无模型方法与基于模型的方法
  • 四、V函数估计
    • 4.1 基本概念
    • 4.2 V-功能
  • 五、Q 函数估计
    • 5.1 V函数概念
    • 5.2 优势
    • 5.3 Q函数
  • 六、勘探与勘探的权衡
  • 七、结论

一、介绍

   从赌场到人工智能:揭示蒙特卡罗方法在复杂环境中的强大功能
   强化学习是机器学习中的一个领域,它引入了必须在复杂环境中学习最优策略的智能体的概念。智能体从其行为中学习,这些行为在给定环境状态的情况下产生奖励。强化学习是一个困难的话题,与机器学习的其他领域有很大不同。这就是为什么只有当给定的问题无法解决时才应该使用它。

   在本文中,我们将发现蒙特卡罗算法。与标准方法相比,它们的优雅之处在于它们不需要任何有关环境动态的知识。这方面有很大的不同,因为在现实生活中,我们通常不知道状态之间所有可能的转换概率。

   注意。为了充分理解本文中包含的概念,强烈建议熟悉强化学习的主要概念以及本系列前两篇文章中介绍的策略改进方法。

二、关于此文章

   在第 1 部分中,我们介绍了强化学习的主要概念:框架、策略、值函数和贝尔曼方程。
   在第 2 部分中,我们了解了 GPI 方法,该方法旨在通过政策评估和政策改进之间的交替来找到最佳政策。
   尽管我们在第 2 部分中学到了重要的原则,但它们仅适用于动态完全已知的完美环境。当没有给出转移概率 p(s’, r | s, a) 时(大多数现实生活中的问题都是这种情况),搜索最优策略变得更加困难。

   幸运的是,强化学习中存在一些技术,可以在不使用环境动态知识的情况下优化策略。蒙特卡罗方法就是这种算法的例子。

   本文基于 Richard S. Sutton 和 Andrew G. Barto 撰写的《强化学习》一书的 Chapter 5。我非常感谢为本书的出版做出贡献的作者的努力。

   注意。本文的源代码可在 GitHub 上找到。顺便说一句,该代码生成未在 GitHub 笔记本中呈现的 Plotly 图表。如果要查看关系图,可以在本地运行笔记本或导航到存储库的结果文件夹。

   ML-medium/monte_carlo/blackjack.ipynb 在 master ·slavafive/ML-培养基
这是一个存储库,其中的机器学习算法的代码和笔记本可从我的 Medium 博客中获得。…
github.com

三、无模型方法与基于模型的方法

   在强化学习中,术语模型是指智能体用来预测环境对其行为的反应的任何内容。

   强化学习算法可分为两类:

  •    基于模型:使用模型在采取行动之前计划行动的方法。
    无模型:没有模型的方法。该算法试图学习将操作与各自的回报相关联。
    我们在上一篇文章中研究的算法是基于模型的方法的一个例子,因为智能体使用给定转移概率 p(s’, r | s, a) 的估计值。

  •    蒙特卡洛 (MC) 方法既不估计也不使用 p(s’, r | s, a),因此它们与模型无关。相反,他们从经验中学习——状态、行动和奖励的序列。通过使用给定的智能体轨迹,他们平均近似期望值并使用 GPI 来获得最佳策略。

   在本文中,我们将只关注情节任务。在MC方法的背景下,它们更容易学习,因为经验是独立于每个情节获得的。可用的剧集越多,可用于更好地近似值函数的信息就越多。

四、V函数估计

4.1 基本概念

   根据定义,状态的 v 值对应于代理从该状态开始接收的预期回报。根据代理的经验信息,我们可以平均访问该州后的所有退货。这样,计算出的平均值将表示状态的 v 值。

   获得更多关于经验的信息是非常有益的,因为我们可以计算出更多状态回报的平均值,从而提高整体近似值。

基于智能体在一集中可以多次处于同一状态的事实,存在两个版本的 MC 算法用于 V 函数估计:

   首次访问MC方法:仅考虑首次访问一个州的返回;
   每次访问 MC 方法:考虑所有访问一个州期间的返回。
在这里插入图片描述

   首次访问 MC 方法伪代码。资料来源:强化学习。引言。第二版 |理查德·萨顿(Richard S. Sutton)和安德鲁·巴托(Andrew G. Barto)
首次就诊MC算法在该领域得到了更多的研究。

   当访问次数趋于无穷大时,根据大数定律,两种方法都收敛到实数 V 函数。

   例:我们将看一个流行的赌场游戏的例子——二十一点。

   规则

   游戏的目标是在不超过 21 分的情况下获得比庄家更多的分数。规则很简单:给玩家发两张牌,庄家亮出他的一张牌。然后玩家必须做出以下两个决定之一:

   命中:玩家拿一张额外的牌,这张牌的价值被添加到玩家的分数中。如果玩家的分数大于 21,那么他们就输掉了比赛。玩家可以随心所欲地继续击球。
棍子:玩家不再拿牌,把回合传给庄家。庄家继续拿牌,直到他们获得 17 分或更多分。如果庄家的分数大于 21,则玩家赢得比赛。如果庄家的分数在 17 到 21 之间,则得分较高的人赢得比赛,而另一个人输掉比赛。如果积分相同,则有平局。
这些卡具有下表中所示的以下值:
在这里插入图片描述

二十一点卡值。最上面的一行是扑克牌,最下面一行是扑克牌的值。
A是一张特殊的游戏卡:如果总分不超过21,则算作11(在这种情况下,A称为可用);否则,A 计为 1。

状态定义

玩家在二十一点中的决定仅取决于三个因素:

玩家当前得分(12 到 21 之间);
玩家是否有可用的王牌(二进制值);
庄家对显示牌的分数(介于 2 到 11 之间)。
这就是为什么将状态集 S 声明为包含这三个变量的所有可能元组的组合是合乎逻辑的。为简单起见,我们不会担心玩家分数低于 12 的琐碎状态,因为在这种情况下,玩家击球始终是最佳状态。结果,我们只有 10 ⋅ 2 ⋅ 10 = 200。与大多数强化学习问题相比,这种状态的数量很低。对于蒙特卡罗算法,计算值函数应该相对容易。

首次访问的 MC 与二十一点中的每次访问 MC 相同,因为每个游戏状态在每一集中只能访问一次。

4.2 V-功能

下图显示了蒙特卡洛算法在策略下 5 ⋅ 10⁶ 迭代时估计的 V 函数,根据该策略,玩家只有在达到 20 分时才会坚持。
在这里插入图片描述

政策的 V 函数,根据该函数,如果玩家达到 20 分,则坚持下去。横轴表示玩家的牌数,纵轴表示庄家的第一张牌。庄家的 A 用 1 表示。
以下是我们可以做出的一些有趣的观察:

只有在达到 20 岁后才坚持的总体政策表现不佳。只有当玩家的分数为 20 或 21 时,玩家才有优势的仅有两种情况发生。例如,如果玩家有 18 张牌,并拿了另一张牌,他们很可能会超过 21(通过获得任何价值为 4 或更大的牌)并输掉游戏。
两张热图的颜色结构非常相似。然而,如果玩家的分数超过 21,可用 A 的存在会给玩家带来“第二次机会”。因此,具有可用 ace 的案例的相应 v 值高于没有可用 ace 的案例。
对于具有可用 A 的游戏,获得的 v 值不太精确。这可以通过以下事实来解释:这些情况在二十一点中发生的频率较低。一个可能的解决方案是生成更多的剧集。
从理论上讲,我们可以使用动态规划算法来估计二十一点状态,但这要困难得多。例如,假设玩家有 13 分。为了计算该状态的 v 值,我们需要从 14 到 21 点的所有转移概率,这很难使用概率公式估计,因为有太多可能的博弈组合。

五、Q 函数估计

5.1 V函数概念

在基于模型的方法中,估计的 V 函数足以找到最优策略:通过处于任何状态,我们总是可以选择一个动作,使得动作的奖励(由 p(s’, r | s, a)给出)和下一个状态的回报之和将是最大的。

在无模型方法(即 MC 情况)中,仅具有 V 函数是不够的。我们在这里错过的组件是在每个状态下选择任何操作的奖励。因此,我们不能通过采取某种行动来估计整体回报。同时,我们不能使用贝尔曼方程来建立 v 值和 q 值之间的关系:在这种情况下,我们仍然需要 p(s’, r | s, a)。

克服这个问题的一个优雅技巧是以稍微不同的角度看待问题。我们可以将所有可能的状态和动作对 (s, a) ∈ S x A 视为状态。为了找到这些状态的值,我们可以利用 MC 方法进行 V 函数估计!该 V 函数的计算将等价于原始问题中的 Q 函数估计。
在这里插入图片描述

用于估计 Q 函数的 MC 方法的思想包括计算对给定(状态、操作)对的所有访问期间的平均回报。
特别是,为了应用首次访问 MC 方法,我们可以推导出访问标准:如果访问状态 s 并在其中选择了操作 a,则访问状态-操作对 (s, a)。

5.2 优势

与我们在上一篇文章中介绍的动态规划方法相比,用于估计价值函数的蒙特卡罗方法具有显着的优势:

每个状态都是独立估计的,不依赖于其他状态的值;
更新单个状态的算法复杂性取决于剧集数,而不是状态总数。由于由我们来定义平均最终结果的集数,因此即使状态总数很高,我们也有更大的灵活性;
在这里插入图片描述

与动态规划相比,使用 MC 方法的优势之一是计算值函数的算法复杂性仅取决于集数,而不取决于状态数。
从理论上讲,在许多环境设置中,几乎不可能估计每种状态和动作的转移概率来获得环境的动态。同时,MC方法不需要这些信息,并且可以从易于生成的观察结果中优雅地学习。

让我们继续前面的二十一点示例,但这次是 Q 函数估计。

5.3 Q函数

正如我们已经知道的,二十一点中有两种可能的动作:击打和坚持。如果我们将它们添加到可能的状态中,我们将得到 200 ⋅ 2 = 400(状态、操作)对。这使得蒙特卡罗算法可以很容易地估计给定策略下的任何 Q 函数。

下图显示了随机策略的 Q 函数,其中 p(hit) = p(stick) = 0.5。
在这里插入图片描述

随机策略的 Q 函数。横轴表示玩家的牌数,纵轴表示庄家的第一张牌。庄家的 A 用 1 表示。
与前面的场景一样,有和没有可用 A 的图表彼此相似,只是可用 A 为玩家提供了更高的获胜机会。
总体 q 值最低的图表适用于在没有可用 ace 的情况下击中的动作。造成这种情况的两个因素是,首先,通过击球,玩家已经面临被破坏的风险,其次,玩家有 50% 的机会(根据我们的政策)再次击球,这大大增加了输掉比赛的机会。因此,21 个玩家点数的最后一列由所有 -1 组成,因为在所有这些情况下,玩家都会通过击球来保证输掉比赛。

六、勘探与勘探的权衡

注意。在了解了如何评估 Q 函数之后,讨论如何找到最优策略是合乎逻辑的。然而,在这样做之前,我们需要继续几个重要的概念,这些概念将帮助我们构建一个有效的算法。

目前,我们在当前的 Q 函数估计方法中面临一个主要问题:大量的总对(状态、动作)可能永远不会被访问。如果策略是确定性的,那么对于给定状态,它可能总是在以下学习迭代中贪婪地只选择一个操作。因此,我们将永远无法探索其他可能带来更高回报的(状态、行动)货币对。

如果代理只能从状态执行相同的单个操作,则策略称为确定性策略。此类策略将概率 1 分配给此操作,将 0 分配给该状态的所有其他操作。如果不满足此条件,则该策略称为随机策略。

所描述的问题是勘探和开采权衡的经典公式。一方面,我们希望利用最佳行动来获得尽可能高的回报。另一方面,我们需要探索所有可能的行动,以确定哪些行动会带来更大的回报。

这就是为什么有必要在开发和勘探之间争取适当的平衡。说到蒙特卡罗方法,有几种方法,下面将介绍其中一种。


想象一下,一个智能体在下面的迷宫中学习最佳策略。代理人的目标包括收集最大可能的回报。
在这里插入图片描述

迷宫示例。如果策略被贪婪地更新,那么代理很可能不会在 D2 暴露奖励。
代理从 A1 开始,可以在每次迭代中朝任何方向移动。终端状态位于 A3 并给出奖励 R = 1。除此之外,在 D2 处还有一个很大的奖励 R = 10,我们显然希望代理收集。同时,在C1处有一个孔。如果代理在那里,则剧集结束,奖励 R = -3 将提供给代理。踏入其他单元格会带来奖励 R = 0。

最佳策略包括在 D2 处收集奖励,然后在 A3 处导航到最终状态。不幸的是,如果勘探和开采之间的平衡没有得到适当调整,情况并非总是如此。

也就是说,如果智能体总是贪婪地选择具有最大回报的动作,那么在前几次迭代之一之后,它可能会发现路径 A1-A2-A3 是唯一的最优路径,而无需探索任何其他选项。

在另一种情况下,代理最初可以向右移动,但如果它位于 C1,则策略评估会将负状态或状态操作值分配给 C1 周围的单元格。如果策略是贪婪的或探索率非常小,那么代理将永远不会探索 D2 的奖励。

探索开始
探索更多(状态、动作)对的最简单方法之一是在每种可能的组合(状态、动作)中多次显式开始剧集,以便在极少数情况下仍能获得平均值。另一种方法包括对每个剧集的起始状态进行随机抽样,所有状态的概率均为非零。这种方法称为探索开始。

探索开始技术使(状态、动作)对的分布更加一致,并增加了在罕见环境情况下观察回报的机会。
尽管探索开始很简单,但它有一个相当大的缺点:代理与环境交互的实际数据分布可能与用于探索开始的数据分布有很大不同。因此,代理可能会根据虚幻数据分布学习最佳策略。因此,学习到的策略在实际环境中不会是最优的。

七、结论

在本文中,我们介绍了蒙特卡罗方法,这些方法在强化学习中非常有用。与上一部分讨论的策略改进算法相比,它们在不了解其动态的情况下在环境中优化策略的能力使它们适用于许多问题。

然而,我们只讨论了估计 V 函数和 Q 函数的方法,并没有详细介绍用于搜索最优策略的完整蒙特卡罗算法,因为我们必须首先解决勘探和开发之间的平衡问题。为此,我们将在下一部分中介绍ε贪婪策略,将它们与探索开始方法相结合,并对当前版本的算法进行一些改进。

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

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

相关文章

生命在于学习——Python人工智能原理(2.1)

二、机器学习 1、机器学习的定义 机器学习是指从有限的观测数据中学习出具有一般性的规律,并利用这些规律对未知数据进行预测的方法,通俗的讲,机器学习就是让计算机从数据中进行自动学习,得到某种知识。 传统的机器学习主要关注…

深度强化学习 Actor-Critic演员评论家 PPO

将策略(Policy Based)和价值(Value Based)相结合的方法:Actor-Critic算法,在强化学习领域最受欢迎的A3C算法,DDPG算法,PPO算法等都是AC框架。 一、Actor-Critic算法简介 Actor-Critic从名字上看包括两部分,演员(Actor…

Geoserver发布shp图层服务的样式控制及样式生成方式

在利用geoserver发布视频图层服务时,shp图层的样式可以在QGis文件中进行编辑;shp文件编辑后,需要导出样式文件,并在geoserver中进行注册,发布时对应shp图层文件时,需要选中对应样式,加载图层服务…

WorkPlus移动应用平台集成单点登录,实现统一门户解决方案

随着企业数字化转型的深入,移动办公已经成为企业提高工作效率和员工协作的重要途径。为了更好地管理企业移动应用,提升员工体验,简化登录流程,许多企业开始采用集成单点登录技术的企业移动应用平台,实现统一门户的目标…

实验室课程|基于SprinBoot+vue的实验室课程管理系统(源码+数据库+文档)

实验室课程管理系统 目录 基于SprinBootvue的实验室课程管理系统 一、前言 二、系统设计 三、系统功能设计 1管理员功能模块 2学生功能模块 3教师功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介…

PMP考试通关秘籍

考试大纲 考试大纲:考察维度3 个(人、过程、商业环境);更加贴近真实项目趋势;侧重点从做事到关注人;对于项目经理的软技能要求更高,匹配 PM 能力模型。 人员(42%)&…

55页PDF|人工智能通用大模型(ChatGPT)的进展、风险与应对(附下载)

👉获取方式: 😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

3D技术的应用领域

3D技术在现代科技和工业中有广泛的应用,其涵盖的领域非常广泛,从娱乐到医学,再到制造业和建筑,3D技术正在改变我们理解和互动的方式。以下是一些主要的应用领域。北京木奇移动技术有限公司,专业的软件外包开发公司&…

k8s devops实战教程+生产实践+可就业

k8s devops实战教程 简介教程涉及到内容教程获取学习教程后的收货助学群 简介 越来越多的企业应用云原生化,催生很多应用的部署方式也发生了很多变化。 从物理机部署应用过度到虚机部署应用再到应用容器化,从单应用再到服务拆分为微服务,靠人…

linux查看是否被入侵(一)

1、查看当前系统状态 [rootbastion-IDC ~]#top #一般挖矿等病毒点用CPU比较大 2、查看当前登录用户(w\who) 3、检查系统日志 检查系统错误登陆日志,统计IP重试次数 [rootbastion-IDC ~]# lastb 4、查看近期用户登录情况 [rootkvm01 ~]# last -n 5 #-n 5 表示…

element el-table表格表头某一列表头文字或者背景修改颜色

效果如下 整体代码 &#xff0c;具体方法在最下面&#xff01; <el-table v-loading"listLoading" :data"sendReceivList" element-loading-text"Loading" border fit ref"tableList" :header-cell-class-name"addClass&quo…

揭秘APP广告变现的高效秘诀:如何让你的APP更赚钱?

在数字化时代&#xff0c;APP已成为人们获取信息、娱乐休闲的重要平台。对于许多内容创作者来说&#xff0c;如何通过APP实现盈利&#xff0c;是一个亟待解决的问题。而APP广告变现项目&#xff0c;正是其中一种备受关注的盈利模式。那么&#xff0c;如何有效地利用APP广告变现…

安泰电子:功率放大器的选择方法有哪些

选择适合的功率放大器是实现电子系统中的关键步骤之一。以下是一些选择功率放大器的常用方法和考虑因素&#xff1a; 功率需求&#xff1a;首先确定你的系统需要多大的功率输出。功率输出需求通常由被驱动设备的功率要求决定。计算出所需功率后&#xff0c;选择一个具有适当功率…

绿色阅读:旧书回收,让知识循环

在快节奏的现代社会中&#xff0c;知识的获取和更新速度日新月异。然而&#xff0c;在这个信息爆炸的时代&#xff0c;我们是否曾想过&#xff0c;那些曾经陪伴我们度过无数日夜、给予我们智慧和启迪的旧书&#xff0c;在它们完成使命后&#xff0c;是否应该被遗忘在角落&#…

IdentiFace——多模态人脸识别系统,可捕捉从情绪到性别的所有信息及其潜力

1. 概述 面部识别系统的开发极大地推动了计算机视觉领域的发展。如今&#xff0c;人们正在积极开发多模态系统&#xff0c;将多种生物识别特征高效、有效地结合起来。 本文介绍了一种名为 IdentiFace 的多模态人脸识别系统。该系统利用基于 VGG-16 架构的模型&#xff0c;将人…

Go 语言安装部署(超详细版本)

在学习和使用 Go 语言时&#xff0c;正确的安装和配置是非常重要的一步。本文将介绍如何在不同操作系统上安装 Go 语言&#xff0c;并讨论一些常见的配置选项&#xff0c;帮助读者更好地了解和使用 Go 语言。无论是初学者还是有一定经验的开发者&#xff0c;都能从本文中获得有…

buuctf-相册

题目提示找到邮箱 下载是一个apk文件 他都不建议安装到手机了 我还是不找麻烦动调了吧 他说是mail,那行吧 找mail 找到就是这一段 base64 s3 notebook 这里可以看见加载了native库 所以要IDA 打开so文件 apk就是一个压缩包,直接解压就行 lib里面就有so文件 再根据熟知的…

深度剖析整型和浮点型数据在内存中的存储(C语言)

目录 整型在内存中的存储 为什么整型在内存中存储的是补码&#xff1f; 大小端字节序 为什么有大端小端&#xff1f; 浮点型家族 浮点数在内存中的存储 long long 整型在内存中的存储 整型在内存中有三种二进制表示形式&#xff1a;原码&#xff0c;反码&#xff0c;补码…

网站笔记:huggingface model memory calculator

Model Memory Utility - a Hugging Face Space by hf-accelerate 这个工具可以计算在 Hugging Face Hub上托管的大型模型训练和执行推理时所需的vRAM内存量。模型所需的最低推荐vRAM内存量表示为“最大层”的大小&#xff0c;模型的训练大约是其大小的4倍&#xff08;针对Adam…

Python-3.12.0文档解读-内置函数id()详细说明+记忆策略+常用场景+巧妙用法+综合技巧

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 详细说明 概述 参数 返回值 特性 实现细节&#xff08;CPython&#xff09; 安全…