本篇的主题是对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策略才有如下的形式:

参考文献:

[1] New Exponential Bounds and Approximations for the Computation of Error Probability in Fading Channels, Marco Chiani, Senior Member, IEEE, Davide Dardari, Member, IEEE, and Marvin K. Simon, Fellow, IEEE. 

【RL系列】Multi-Armed Bandit笔记补充(二)的更多相关文章

  1. 【RL系列】Multi-Armed Bandit笔记补充(一)

    在此之前,请先阅读上一篇文章:[RL系列]Multi-Armed Bandit笔记 本篇的主题就如标题所示,只是上一篇文章的补充,主要关注两道来自于Reinforcement Learning: An ...

  2. 【RL系列】Multi-Armed Bandit笔记——UCB策略与Gradient策略

    本篇主要是为了记录UCB策略与Gradient策略在解决Multi-Armed Bandit问题时的实现方法,涉及理论部分较少,所以请先阅读Reinforcement Learning: An Int ...

  3. 【RL系列】Multi-Armed Bandit问题笔记

    这是我学习Reinforcement Learning的一篇记录总结,参考了这本介绍RL比较经典的Reinforcement Learning: An Introduction (Drfit) .这本 ...

  4. Mysql学习笔记(二)数据类型 补充

    原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...

  5. [.NET] 《Effective C#》读书笔记(二)- .NET 资源托管

    <Effective C#>读书笔记(二)- .NET 资源托管 简介 续 <Effective C#>读书笔记(一)- C# 语言习惯. .NET 中,GC 会帮助我们管理内 ...

  6. [.NET] 《Effective C#》快速笔记(二)- .NET 资源托管

    <Effective C#>快速笔记(二)- .NET 资源托管 简介 续 <Effective C#>读书笔记(一)- C# 语言习惯. .NET 中,GC 会帮助我们管理内 ...

  7. 《Effective C#》快速笔记(二)- .NET 资源托管

    简介 续 <Effective C#>读书笔记(一)- C# 语言习惯. .NET 中,GC 会帮助我们管理内存,我们并不需要去担心内存泄漏,资源分配和指针初始化等问题.不过,它也并非万能 ...

  8. C#可扩展编程之MEF学习笔记(二):MEF的导出(Export)和导入(Import)

    上一篇学习完了MEF的基础知识,编写了一个简单的DEMO,接下来接着上篇的内容继续学习,如果没有看过上一篇的内容, 请阅读:http://www.cnblogs.com/yunfeifei/p/392 ...

  9. Dynamic CRM 2013学习笔记(二十八)用JS动态设置字段的change事件、必填、禁用以及可见

    我们知道通过界面设置字段的change事件,是否是必填,是否可见非常容易.但有时我们需要动态地根据某些条件来设置,这时有需要通过js来动态地控制了. 下面分别介绍如何用js来动态设置.   一.动态设 ...

随机推荐

  1. 渲染引擎,HTML解析

    这是how browser to work 的翻译 转自:携程设计委员会 渲染引擎 渲染引擎的职责是……渲染,也就是把请求的内容显示到浏览器屏幕上. 默认情况下渲染引擎可以显示HTML,XML文档以及 ...

  2. rpm-yum_install_software

    rpm -ivh software_name安装软件 打印详情rpm -q software_name查询软件是否安装rpm -ql software_name查询安装目录rpm -e softwar ...

  3. Linux操作系统基本操作(1)

    1.常用快捷键 Ctrl+d 键盘输入结束或退出终端 Ctrl+s 暂停当前程序,暂停后按下任意键恢复运行 Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg Ctrl+a 将光标移至输入行头 ...

  4. Vue脚手架搭建步骤

    Vue脚手架的搭建步骤 1.   去node.js官网下载node.js并安装,如下图: 2.   找到下载的文件并点击安装: 一直到finish完成.安装成功 3.   通过DOS密令打开: 输入: ...

  5. CodeIgniter Doctrine2基本使用(一)(转)

    CodeIgniter Doctrine2基本使用(一) 之前写了一篇文章叫作<CodeIgniter 3.0整合Doctrine2>里面介绍了一些简单的Doctrine2的用法,当然我也 ...

  6. composer install 失败,无法用 unzip 解压归档、proc_open() 函数未支持

    前言 记得最近好像有不只一个朋友问过 composer install 安装依赖时出现异常,导致项目无法运行.下面简单记录一下其中 2 个比较频繁问题的解决办法. 问题 & 解决 1.unzi ...

  7. 【10.15总结】绕过CSRF的Referer保护

    今天下午可能要出远门,所以现在就把总结写好了. Write-up地址:[Critical] Bypass CSRF protection on IBM 这个CSRF漏洞存在于IBM的修改邮箱页面,修改 ...

  8. Datax3.0使用说明

    一.datax3.0介绍 1.DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL.Oracle等).HDFS.Hive.ODPS.HBase.FTP等各种异构数据源之间稳 ...

  9. Modelsim SE自动化仿真——如何将.do文件中自定义的库链接到testbench顶层模块

    我们用Modelsim SE进行仿真时,为了方便,一般会编写.do文件来启动当前仿真.关于.do文件的编写,一般网上都有成型的模板,我们只要稍微改几个参数,就可以符合我们的仿真需求了.但是如果仿真时需 ...

  10. Openssl自建CA

    查看证书相关指令 # 查看公钥数字证书 openssl x509 -in cacert.pem -noout -text # 查看私钥数字证书 openssl pkcs12 -in client-ce ...