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

news2024/11/18 19:48:16

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


我们在《深入理解强化学习——多臂赌博机》系列文章中介绍了几种平衡试探和开发的简单方法。 ϵ − \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

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

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

相关文章

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

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

Flowable 外部表单

内置表单需要在每个节点中去配置,当如果多个节点使用同一套表单属性就要配置多次比较麻烦,修改的时候也要修改多次,外部表单可以定义一次,然后其它节点都去引用同一个表单属性。 外部表单需要定义一个.form后缀的文件。 外部表单…

快速查看Linux系统占用多的文件夹

背景 租用了一台云服务器,存储很快就满了,想看下哪部分占用多,然后进行清理 工具 使用ncdu工具 sudo apt install ncdu效果

python工具网康下一代防火墙RCE

python漏洞利用​ 构造payload POST /directdata/direct/router HTTP/1.1{"action":"SSLVPN_Resource","method":"deleteImage","data":[{"data":["/var/www/html/d.txt;cat /etc/passwd >/var/www/htm…

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

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

【Go入门】struct类型

【Go入门】struct类型 struct Go语言中,也和C或者其他语言一样,我们可以声明新的类型,作为其它类型的属性或字段的容器。例如,我们可以创建一个自定义类型person代表一个人的实体。这个实体拥有属性:姓名和年龄。这样…

吃透 Spring 系列—AOP部分

目录 ◆ AOP 简介 - AOP的概念 - AOP思想的实现方案 - 模拟AOP的基础代码 - AOP相关概念 ◆ 基于xml配置的AOP - xml方式AOP快速入门 - xml方式AOP配置详解 - xml方式AOP原理剖析 ◆ 基于注解配置的AOP - 注解方式AOP基本使用 - 注解方式AOP配置详解 - 注解…

【C++】C++的介绍及其发展史

初识C 一、什么是C,为什么会出现C二、C的发展史三、C的重要性3.1 语言的使用广泛度3.2 在工作领域 四、C的学习路径 及 书籍推荐 一、什么是C,为什么会出现C C语言是结构化和模块化的语言,适合处理较小规模的程序。 对于复杂的问题&#xff…

网神下一代极速防火墙任意文件读取漏洞

访问漏洞url: ​​/?gpki_file_download&filename../../../../../etc/passwd漏洞证明: 文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。 免责声明:由于传播或利用此文所提供的信息、技术或方法而造…

mysql8安装和驱动jar包下载

方式一:基于docker安装 下拉镜像 docker pull mysql:8.0.21 启动镜像 docker run -p 3307:3306 --name mysql -e MYSQL_ROOT_PASSWORDhadoop -d mysql:8.0.21 启动成功后,进入容器内部拷贝配置文件,到宿主主机 docker cp mysql:/etc/mysql…

如何在 Python 中执行 MySQL 结果限制和分页查询

Python MySQL 限制结果 限制结果数量 示例 1: 获取您自己的 Python 服务器 选择 “customers” 表中的前 5 条记录: import mysql.connectormydb mysql.connector.connect(host"localhost",user"您的用户名",password"您的密码"…

边缘分布式机器学习

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

网康NS-ASG安全网关任意文件读取

此文件没有对身份进行校验即可下载任意文件 构造payload访问漏洞url: ​​/admin/cert_download.php?filegjxbstxdt.txt&certfile../../../../../../../../etc/passwd漏洞证明: 文笔生疏,措辞浅薄,望各位大佬不吝赐教&…

【算法练习Day46】判断子序列不同的子序列

​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:练题 🎯长路漫漫浩浩,万事皆有期待 文章目录 判断子序列不同的子序列总结…

【C++笔记】二叉搜索树的模拟实现

【C笔记】二叉搜索树的模拟实现 一、二叉搜索树的概念二、二叉搜索树的模拟实现2.0、定义二叉树节点2.1、非递归接口实现2.1.1、插入2.1.2、查找2.1.3、删除 2.2、递归接口实现2.2.1、插入2.2.2、查找2.2.3、删除 三、升级为K-V模型 一、二叉搜索树的概念 二叉搜索树的概念&am…

grpc使用教程

准备 1,安装grpc go get -u google.golang.org/grpc2, 安装go语言protobuf生成器protoc-gen-go go get -u google.golang.org/protobuf/cmd/protoc-gen-go3, 通过下面连接,找到合适版本并安装protoc工具,如windows选择 protoc-3.19.5-win64.…

c++类对象内存模型(一)

C对象模型可以概括为以下2部分: 1. 语言中直接支持面向对象程序设计的部分,主要涉及如构造函数、析构函数、虚函数、继承(单继承、多继承、虚继承)、多态等等。 2. 对于各种支持的底层实现机制。在c语言中,“数据”和…

时间序列预测实战(十四)Transformer模型实现长期预测并可视化结果(附代码+数据集+原理介绍)

论文地址->Transformer官方论文地址 官方代码地址->暂时还没有找到有官方的Transformer用于时间序列预测的代码地址 个人修改地址-> Transformer模型下载地址CSDN免费 一、本文介绍 这篇文章给大家带来是Transformer在时间序列预测上的应用,这种模型最…

C++算法:包含三个字符串的最短字符串

涉及知识点 有序集合 字符串 题目 给你三个字符串 a ,b 和 c , 你的任务是找到长度 最短 的字符串,且这三个字符串都是它的 子字符串 。 如果有多个这样的字符串,请你返回 字典序最小 的一个。 请你返回满足题目要求的字符串。…

2023年09月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 用枚举算法求解“100以内既能被3整除又能被4整除的元素”时,在下列数值范围内,算法执行效率最高的是?( ) A:1~101 B:4~100 C:12~100 D:12~96 答案:D 题目要求找出在 100…