深入理解强化学习——多臂赌博机:知识总结

分类目录:《深入理解强化学习》总目录


我们在《深入理解强化学习——多臂赌博机》系列文章中介绍了几种平衡试探和开发的简单方法。 ϵ − \epsilon- ϵ贪心方法在一小段时间内进行随机的动作选择,而UCB方法虽然采用确定的动作选择,却可以通过在每个时刻对那些具有较少样本的动作进行优先选择来实现试探。梯度赌博机算法则不估计动作价值,而是利用偏好函数,使用Softmax分布来以一种分级的、概率式的方式选择更优的动作。简单地将收益的初值进行乐观的设置,就可以让贪心方法也能进行显式试探。

很自然地,我们会问哪种方法最好。尽管这是一个很难回答的问题,但我们可以在10臂测试平台上运行它们,并比较它们的性能。一个难题是它们都有一个参数,为了进行一个有意义的比较,我们将把它们的性能看作关于它们参数的一个函数。到目前为止,我们的图表已经分别给出了每种算法及参数随时间推移的学习曲线。但如果我们把所有算法的所有参数对应的学习曲线全部画在一起,就会过于复杂,造成视觉上的混乱。所以我们总结了一个完整的精简的学习曲线,展示了每种算法和参数超过1000步的平均收益值,这个值与学习曲线下的面积成正比。下图显示了《深入理解强化学习——多臂赌博机》系列文章中各种赌博机算法的性能曲线,每条算法性能曲线都被看作一个自己参数的数, x x x轴用单一的尺度显示了所有的参数。这种类型的图称为参数研究图。需要注意的是,轴上参数值的变化是2的倍数,并以对数坐标表示。由图可见,每个算法性能曲线呈倒U形;所有算法在其参数的中间值处表现最好,既不太大也不太小。在评估一种方法时,我们不仅要关注它在最佳参数设置上的表现,还要注意它对参数值的敏感性。所有这些算法都是相当不敏感的,它们在一系列的参数值上表现得很好,这些参数值的大小是一个数量级的。总的来说,在这个问题上,UCB似乎表现最好。
赌博机算法的性能曲线
尽管《深入理解强化学习——多臂赌博机》系列文章中提出的方法很简单,但在我们看来,它们被公认为是最先进的技术。虽然有更复杂的方法,但它们的复杂性和假设使它们在我们真正关注的完整强化学习问题中并不适用。

虽然本系列文章探讨的简单方法可能是目前让我们能做到最好的方法,但它们还远远不能解决平衡试探和开发的问题。在多臂赌博机问题中,平衡试探和开发的一个经典解决方案是计算一个名为Git.tins指数的特殊函数。这为一些赌博机问题提供了一个最优的解决方案,比在本系列文章中讨论的方法更具有一般性,但前提是已知可能问题的先验分布。不幸的是,这种方法的理论和可计算性都不能推广到我们在本书中探讨的完整强化学习问题。

贝叶斯方法假定已知动作价值的初始分布,然后在每步之后更新分布(假定真实的动作价值是平稳的)。一般来说,更新计算可能非常复杂,但对于某些特殊分布(称为共轭先验)则很容易。这样,我们就可以根据动作价值的后验概率,在每一步中选择最优的动作。这种方法,有时称为后验采样或汤普森采样(Thompson Sampling),通常与我们在本系列文章中提出的最好的无分布方法性能相近。

贝叶斯方法甚至可以计算出试探和开发之间的最佳平衡。对于任何可能的动作,我们都可以计算出它对应的即时收益的分布,以及相应的动作价值的后验分布。这种不断变化的分布成为问题的信息状态。假设问题的视界有1000步,则可以考虑所有可能的动作,所有可能的收益,所有可能的下一个动作,所有下一个收益等等,依此类推到全部1000步。有了这些假设,可以确定每个可能的事件链的收益和概率,并且只需挑选最好的。但可能性树会生长得非常快,即使只有两种动作和两种收益,树也会有22000个叶子节点。完全精确地进行这种庞大的计算通常是不现实的,但可能可以有效地近似。贝叶斯方法有效地将赌博机问题转变为完整强化学习问题的一个实例。最后,我们可以使用近似强化学习方法来逼近最优解。

参考文献:
[1] 张伟楠, 沈键, 俞勇. 动手学强化学习[M]. 人民邮电出版社, 2022.
[2] Richard S. Sutton, Andrew G. Barto. 强化学习(第2版)[M]. 电子工业出版社, 2019
[3] Maxim Lapan. 深度强化学习实践(原书第2版)[M]. 北京华章图文信息有限公司, 2021
[4] 王琦, 杨毅远, 江季. Easy RL:强化学习教程 [M]. 人民邮电出版社, 2022

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

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

相关文章

Leetcode100128. 高访问员工

Every day a Leetcode 题目来源:100128. 高访问员工 解法1:模拟 把名字相同的员工对应的访问时间(转成分钟数)分到同一组中。 对于每一组的访问时间 accessTime,排序后,判断是否有 accessTime[i] - ac…

吃透 Spring 系列—Web部分

目录 ◆ Spring整合web环境 - Javaweb三大组件及环境特点 - Spring整合web环境的思路及实现 - Spring的web开发组件spring-web ◆ web层MVC框架思想与设计思路 ◆ Spring整合web环境 - Javaweb三大组件及环境特点 在Java语言范畴内,web层框架都是基于J…

win环境Jenkins部署前端项目

今天分享win环境Jenkins部署前端vue项目,使用的版本jenkins版本Jenkins 2.406版本。 前提是jenkins安装好了,通用配置已经配置好了,可以参考上两篇博客。 1、前端项目依赖nodejs,需要安装相关插件 点击进入 安装成功标准 jenki…

【Vue3】scoped 和样式穿透

