1、Beta分布

  • 定义域:[0,1]
  • 参数:α,β\alpha,\betaα,β,均为正值参数,又称为形状参数

1.1 Beta分布的概率密度函数

f(x,α,β)=constant⋅xα−1⋅(1−x)β−1=xα−1(1−x)β−1∫01uα−1(1−u)β−1du=Γ(α+β)Γ(α)Γ(β)xα−1(1−x)β−1=1B(α,β)xα−1(1−x)β−1f(x,\alpha,\beta) =constant \cdot x^{\alpha-1} \cdot (1-x)^{\beta-1} \\[2ex] \qquad =\frac{x^{\alpha-1}(1-x)^{\beta-1}}{\int_0^1 {u^{\alpha-1}(1-u)^{\beta-1}} \,{\rm d}u}\\[2ex] \qquad =\frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)}x^{\alpha-1}(1-x)^{\beta-1}\\[2ex] \qquad = \frac{1}{B(\alpha,\beta)}x^{\alpha-1}(1-x)^{\beta-1}f(x,α,β)=constant⋅xα−1⋅(1−x)β−1=∫01​uα−1(1−u)β−1duxα−1(1−x)β−1​=Γ(α)Γ(β)Γ(α+β)​xα−1(1−x)β−1=B(α,β)1​xα−1(1−x)β−1

\quad 其中,Γ\GammaΓ 为 Gamma 函数,是阶乘的扩展:

  • 当n为正整数时,n的阶乘定义如下:n!=n∗(n−1)∗(n−2)∗…∗2∗1n! = n * (n - 1) * (n - 2) * … * 2 * 1n!=n∗(n−1)∗(n−2)∗…∗2∗1
  • 当n不是整数时,n!为:
    Beta分布的均值是:
    αα+β\frac{\alpha}{\alpha+\beta}α+βα​
    Beta分布的方差是:
    αβ(α+β)2(α+β+1)\frac{\alpha\beta}{(\alpha+\beta)^2(\alpha+\beta+1)}(α+β)2(α+β+1)αβ​
    Beta分布的图形:

    \quad 从Beta分布的概率密度函数的图形我们可以看出,Beta分布有很多种形状,但都是在0-1区间内,因此Beta分布可以描述各种0-1区间内的形状(事件)。因此,它特别适合为某件事发生或者成功的概率建模。同时,当α=1,β=1的时候,它就是一个均匀分布。
    \quad贝塔分布主要有 α和 β两个参数,这两个参数决定了分布的形状,从上图及其均值和方差的公式可以看出:
    1)α/(α+β)也就是均值,其越大,概率密度分布的中心位置越靠近1,依据此概率分布产生的随机数也多说都靠近1,反之则都靠近0。
    2)α+β越大,则分布越窄,也就是集中度越高,这样产生的随机数更接近中心位置,从方差公式上也能看出来。

1.2 棒球运动员击球率的例子

\quad 为了衡量一个棒球运动员的击球率。
\quad 首先在运动员打球之前,我们就先对他的击球率有一个预测值(先验概率)。假设我们预计运动员整个赛季的击球率平均值大概是0.27左右,范围大概是在0.21到0.35之间(根据历史运动员的击球率)。那么用贝塔分布来表示,我们可以取参数 α=81,β=219,因为α/(α+β)=0.27,图形分布也主要集中在0.21~0.35之间,非常符合经验值,也就是我们在不知道这个运动员真正击球水平的情况下,我们先给一个平均的击球率的分布。

\quad 假设运动员一次击中,那么现在他本赛季的记录是“1次打中;1次打击”。那么我们更新我们的概率分布,让概率曲线做一些移动来反应我们的新信息。
Beta(α0+hits,β0+misses)Beta(\alpha_0+hits,\beta_0+misses)Beta(α0​+hits,β0​+misses)
\quad 其中,α0=81、β0=219\alpha_0=81、\beta_0=219α0​=81、β0​=219是初始参数。hits表示击中的次数,misses表示未击中的次数。假设赛季过半时,运动员一共打了300次,其中击中100次。那么新的贝塔分布是Beta(81+100,219+200),如下图:

