强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

强化学习已经席卷了整个 AI 世界。从 AlphaGo 到 AlphaStar,由强化学习提供动力的 AI 智能体已经战胜了越来越多由人类主导的传统活动。通过在某一环境中对智能体行为进行优化以实现最大奖励是强化学习的关键,但是绝大多数强化学习方法需要对环境有完整的了解,而现实中这是难以实现的,基于样本的学习方法(例如蒙特卡洛)则可以解决这一痛点。本文以 21 点游戏为例,对蒙特卡洛方法进行了在强化学习中的应用进行了介绍,雷锋网 AI 科技评论编译如下。

一、引言

强化学习已经席卷了整个 AI 世界。从 AlphaGo 到 AlphaStar,由强化学习提供动力的 AI 智能体已经战胜了越来越多传统上由人类主导的活动。简而言之,这些成就通过在某一环境中对智能体行为进行优化以实现最大奖励而取得。

此前关于 GradientCrescent 的一些文章中,我们对强化学习的各基本方面进行了研究,从基础的强盗系统和基于策略的方法,到在马尔可夫环境中优化基于奖励的行为。所有这些方法都要求我们对环境有全面了解,例如,动态规划要求我们掌握所有可能发生状态转换的完整概率分布。但是,实际上,我们发现大多数系统不可能完全了解完整概率分布,并且由于复杂性、固有的不确定性或计算的局限性,不能显式地表示出概率分布。以气象学家的工作进行类比:预测天气背后涉及的因素非常之多,以至于要知道其中的确切概率几乎是不可能的。

  • GradientCrescent 相关文章阅读可参考:https://medium.com/gradientcrescent

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

图 1:你能确定飓风形成的准确概率吗?

对于这些情况,基于样本的学习方法(例如蒙特卡洛)是一种解决方案。蒙特卡洛一词通常用于描述任何依赖于随机抽样的估计方法。换句话说,我们并不假设我们了解环境,而是仅通过与环境交互获得的状态、动作和奖励的样本序列从经验中学习。这些方法通过直接观察模型在正常运行时的奖励反馈来判断其状态的平均值。有趣的是,有研究表明,即使不了解环境的动态(可以认为是状态转换的概率分布),我们仍然可以获得最佳行为来最大化奖励。

例如,考虑掷 12 个骰子得到的返回值。通过将这些滚动视为单个状态,我们可以对这些返回值进行平均以接近真正的预期返回值。随着样本数量的增加,我们越接近实际的期望返回值。

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

图 2:掷 12 个骰子 60 次的平均期望值(阿尔伯塔大学)

我忠实的读者可能对这种基于抽样的估计并不陌生,我在此前的相关文章中也对 k-bandit 系统也进行了抽样。蒙特卡洛方法不是比较不同的强盗系统,而是用来比较马尔可夫环境中的不同策略,方法是确定一个状态的值,同时遵循特定的策略直到终止。

二、蒙特卡洛方法的状态值估计

在强化学习中,蒙特卡洛方法是一种通过平均样本回报来估计模型状态值的方法。由于终端状态的需要,蒙特卡洛方法天生适用于偶发环境。由于这个限制,蒙特卡洛方法通常被认为是「离线」的,在这种情况下,所有更新都是在到达终端状态之后进行的。

一个简单的类比是在迷宫中随机导航,它的一种离线的方法是先让智能体到达终点,然后利用经验进行尝试,从而减少在迷宫中花费的时间。相反地,在线方法则是让智能体不断地修正其在迷宫中的行为,比如说当它注意到绿色走廊通向“死胡同”,即便依旧还置身迷宫中也会决定避开它们。我们将在下一篇文章中讨论在线方法。

蒙特卡洛的处理过程可以总结如下:

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?图 3:蒙特卡洛方法的状态值估计(Sutton 等人)

为了更好地了解蒙特卡洛的工作原理,请参考下面的状态转换图。每个状态转换的奖励都以黑色显示,并且采用 0.5 的贴现因子。让我们暂时搁置实际状态值,并专注于计算本轮的返回值。

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

图 4:状态转换图。状态编号以红色显示,返回值以黑色显示。

