【RL系列】Multi-Armed Bandit笔记补充(二)
本篇的主题是对Upper Conference Bound(UCB)策略进行一个理论上的解释补充,主要探讨UCB方法的由来与相关公式的推导。
UCB是一种动作选择策略,主要用来解决epsilon-greedy在选择时的低效率问题。对于解释UCB的使用机理上,我认为下面这篇文章写的还不错,深入浅出,只不过在公式推导上有一点点问题:
Multi-Armed Bandit: UCB (Upper Bound Confidence)
我们先来说一说epsilon-greedy策略在选择动作时有什么问题。如果epsilon值较小,例如epsilon = 0.1,那么每次实验都有10%的概率是随机选择动作,如果K值(选择较多)较大的话,这样的选择效率是较低的。为什么说这样的选择效率是较低的,因为在一定的实验次数内,epsilon-greedy只能大概率判断出最优动作,而对于其它动作的收益如何是没办法判断的。举个例子吧,如果说epsilon-greedy策略可以帮你找到最好吃的那家餐厅,那么UCB就可以帮你给餐厅的好吃程度排个序,但UCB的坏处也显而易见,这个排序并非是与真是期望情况严格相符的排序,只是估计而已,所以UCB常用于个性化推送而不适用于寻求最优。
为什么epsilon-greedy策略不能做出排序呢?实际上在实验次数不变的情况下,很有可能某些动作的实验次数不够多,这样很难保证我们由实验统计出的各个动作收益均值与实际的收益均值相吻合。其实在概率统计上,由均值产生的统计概率与真实期望总是会产生一定的差值,这个差值小于一个较小值delta的概率就可以称之为置信度。举个例子,如若置信度为95%时,我们就可以说,有大于95%的可能性,估计的均值与实际的期望之差小于delta,用数学语言描述出来就是,alpha为置信度:
我们将式子稍稍变换一下形式:
依据中心极限定理,可知:
所以有:
这里的delta与n皆为大于0的数,依据不等式[1],
这里我们可以令置信度 ,即可计算出delta关于alpha的等式:
为了让置信度尽可能的高,在实际运用中,直接令 ,N为实验次数。
所以UCB策略才有如下的形式:
参考文献:
【RL系列】Multi-Armed Bandit笔记补充(二)的更多相关文章
- 【RL系列】Multi-Armed Bandit笔记补充(一)
在此之前,请先阅读上一篇文章:[RL系列]Multi-Armed Bandit笔记 本篇的主题就如标题所示,只是上一篇文章的补充,主要关注两道来自于Reinforcement Learning: An ...
- 【RL系列】Multi-Armed Bandit笔记——UCB策略与Gradient策略
本篇主要是为了记录UCB策略与Gradient策略在解决Multi-Armed Bandit问题时的实现方法,涉及理论部分较少,所以请先阅读Reinforcement Learning: An Int ...
- 【RL系列】Multi-Armed Bandit问题笔记
这是我学习Reinforcement Learning的一篇记录总结,参考了这本介绍RL比较经典的Reinforcement Learning: An Introduction (Drfit) .这本 ...
- Mysql学习笔记(二)数据类型 补充
原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...
- [.NET] 《Effective C#》读书笔记(二)- .NET 资源托管
<Effective C#>读书笔记(二)- .NET 资源托管 简介 续 <Effective C#>读书笔记(一)- C# 语言习惯. .NET 中,GC 会帮助我们管理内 ...
- [.NET] 《Effective C#》快速笔记(二)- .NET 资源托管
<Effective C#>快速笔记(二)- .NET 资源托管 简介 续 <Effective C#>读书笔记(一)- C# 语言习惯. .NET 中,GC 会帮助我们管理内 ...
- 《Effective C#》快速笔记(二)- .NET 资源托管
简介 续 <Effective C#>读书笔记(一)- C# 语言习惯. .NET 中,GC 会帮助我们管理内存,我们并不需要去担心内存泄漏,资源分配和指针初始化等问题.不过,它也并非万能 ...
- C#可扩展编程之MEF学习笔记(二):MEF的导出(Export)和导入(Import)
上一篇学习完了MEF的基础知识,编写了一个简单的DEMO,接下来接着上篇的内容继续学习,如果没有看过上一篇的内容, 请阅读:http://www.cnblogs.com/yunfeifei/p/392 ...
- Dynamic CRM 2013学习笔记(二十八)用JS动态设置字段的change事件、必填、禁用以及可见
我们知道通过界面设置字段的change事件,是否是必填,是否可见非常容易.但有时我们需要动态地根据某些条件来设置,这时有需要通过js来动态地控制了. 下面分别介绍如何用js来动态设置. 一.动态设 ...
随机推荐
- 'vue-cli-service' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
首先把 node_modules 文件夹删除 然后运行以下命令: cnpm install 这样就可以正常运行
- [luogu2680] 运输计划
题面 很明显, 由于是求最长路的最小值, 我们可以使用二分求解. 我们二分一个长度\(mid\), 将所有使得\(dis(u, v)\)大于\(mid\)的点对\((u, v)\)找出, 设总共有 ...
- virtualbox+vagrant学习-4-Vagrantfile-2-Configuration Version
Configuration Version 配置版本是vagrant 1.1+能够与vagrant 1.0保持向后兼容的机制.同时引入了引人注目的新特性和配置选项. 如果你运行了vagrant ini ...
- 拥抱.NET Core系列:MemoryCache 缓存域(转载)
阅读目录 MSCache项目 缓存域 写在最后 在上一篇“<拥抱.NET Core系列:MemoryCache 缓存选项>”我们介绍了一些 MSCache 的机制,今天我们来介绍一下 MS ...
- Linux Shell常用技巧(五)
十一. awk编程: 1. 变量: 在awk中变量无须定义即可使用,变量在赋值时即已经完成了定义.变量的类型可以是数字.字符串.根据使用的不同,未初始化变量的值为0或空白字符串&quo ...
- linux iSCSI target/initiator配置
linux iSCSI target配置全过程一:Install iSCSI target for Linux1,操作系统:[root@rac2 ~]# cat /etc/issueEnterpris ...
- SpringBoot与mongodb的结合
本文系列文章: 使用Shell 操作 MongoDB的技巧 MongoTemplate的使用技巧及其注意事项 敬请期待. 前言 最近公司想要做一个用户行为数据的收集,最开始想用mysql来存储 ...
- 【python3】爬取简书评论生成词云
一.起因: 昨天在简书上看到这么一篇文章<中国的父母,大都有毛病>,看完之后个人是比较认同作者的观点. 不过,翻了下评论,发现评论区争议颇大,基本两极化.好奇,想看看整体的评论是个什么样, ...
- Gitlab+Jenkins学习之路(十三)之发布Java项目到tomcat
一.新建一台虚拟机安装tomcat ()安装JDK 官网下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downl ...
- centos 中sshd莫名其妙不见了?
发现问题 遇到问题:首先莫要慌:事出有因:先检查一波: 首先呢,看一下/var/log/yum.log 是否有误删的记录: 如有被误删的操作的话:可以去看看日志:到底咋回事: 然后么 yum ins ...