\quad 可以看出,曲线更窄而且往右移动了(击球率更高),由此我们对于运动员的击球率有了更好的了解。新的贝塔分布的期望值为0.303,比直接计算100/(100+200)=0.333要低,是比赛季开始时的预计0.27要高,所以贝塔分布能够抛出掉一些偶然因素,比直接计算击球率更能客观反映球员的击球水平。

总结:

\quad这个公式就相当于给运动员的击中次数添加了“初始值”,相当于在赛季开始前,运动员已经有81次击中219次不中的记录。 因此,在我们事先不知道概率是什么但又有一些合理的猜测时,贝塔分布能够很好地表示为一个概率的分布

参考:
推荐算法之Thompson(汤普森)采样 - 光彩照人 - 博客园
贝塔分布(Beta Distribution)简介及其应用 | 数据学习者官方网站(Datalearner)

2、Multi-Armed Bandit

2.1 简介


\quad 我们有 k 个Bandit,每个Bandit都有获得收益的概率,但是未知,所以我们只能通过实验来计算这个概率。根据大数定律,随着我们在一个 Bandit 上试验次数越来越多,频率=概率,我们就可以得到该 Bandit 收益率 的“真实值”。
\quad 但是每次实验需要投1币,在每一个Bandit上做大量试验代价太大。
\quad 所以我们需要在 向当前已知的收益率最大的Bandit投币(利用) 和 向没怎么探索的Bandit投币(探索) 两个选择之间进行权衡。

2.2 问题定义

\quad Bernoulli multi-armed bandit 问题可以用一个 二元组 <A,R><\mathcal{A},\mathcal{R}><A,R>来描述:

  • 我们有 KKK 个Bandits,获得收益的概率为 {θ1,...,θK}\{\theta_1,...,\theta_K\}{θ1​,...,θK​}
  • 在每一个时间步 ttt,我们都会在一台 Bandit 上采取一个 action aaa,并且获得 reward rrr
  • A\mathcal{A}A 是动作集合,每一个动作表示与一台Bandit进行交互。动作 aaa 的价值是 expected reward Q(a)=E[r∣a]=θQ(a)=\mathbb{E}[r|a]=\thetaQ(a)=E[r∣a]=θ。如果在时间步 ttt 做出的 action ata_tat​ 是与 Bandit iii 进行交互,那么 Q(at)=θiQ(a_t) = \theta_iQ(at​)=θi​
  • R\mathcal{R}R 是 reward function。在 Bernoulli bandit 例子中,我们得到的 reward 是具有随机性的。在一个时间步 ttt,rt=R(at)r_t=\mathcal{R}(a_t)rt​=R(at​) 会以 Q(at)Q(a_t)Q(at​) 的概率为1,其他情况下为0。


2.3 Bandit Strategies

\quad 基于如何进行探索,有多种方式解决 the multi-armed bandit:

  • No exploration:最差的方式,例如:GreedyAlgorithmGreedy AlgorithmGreedyAlgorithm
  • Exploration at random:ϵ−GreedyAlgorithm\epsilon-Greedy Algorithmϵ−GreedyAlgorithm
  • Exploration smartly with preference to uncertainty:UCB、Thompson Sampling

3 ε-Greedy Algorithm

4 Upper Confidence Bounds

\quad 完全随机的探索 可能会选择到已经被证实了的收益率低的 Bandit,所以这种方法是低效的。有两种方法解决:1)降低 ϵ\epsilonϵ 的值;2)探索具有高价值 潜力 的action(直观上理解就是没咋探索过的,而且根据历史经验收益率不是很低的)。
\quad 如何衡量这种 高价值潜力?
\quad The Upper Confidence Bounds (UCB) algorithm 计算了 reward value 的置信上界 U^t(a)\hat{U}_t(a)U^t​(a):

