为了粗略获得贪心算法和贪心算法的相对有效性,我们通过一系列的数值测试来比较两者的优劣。

本实验台包含2000个随机生成的k摇臂老虎机问题,其中k=10。如图2.1所示是其中之一,每个k摇臂问题生成的10个动作的值,, a = 1,...,10, 是从一个均值为0,方差为1的正态/高斯分布中选取出来的10个数。然后,当一个学习算法应用这个问题上,并在时刻t时选择动作,其动作的真实奖励,是从一个均值为,方差为1的正态分布中选取的。这些分布如图2.1中灰色部分所示。我们把这两千个测试任务称为10-摇臂测试台。对于任何一个学习算法,我们可以通过将其应用于此试验台中的某一个测试问题,并测试其1000步数(time steps)试验中的表现和行为。这1000步组成一轮试验(one run),将试验重复2000轮,每次针对一个不同的测试问题,我们将获得对这个学习算法的平均表现的评估。

图2.2比较了贪心算法和两种贪心算法()在试验台中的表现。所有算法中使用的动作-值评估方法都是采样平均法。上图显示的是期望奖励随经验的提升。贪心算法比其他算法在开始阶段稍微提升的快一点,但之后就稳定在一个比较低的水平了。它获得的”奖励/步数”大约仅在1,而相比之下在这个试验台中最好的可能是1.55。贪心算法在长期表现得如此之差的原因是,它总是卡在次优动作上。下图显示出贪心算法找到最优动作的概率大约为1/3,而剩下的2/3概率下,它的初始值非常差,导致它无法找到最优动作。而贪心算法最终表现更好,是因为它始终在探索以提升它找到更优动作的机会。=0.1的方法探索次数更多,通常更早找到最优动作,但是它每次选择最优动作的概率不大于91%(90%+10%*(1/10) = 91%)。=0.01的算法提升得较慢,但是最终在如图2.2所示的两方面可能表现得比的算法要好。而随着时间逐渐减小,可能其既能很快找到最优动作,又能最终获得的平均奖励(”奖励/步数”)更大。(在开始的时候  大一些,可以很快找到最优动作,之后逐渐减小  ,让最优动作每次被选中的概率更大,从而使平均奖励值更大。

贪心算法相对贪心算法的优势取决于任务。例如,假设奖励的方差更大(奖励分布范围更大),比如说是10而不是1。那么对于这些噪声更大(其实就是分布范围更广了)的奖励值,需要更多的探索来找到最优解(每个奖励的分布范围十分广,一次实验取到的奖励值可能离动作的真实值很远,也就是说一次实验中表现最好的动作可能并不是平均表现最好的动作,而我们是用平均表现来评估一个动作的,所以方差大的需要多次采样来评估某一个动作,也就是对每个动作都要重复采样多次,就需要更多积极的探索),那么  贪心算法可能表现得比贪心算法好很多。而另一方面,如果假设方差为0,那么贪心算法将在试过一次之后就知道知道这个动作的真实值了(我不太同意这种说法,如果贪心算法的第一次尝试是次优解,那么它就会一直执行这个次优解,不去探索其他可能,也就没法获取最优解的真实值了)。在这种情况下贪心算法可能会表现的最好,因为他可以很快的找到最优解,并且永远不探索其他可能。但是即使在这种奖励值完全集中于一点的情况下,如果我们放松一点假设,探索仍然具有巨大优势。比如,假设老虎机任务是非静态的,也就是说,动作的奖励随着时间变化,那么探索就很有必要了,因为一个非贪婪动作也可能随着时间变化为贪婪动作。在接下来的几章中,我们会发现,非静态问题是强化学习中最经常遇到的问题。尽管老虎机的本质任务是静态的,确定的(deterministic),读者仍面临许多类似于老虎机的任务,随着学习的进行和agent策略的改变,这些任务都会随着时间不断变化。强化学习需要在探索和利用中找到平衡。

答案仅供参考

练习2.3  在如图2.2的比较中,从长远来看,在累计奖励和选中最优动作的可能性上,哪一种方法可能表现得最好?。可能好多少,请定量回答。

=0.01贪心算法可能表现得最好,随着步数增多,它可能最终收敛到1.55的最优动作上,那么它的平均值大约是1.55附近,所以可能比 =0.1 好大约0.15;而他选中最优动作的概率可能会上升到 99%+1%*1/10=99.1%,比 =0.1 的 91%高 8.1%

2.3 The 10-armed Testbed 10摇臂老虎机试验台相关推荐

  1. 微软正式发布Windows 10 2020年10月更新

    让大家等待多时的Windows 10 2020年10月更新终于来了,这也是今年微软为Win10准备的最后一个重大更新. Windows 10 2020年10月更新就是之前多次说道的Windows 10 ...

  2. ArcGIS Engine 项目10.1升级10.2

    一 10.1 到 10.2 ArcGIS Engine 项目,相同代码,从10.1升级10.2: 首先是VS载入项目时窗体上的控件会出现问题:然后,如下面图,即可: 看下引用,已经出了问题: 右击添加 ...

  3. 安装程序无法创建新的系统分区也无法定位现有系统分区_如何拥有一个 Windows 10 和 Debian 10 的双系统...

    在无数次劝说自己后,你终于做出了一个大胆的决定,试试 Linux.-- James Kiarie(作者) 在无数次劝说自己后,你终于做出了一个大胆的决定,试试 Linux.不过,在完全熟悉 Linux ...

  4. gitlab 迁移、升级打怪之路:8.8.5-- 8.10.8 -- 8.17.8 -- 9.5.9 -- 10.1.4 -- 10.2.5

    gitlab 迁移.升级打怪之路:8.8.5--> 8.10.8 --> 8.17.8 --> 9.5.9 --> 10.1.4 --> 10.2.5 gitlab 数据 ...

  5. Java黑皮书课后题第10章:*10.26(计算器)修改程序清单7-9,接收一个字符串表达式,其中操作符和操作数由0到多个空格隔开

    第10章:*10.26(计算器) 题目 程序清单7-9 本题代码:大幅优化升级 题目 程序清单7-9 对代码进行了修改:原代码将"."认做乘号,修改后将"*"作 ...

  6. Java黑皮书课后题第10章:**10.25(新的字符串split方法)String类中的split方法会返回一个字符串数组,该数组是由分隔符分隔开的子串构成的

    Java黑皮书课后题第10章:**10.25(新的字符串split方法) 题目 代码 运行实例 题目 代码 public class Test25 {public static String[] sp ...

  7. Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字

    Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字 题目 代码 结果 题目 都在上面 代码 import java.math.B ...

  8. Java黑皮书课后题第10章:*10.13(几何:MyRectangle2D类)定义MyRectangle2D类

    Java黑皮书课后题第10章:10.3 题目 程序 代码 Test13.java Test13_MyRectangle2D.java 运行 UML 题目 程序 Test13.java:测试程序 Tes ...

  9. Java黑皮书课后题第10章:10.2(BMI类)将下面的新构造方法加入BMI类中

    Java黑皮书课后题第10章:10.2(BMI类)将下面的新构造方法加入BMI类中 题目 程序说明 题目槽点 代码:Test2_BMI.java 运行实例 题目 程序说明 Test2_BMI.java ...

  10. Java黑皮书课后题第10章:*10.1(Time类)设计一个名为Time的类。编写一个测试程序,创建两个Time对象(使用new Time()和new Time(555550000))

    Java黑皮书课后题第10章:*10.1设计一个名为Time的类.编写一个测试程序,创建两个Time对象 题目 程序 代码 Test1.java Test1_Time.java 运行结果 UML 题目 ...

最新文章

  1. linux高性能网络编程,Linux高性能网络编程的介绍
  2. es写入数据的工作原理是什么啊?es查询数据的工作原理是什么啊?
  3. uvalive3209City Game
  4. code vs 把所有行拼接成一行_关于SQL Server将一列的多行内容拼接成一行的问题讨论...
  5. 机器学习之人脸识别face_recognition使用
  6. python控制modem的at指令_硬件设计MCU架构+Python命名空间和作用域
  7. ListView滑动删除效果实现
  8. 只安装python能干什么_你都用 Python 来做什么?
  9. java timer.schedule如何控制执行次数_Java 面试——JIT详解
  10. 【转载】KDiff3 Merge工具的使用 极简教程
  11. Go语言学习日记【十八】golang中context包简介与使用
  12. java机票编程_携程预订机票后台java开发编程
  13. 谷歌退出中国声明全文(中英对照版)A new approach to China
  14. 【沧海拾昧】C# .Net 基本控件介绍
  15. Visual C++注册
  16. 2023年广东数据分析师CPDA认证招生简章(理论+实战)
  17. ddz指标最佳数值_大单分差指标ddz如何解析资金流向与筹码分布
  18. countupjs,一个有趣的数字翻滚动画
  19. Python之 列表推导式(含例题)
  20. Manjaro安装Mariadb

热门文章

  1. 如何管理公司的共享iPad?
  2. 查看一键Ghost的备份文件
  3. 电力拖动计算机系统考试,电力拖动自动控制系统__考试复习题.doc
  4. 蝶形算法(H.264)
  5. 户籍管理系统php,vue实现户籍管理系统的实例解析
  6. 2007年会计从业资格练习第三章会计科目和账户
  7. html5建站模板怎么用,怎么用模板建网站
  8. 郝斌c语言96-99,《祁连山Photoshop CS3专家讲堂系列教程》[ISO]
  9. 2021年Java开发爆款推荐!黑马java培训视频网盘下载
  10. 黑马JavaEE云计算大数据全套视频 JavaEE云计算开发全套视频教程 超全精华班 82G