假定终端状态的返回值为 0,那么让我们从终端状态(G5)开始计算每个状态的返回值。请注意,我们已将贴现因子设置为 0.5,从而对最近的状态进行加权。

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

一般化的公式表示如下:

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

为了避免将所有返回值都保留在列表中,我们可以逐步地执行蒙特卡洛状态值的更新过程,其方程与传统的梯度下降方程有一些相似之处:

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

图 5:蒙特卡洛逐步更新过程。S 代表状态,V 代表值,G 代表返回值,而 alpha 代表步长参数。

在强化学习中,蒙特卡洛方法可以进一步分为「首次访问」和「每次访问」。简单地说,两者之间的区别在于蒙特卡洛更新之前,在一轮中可以访问一个状态的次数。「首次访问」蒙特卡洛方法将所有状态的值估计为终止前每个状态首次访问后返回值的平均值,而「每次访问」蒙特卡洛方法将终止前一个状态的 n 次访问后的返回值作为平均值。由于「首次访问」蒙特卡洛方法相对简单,我们将在本文中使用「首次访问」蒙特卡洛。

三、蒙特卡洛方法的策略控制

如果一个模型不能提供策略,那么蒙特卡洛方法也可以用来估计状态动作的值。这比仅使用状态值更有用,因为给定状态中每个动作(q)的值可使得智能体通过对未知环境的观察自动形成策略。

更正式地说,我们可以使用蒙特卡洛方法来估计 q(s, a,pi),从状态 s 开始,采取行动 a,然后遵循策略 pi 时的预期返回值。在蒙特卡洛方法保持不变的情况下,我们针对特定状态额外增加了一个动作维度。如果状态 s 被访问并且动作 A 在其中被执行,则可以认为在该轮中的该状态—动作对(s,a)被访问过。类似地,可以通过「首次访问」或「每次访问」方法来完成状态动作值估计。

像在动态规划中一样,我们可以使用广义策略迭代(GPI)从状态动作值的观察中形成策略:

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

通过交替执行策略估计和策略改进步骤,并结合探索起点以确保所有可能的动作都得到访问,我们可以为每个状态实现最佳策略。对于蒙特卡洛 GPI,这种交替通常是在每轮终止后完成的。

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?图 6:蒙特卡洛 GPI(Sutton 等人)

四、理解 21 点策略

为了更好地理解蒙特卡洛在评估不同状态值和状态动作值时的实际工作方式,让我们通过 21 点游戏逐步演示。首先,让我们定义游戏的规则和条件:

  • 我们只会和庄家对抗,而没有其他玩家参加。这使我们可以将庄家发牌视为环境的一部分。

  • 牌面数即为卡牌值。纸牌 J,K 和 Q 的价值均为 10。ace 的值可以为 1 或 11,玩家可以自主选择。

  • 双方都有两张卡。玩家的两张牌面朝上,而庄家的一张牌面朝上。

  • 目的是使手中的所有卡的总和<= 21。超过 21 则导致爆牌,而双方都为 21 则导致平局。

  • 玩家看到自己的牌和庄家的第一张牌后,玩家可以选择要牌或停牌,直到对自己的总和满意为止,之后他将停牌。

  • 然后,庄家展示第二张牌——如果两张牌之和少于 17,将继续发牌,直到达到 17,之后停牌。

让我们用 21 点游戏来演示蒙特卡洛。

1、回合 1

你取得的纸牌之和为 19,你想碰碰运气继续要牌,然后抽出了一张 3,则导致爆牌。爆牌时,庄家只有一张可见的卡,总和为 10。可以显示如下:

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

图 10:回合 1

当我们爆牌时,此回合的奖励为-1。让我们使用【智能体纸牌之和,庄家纸牌之和,是否获胜?】的格式作为前次状态相应的返回值,该格式如下:

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

本轮不太走运,让我们进行下一轮。

2、回合 2

你取得的纸牌之和为 19,这次你决定停牌。庄家取得的纸牌之和为 13,然后继续要牌,最终导致爆牌。前次状态描述如下:

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

图 7:回合 2

让我们描述下这一轮发生的状态和奖励。

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

随着本轮终止,我们现在可以使用本回合计算出的返回值来更新本轮所有状态值。假设折现系数为 1,我们只需像以前的状态转换一样,将新的奖励加到前面的结果中。由于先前状态 V(19,10,no)的返回值为 -1,因此我们计算出预期返回值并将其分配给我们的状态:

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