4.1 Hoeffding’s Inequality

4.2 UCB1

\quad 自适应的 ppp。设置 p=t−4p=t^{-4}p=t−4 :

4.3 Bayesian UCB

\quad 在 UCB 和 UCB1 算法中,我们没有对奖励的先验分布进行假设,所以根据 Hoeffding 不等式得到的各个 Bandit 的 reward 的分布 是很相似的。
\quad 如果我们能提前知道 先验分布 ,就能更好地估计 reward 的 上界。

\quad 我们希望每个 Bandit 的 平均reward Q(a)Q(a)Q(a) 都服从下图的高斯分布 p(Q)p(Q)p(Q),我们希望 Q(a)<=Q^t(a)+Ut(a)Q(a) <= \hat{Q}_t(a) + U_t(a)Q(a)<=Q^​t​(a)+Ut​(a) 以 95% 的概率成立(即,置信率95%),所以置信区间需要为 [μ−2δ,μ+2δ][\mu-2\delta,\mu+2\delta][μ−2δ,μ+2δ]。所以需要 Q^t(a)+Ut(a)=μ+2δ\hat{Q}_t(a) + U_t(a) = \mu + 2 \deltaQ^​t​(a)+Ut​(a)=μ+2δ,即 Ut(a)=2δU_t(a)=2\deltaUt​(a)=2δ为2倍的标准差,其中μ=Q^t(a)\mu=\hat{Q}_t(a)μ=Q^​t​(a)为样本均值。

5、Thompson Sampling




举个视觉上很直观的例子:


\quad 上图 action 1,2,3的分布就分别为Beta(601,401),Beta(401,601),Beta(2,3). 所以,这里我们也能定量化地看出action 3之前试验的次数比较少,而action 1,2之前试验的次数已经很多了。


\quad 在Beta Bernoulli Bandit情形下的,贪心算法,和TS算法的伪代码如上图所示。
\quad 主要的区别在于两个算法中贪心算法每个time step第一步是estimate model,而TS算法中第一步则是sample model。也就是说,θ^k\hat{\theta}_kθ^k​决定的方法不同,一个是直接用sample average,即从sample中估计出来的成功率,因此根据历史经验收益率大的Bandit相应的θ^k\hat{\theta}_kθ^k​大,就会被选中。而与此不同的就是TS算法是sample一个model,即θ^k\hat{\theta}_kθ^k​是直接从后验的Beta(αk,βk)Beta(\alpha_k,\beta_k)Beta(αk​,βk​)分布中采样出来,对于没咋被探索的Bandit,例如 action 3 ,它的 θ^action3\hat{\theta}_{action\ 3}θ^action 3​是从红色曲线分布中采样出来的,相当于一个均匀分布,所以 θ^action3\hat{\theta}_{action\ 3}θ^action 3​ 仍有可能比较大,所以被探索的概率也比较高。