我们使用很多 vue 的组件库&#xff08;element-plus、vant&#xff09;&#xff0c;在修改样式的时候需要进行其他操作才能成功更改样式&#xff0c;此时就用到了样式穿透。 而不能正常更改样式的原因就是 scoped 标记。 scoped 的渲染规则&#xff1a; <template>&l…

如何在ModelScope社区魔搭下载所需的模型

本篇文章介绍如何在ModelScope社区下载所需的模型。 若您需要在ModelScope平台上有感兴趣的模型并希望能下载至本地&#xff0c;则ModelScope提供了多种下载模型的方式。 使用Library下载模型 若该模型已集成至ModelScope的Library中&#xff0c;则您只需要几行代码即可加载…

STM32之DMA

一、DMA概述 DMA:直接寄存器访问 Direction:直接 Memory:存储器 Access:访问 就是一个外设用于搬运数据&#xff0c;就是一个搬运工。 在串口发送数据的时候&#xff1a;这种效率并不高 如何想要发送大量的数据的时候可以利用DMA 1、DMA工作流程 没有DMA参与…

【友提】2023年“思维100”编程比赛开始报名,名额有限报名抓紧

根据官方昨天发布的通知&#xff0c;2023年上海市“科学小公民”实践展示活动之“思维100”STEM应用能力编程活动&#xff08;秋季&#xff09;开始报名了&#xff0c;为便于大家了解&#xff0c;六分成长为大家整理关键信息如下。为便于叙述&#xff0c;该活动简称为思维100编…

RGB颜色空间与BMP格式图片

RGB颜色空间 RGB可以分为两大类&#xff1a;一种是索引形式&#xff0c;一种是像素形式&#xff1a; 索引形式&#xff1a;存储每个像素在调色板中的索引 RGB1&#xff1a;每个像素用1bit表示&#xff0c;调色板中只包含两种颜色&#xff08;黑白&#xff09;RGB4&#xff1a…

卸载本地开发环境,拥抱容器化开发

以前在公司的时候&#xff0c;使用同事准备的容器化环境&#xff0c;直接在 Docker 内进行开发&#xff0c;爽歪歪呀。也是在那时了解了容器化开发的知识&#xff0c;可惜了&#xff0c;现在用不到那种环境了。所以打算自己在本地也整一个个人的开发环境&#xff0c;不过因为我…

吴恩达《机器学习》8-3->8-4:模型表示I、模型表示II

8.3、模型表示I 一、大脑神经网络的基本原理 为了构建神经网络模型&#xff0c;首先需要理解大脑中的神经网络是如何运作的。每个神经元都可以被看作是一个处理单元或神经核&#xff0c;它包含多个输入&#xff08;树突&#xff09;和一个输出&#xff08;轴突&#xff09;。…

在vue3中使用Element-plus的图标

首先安装Element-Plus-icon # 选择一个你喜欢的包管理器# NPM $ npm install element-plus/icons-vue # Yarn $ yarn add element-plus/icons-vue # pnpm $ pnpm install element-plus/icons-vue 如何使用 Element-Plus-icon官方文档链接Icon 图标 | Element Plus (element-…

【操作系统】1.1 操作系统的基础概念、功能以及特性

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…

Unity之NetCode多人网络游戏联机对战教程(8)--玩家位置同步

文章目录 前言添加相机玩家添加对应组件服务端权威&#xff08;server authoritative&#xff09;客户端权威&#xff08;client authoritative&#xff09;服务端同步位置阅读与理解PlayerTransformSync.csNetworkVariableUploadTransformSyncTransform 后话 前言 承接上篇&a…

LOW-POWER AUDIO KEYWORD SPOTTING USING TSETLIN MACHINES

基于TM的低功耗语音关键字识别 摘要1介绍2TM的介绍3KWS的音频预处理技术4实验结果MFC4.1C设置分位数数量4.3增加关键词数量4.4 声音相似的关键词4.5 每个类别的子句数量对KWS-TM的比较学习收敛和复杂性分析 摘要 在本文中&#xff0c;我们探讨了一种基于TM的关键词识别&#x…

《算法通关村——透彻理解二叉树中序遍历的应用》

《算法通关村——透彻理解二叉树中序遍历的应用》 直接上题 108. 将有序数组转换为二叉搜索树 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高…

同一个Unity项目打开两个Unity Editor实例

特殊情况下&#xff0c;同一个项目需要同时打开两个编辑器做测试&#xff0c;如多人在线游戏&#xff0c;或者有通信功能的时候就有这样的需求。同时也为了方便调试和观察日志。并且修改的是同一份代码。 命令介绍&#xff1a; 实现思路&#xff1a; 使用 mklink 命令 分别创建…

深入研究SVN代码检查的关键工具:svnchecker vs. SonarQube,选择最适合你的代码检查工具

目录 一、SVN代码检查(整合svnchecker)1、创建SVN代码库2、下载安装包3、修改SVN配置4、新建代码检查配置文件(名称自定义)5、hooks目录添加配置文件6、设置只对Java文件进行检查7、测试 二、SonarQube代码检测1、什么是SonarQube2、MySQL数据库的安装3、SonarQube服务端软件安…

530. 二叉搜索树的最小绝对差

题目描述 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差的绝对值。 示例 1&#xff1a; 输入&#xff1a;root [4,2,6,1,3] 输出&#xff1a;1示例 2&#xff1a; ) 输入&#…

边缘分布式机器学习

目录 通信机制同步Synchronous异步Asynchronous半同步/延时同步通信的拓扑结构基于迭代式MapReduce的通信&#xff08;同步模式&#xff09;基于MPI之AllReduce的通信&#xff08;同步模式&#xff09;AllReduce有很多变种 基于参数服务器的通信&#xff08;多为异步&#xff0…