图 8:21 点演示的最终状态值

3、实施

让我们使用「首次访问」的蒙特卡洛方法来实现 21 点游戏,并基于 Sudharsan 等人提出的方法采用 Python 形式对游戏中所有可能的状态值(或不同的操作组合)进行学习 。和往常一样,我们的代码可以在 GradientCrescent Github上获取,链接如下:

  • https://github.com/EXJUSTICE/GradientCrescent

我们将使用 OpenAI Gym 环境来实现这一点。将环境看作是运行游戏的接口,使用最少的代码,从而让我们专注于实现强化学习。方便的是,所有收集到的关于状态、动作和奖励的信息都保存在「观察」变量中,其中这些变量是通过运行游戏积累得到的。

首先让我们导入获取和绘制结果所需的全部开发库。

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

接下来对我们的 gym 环境进行初始化,并对指导智能体行动的策略进行定义。基本上,我们会持续要牌,直至手中的纸牌之和达到 19 点或更多,然后停牌。

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

接下来,使用我们的策略为一轮游戏定义生成数据的方法。我们将有关状态、采取的行动以及行动伴随的奖励的信息进行存储。

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

最后,让我们定义「首次访问」的蒙特卡洛预测函数。首先,我们初始化一个空字典来存储当前状态值,以及另一个字典来存储所有轮游戏中每个状态的条目数。

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

对于每一轮游戏,我们都调用先前的「 generate_episode 」方法来生成有关状态值和该状态后获得的奖励的信息。我们还初始化了一个变量来存储增量返回值。接下来,我们获得该轮中访问的每个状态的奖励和当前状态值,并使用该步骤的奖励来增加我们的返回值变量。

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

回想一下,当我们执行「首次访问」的蒙特卡洛时,我们只访问单轮游戏中的单个状态。因此,我们对状态字典执行条件检查,以查看状态是否已被访问。如果满足此条件,则可以使用先前定义的蒙特卡洛状态值更新过程来计算新值,并将对该状态的观察次数增加 1。然后,对下一轮游戏重复此过程,从而最终获得平均返回值。

让我们执行程序看看我们的结果吧!

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

图 15:输出样本显示了多次 21 点游戏的状态值

输出样本显示了多次 21 点游戏的状态值。

我们可以继续观察 5000 轮游戏的蒙特卡洛,并绘制状态值分布来描述玩家和庄家的任何组合的值。

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

图 16:不同 21 点游戏组合的状态值可视化

现在让我们总结一下我们学到的知识。

  • 基于样本的学习方法使我们可以简单地通过采样来估计状态和状态动作值,而无需任何迁移动态知识。

  • 蒙特卡洛方法依赖于模型的随机抽样,观察模型返回的奖励,在正常操作期间收集信息来定义其状态的平均值。

  • 通过蒙特卡洛方法进行广义策略迭代是可行的。

  • 21 点游戏中玩家和发牌手所有可能组合的值可以通过重复的蒙特卡洛模拟来判断,从而为优化策略开辟了道路。

对蒙特卡洛方法的介绍到此结束。在下一篇文章中,我将介绍以时序差分学习的形式继续进行基于样本的在线学习方法。