汤普森采样(Thompson sampling)相关推荐

  1. 【算法】如何根据算法在赌场发家致富?汤普森采样之多臂强盗算法!

    汤普森采样-Thompson Sampling 之概念篇 关键词:机器学习,在线学习,人工智能,强化学习 如果你已经熟悉了概念可以直接看代码篇: [算法应用]Thompson Sampling–汤普森 ...

  2. Thompson Sampling(汤普森采样)

    1.power socket problem 一个robot快没电了,Robot 进入了一个包含 5 个不同电源插座的充电室.这些插座中的每一个都会返回略有不同的电荷量,我们希望在最短的时间内让 Ba ...

  3. 蓄水池采样(Reservoir Sampling)

    在一个给定长度的数组中随机等概率抽取一个数据很容易,但如果面对的是长度未知的海量数据流呢?蓄水池采样(Reservoir Sampling)算法就是来解决这个问题的, 它在分析一些大数据集的时候非常有 ...

  4. 重要性采样(Importance Sampling)简介和简单样例实现

    重要性采样(Importance Sampling)简介和简单样例实现 在渲染领域,重要性采样这个术语是很常见的,但它究竟是什么呢?我们首先考虑这样的一种情况: 如果场景里有一点P,我们想计算P点的最 ...

  5. 蒙特卡洛采样_PR Sampling : 蒙特卡洛采样、重要性采样及python实现

    作者:刘浚嘉 专栏地址:https://www.zhihu.com/column/c_1188392852261134336 引言 还记得我们之前学过的贝叶斯推断吗?https://zhuanlan. ...

  6. 重要性采样(Importance Sampling)详细学习笔记

    重要性采样(Importance Sampling)详细学习笔记 文章目录 重要性采样(Importance Sampling)详细学习笔记 前言: 参考主体: on-policy 和 off-pol ...

  7. 如何通俗理解 beta分布、汤普森采样和狄利克雷分布

    如果想理解汤普森采样算法,就必须先熟悉了解贝塔分布. 一次伯努利实验(比如扔硬币,二元变量)叫做伯努利分布(Bernoulli distribution).多次伯努利实验叫做二项式分布(Binomia ...

  8. 图形学数学基础之重要性采样(Importance Sampling)

    作者:i_dovelemon 日期:2017/08/06 来源:CSDN 主题:Importance Sampling, PDF, Monte Carlo 引言 前面的文章[图形学数学基础之基本蒙特卡 ...

  9. Introduction to Multi-Armed Bandits——04 Thompson Sampling[2]

    Introduction to Multi-Armed Bandits--04 Thompson Sampling[2] 参考资料 Russo D J, Van Roy B, Kazerouni A, ...

  10. 随机采样和随机模拟:吉布斯采样Gibbs Sampling

    2016年05月12日 00:24:21 阅读数:45658 http://blog.csdn.net/pipisorry/article/details/51373090 吉布斯采样算法详解 为什么 ...

最新文章

  1. R语言数据描述性统计(Descriptive statistics)实战:数据全局描述信息、数值数据的描述性统计(Numerical data)、离散型数据的描述性统计(Categorical)
  2. 初谈SQL Server逻辑读、物理读、预读
  3. JavaScript学习总结(一)——ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)...
  4. 将数据从一个表剪切到另一个表中
  5. [C#]利用键代码自动转换生成字母键或其它键信息
  6. 为什么程序员更喜欢用google搜索? 因为正经!
  7. 并发、并行、线程、进程与CPU基本概念
  8. atitit.细节决定成败的适合情形与缺点
  9. 解释一下pack和unpack
  10. xampp apache无法启动的解决方法
  11. 谷歌有只AI,自动给黑白视频上色,走到哪它都认识你
  12. Attribute 和 Parameter 的区别
  13. Mac安装iproute2/dig/traceroute
  14. 林业与计算机结合的sci期刊,sci收录的林业期刊有哪些
  15. 米家扫地机器人尘盒怎么取_米家扫地机器人怎么清理灰尘盒
  16. mysql左链sql去重_MySql去重
  17. HDU 1107 武林 大模拟
  18. [M1]Daily Scum 10.11
  19. DSP 性能 GMAC 和 GFLOP含义
  20. RN iOS 真机器调试

热门文章

  1. chrome浏览器 下载网页视频的方法
  2. 爱淘宝手机版分类导航菜单弹出效果设计
  3. 虾皮入驻后怎么经营才能:快速出单?
  4. 程序员平时都是木讷的,但是谈到计算机或者程序的时候简直就是天才—兼借题发挥,谈谈语言及工具的选择...
  5. RationalDMIS 2020高级教程之变量写入EXCEL
  6. c语言变量表达式计算器,C语言表达式计算器~
  7. 对今日头条问答部分的预测-未来可能会挂掉
  8. 如何下载google play上的软件
  9. python期货交易_strategies/python版CTP商品期货交易类库.py at master · gzhou1024/strategies · GitHub...
  10. [转帖]江湖高手专用的“隐身术”:图片隐写技术