参考文献

  • Sutton et. al, Reinforcement Learning(书籍链接:https://books.google.com/books?id=PwnrBwAAQBAJ&printsec=frontcover&dq=Reinforcement+Learning&hl=zh-CN&sa=X&ved=0ahUKEwjB25vcgP3lAhUUa94KHcPODyMQ6AEIKDAA#v=onepage&q=Reinforcement%20Learning&f=false)

  • White et. al, Fundamentals of Reinforcement Learning, University of Alberta

  • Silva et. al, Reinforcement Learning, UCL

  • Platt et. Al, Northeaster University(论文链接:http://www.ccs.neu.edu/home/rplatt/cs7180_fall2018/slides/monte_carlo.pdf)

via https://towardsdatascience.com/optimizing-blackjack-strategy-through-monte-carlo-methods-cbb606e52d1b

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

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

相关文章

B站上线!DeepMind加UCL强强联手推出深度学习与强化学习进阶课程(附视频)

编辑&#xff1a;元子 涞源&#xff1a;新智元 DeepMind和伦敦大学学院&#xff08;University College London&#xff0c;UCL&#xff09;合作&#xff0c;推出了一个系列的深度学习与强化学习精品进阶课程。该课程内容已经被录制为视频&#xff0c;并由爱可可爱生活上传B站供…

ucl计算机教授汪军,UCL汪军教授开课:带你入坑多智能体机器学习(免费)!

人工智能已经在围棋、图像识别和语音识别等领域达到甚至超越了人类专家水平&#xff0c;但智能化的机器离我们仍然很远。要想实现通用智能&#xff0c;AI智能体必须学习如何在共享环境中与「他人」进行互动&#xff0c;由此产生了人工智能的一个前沿研究领域&#xff1a;多智能…

UCL USL过程控制上下限与产品公差及极差

upper control limit/ low control limit, UCL/LCL : 上控制限/下控制限, 一般是根据产品和过程特性, 统计数据, 按照一定公式及系数, 计算获得; 一般是在/-3sigma 之间; 用于查看过程的受控状态... 控制限的计算 首先计算极差图的控制限, 再计算均值图的控制限; 计算型数据…

抖音无水印下载不求人

1.得到分享 url 2.找到有水印的url chrom 浏览器 按 F12 打开调试 https://aweme.snssdk.com/aweme/v1/playwm/?video_idv0300fa50000c05t58fkppmf0vsga26g&ratio720p&line0 只有 video_id 有用, 其他的参数没用, 精简后的 url 为 https://aweme.snssdk.com/aweme/…

简历怎么写

简历是你进入面试的敲门砖&#xff0c;也是留给意向公司的第一印象&#xff0c;所以这个很重要&#xff0c;必须在这上面做足了文章&#xff0c;一份优秀的面试简历是整个面试成败的重中之重&#xff0c;我们会详细分析如何准备简历才能保证简历不被刷掉。 准备专业技能 关于对…

个人简历计算机水平如何填写,简历如何写计算机水平

简历如何写计算机水平 简历的内容要尽可能详尽&#xff0c;具体。下面小编整理的简历如何写计算机水平&#xff0c;欢迎来参考&#xff01; 作为现代化办公系统&#xff0c;就是离不开电脑的配合&#xff0c;所以如果你在电脑方面有专长&#xff0c;一定要在个人简历当中表现出…

专用于个人简历的latex模板

介绍 一份简历模板&#xff0c;fork自hijiangtao/resume&#xff0c;自己随意删改了一些东西。地址为&#xff1a;resume 使用 将整个项目直接上传到overleaf上&#xff0c;使用xelatex编译使用本地的texstudio编译 预览 FontAwesome resume-zh_CN.tex 已经导入了 fontawe…

别在简历上写XXX管理系统了,太水!!!

我一直认为程序员的成长就像一个狙击手一样&#xff0c;好的狙击手都是子弹喂出来的。 同理&#xff0c;牛逼的程序员也需要一个个真实项目来打磨。 想要快速掌握开发技能&#xff0c;提升开发水平&#xff0c;做一个优质的项目往往可以事半功倍。 Java程序员从入门到大牛的终极…

程序员(应届生)求职简历模板+LaTex(overleaf)简历制作+博士简历模板分享+简历赏析

LaTex简历制作 模板介绍亮点模板改动 还在网上疯狂找简历模板吗&#xff1f;为改格式而烦恼吗&#xff1f;大牛都用这方法制作简历&#xff0c;精美又优雅–LaTex制作简历。 一份精美的简历能够迅速吸引HR的眼球引起对你的兴趣&#xff0c;特别是对于刚刚步入社会的应届生来说&…

使用Markdown写出一份漂亮的简历

文章目录 背景Markdown编辑器开始写你的简历个人优势项目经历            牧竹子个人技能公司经历项目经验XXXXXX项目 202N.N0.15-202N.N.N 导出文档格式高级版修改样式 背景 每当你要更新简历时是否因为各个平台不同输入框而陷入适配不同的模板&#xff0c;如此以来…

荒谬!高校院长在Nature论文一作位置P上自己名字,还写到简历里...

点击上方“深度学习爱好者”&#xff0c;选择加"星标"或“置顶” 重磅干货&#xff0c;第一时间送达 本文由募格学术撰写 参考来源&#xff1a;豆瓣、顶刊收割机、知乎等 你见过最荒唐的学术造假是什么样子的&#xff1f; 有人直接靠P图为自己得来一份Nature还写到了…

怎样制作一份简历?这些方面内容最好要写上

怎么制作一份简历呢&#xff1f;简历是个人求职的重要材料&#xff0c;它反映了你的个人信息、教育背景、工作经验、专业技能等方面的情况。写一份好的简历可以让你在众多求职者中脱颖而出&#xff0c;增加获得面试的机会。很多小伙伴不清楚简历中应该填写哪些内容&#xff0c;…

简历应该这么写

一、简历篇幅 首先程序员的简历力求简洁明了&#xff0c;不用设计上要过于复杂。 对于校招生&#xff0c;一页简历就够了&#xff0c;社招的话两页简历便可。 有的校招生说自己的经历太多了&#xff0c;简历要写出两三页&#xff0c;实际上基本是无关内容太多或者描述太啰唆…

使用Gitee多人项目协作开发的流程

多人协作开发流程 Step0 所有组员在Gitee上注册账户 http://gitee.com Step 1 组长创建项目例如&#xff1a;CoperationDemo Step2 组长将项目组成员拉进项目&#xff0c;成为开发者 等待其他用户同意邀请 Step3 其他组员同意加入项目&#xff0c;并成为正式开发者 其他成…

申报指南|教你如何优雅地报名、提交项目申请书

「2021腾讯犀牛鸟开源人才培养计划」开始已经20多天了&#xff0c;组委会已经收到不少同学的报名和提案。 还没有报名和准备proposal的同学请注意啦&#xff1a;距离6月21日报名和提交项目申请书截止还有13天&#xff01; 关于如何报名和提交proposal&#xff0c;不少同学依然存…

GPT-4 竟被 CS 学生「开源」了!OpenAI 威胁:不撤下项目就告你!

转自&#xff1a;新智元&#xff08;ID:AI_era&#xff09; 众所周知&#xff0c;ChatGPT 是免费的&#xff0c;但想尝试最新最强的 GPT-4&#xff0c;基本上就只有「氪金」这一条路可以走—— 要么订阅 ChatGPT Plus&#xff0c;要么付费调用 API。 虽然也有一些集成了 GPT 的…

王者登基!GPT-4发布,功能史上最强

源 | 量子位 大家好&#xff0c;这里是 NewBeeNLP。 一觉醒来&#xff0c;万众期待的GPT-4&#xff0c;它来了&#xff01; OpenAI老板Sam Altman直接开门见山地介绍说&#xff1a; 这是我们迄今为止功能最强大的模型&#xff01; 有多强&#xff1f; 根据OpenAI官方的介绍&…

时隔26年,微软的人工智能助手终于实现了!地球最强生产力工具Copilot发布

注&#xff1a;本文作者阿法兔&#xff0c;为微软最有价值专家&#xff08;MVP&#xff09; *转载请扫码添加后台微信二维码&#xff0c;转载请注明来源&#xff0c;且附上本文的所有参考文献链接。 作者 | 阿法兔 事件 *本文1900字左右 前情提要&#xff0c;在笔者今年1月8日…

华为率先商用卫星通信技术,有助中国在6G技术上取得领先优势

业界人士指出华为发布的mate50虽然不支持5G技术&#xff0c;但是它率先在手机上引入卫星通信技术却具有重大意义&#xff0c;有助于中国在6G通信技术上取得领先优势。 6G技术将不再仅限于移动通信技术&#xff0c;而是天地一体&#xff0c;即是将卫星通信技术融合在其中&#x…

[原创]淘宝天猫抢购软件“tbBuyer“

[原创]淘宝天猫抢购软件"tbBuyer" 淘宝/天猫抢购软件, 多账号多任务, 自动下单付款, 监控捡漏 大家在使用中遇到问题, 可以发邮件告诉我_: 694611825qq.com 软件到我的网盘下载: https://cloud.189.cn/t/zmUNvyVZFfqq QQ群: 240477599