多臂赌博机,multi-armed bandit problem(1):


感觉多臂赌博机方面的中文文献很少,偶尔碰到,记录一下,方便其它人学习。感谢原作者:http://mlyixi.byethost32.com/blog/?tag=%E5%A4%9A%E8%87%82%E8%B5%8C%E5%8D%9A%E6%9C%BA


假想一个风投他想着他的收益最大化,这时他总会面临一个两难: 何时去投资那些已经成功的公司,何时去投资那些还没有成功但具有很大潜力的公司.这里套用股市里的一句话:收益总是伴随着风险的. 一个成功的风投必须处理好这个勘探-开发两难(exploration and exploitation tradeoff): 勘探过多意味着不能获得较高的收益,而开发过多意味着可能错过更高回报的机会.

在现实生活和商业中我们都会面对这种两难,而且没有正确的答案教你怎么去做--可能的原因是我们对世界的认识不够清楚(世界太复杂,我们太年轻!!!). 但是在数学领域, 这个问题已经被研究过,被称为多臂赌博机问题(multi-armed bandit problem),也称为顺序资源分配问题(sequential resource allocation problem). 它被广泛应用于广告推荐系统,源路由和棋类游戏中.

描述

假设有 K K个老虎机并排放在我们面前,我们首先给它们编号 1,...i,...,K 1,...i,...,K,每一轮,我们可以选择一个老虎机来按,同时记录老虎机给出的奖励. 假设各个老虎机不是完全相同的,经过多轮操作后,我们可以勘探出各个老虎机的部分统计信息,然后选择那个看起来奖励最高的老虎机. 在多臂赌博机中,我们把老虎机称为臂.

这里有两个问题:

奖励以什么方式产生

我们可以想见有很多种方式产生这种奖励
随机式(stochastic bandit): 臂 i i的奖励服从某种固定的概率分布 Di Di
对抗式(adversarial bandit): 赌场老板使坏,会动态调整臂的奖励,比如让你选的臂的奖励很低,但是其它未选的臂奖励变高.注意这里赌场老板不能也不会使全部臂的奖励变为0,因为这样会使我们无法得到奖励,这时我们体验到的是任何策略都是无差别的.
马尔可夫式(Markovian bandit): 臂奖励由马尔可夫链定义.

如何测量策略的好坏

简单的以总奖励作为测量策略好坏的标准是不切实际的. 所以我们定义遗憾(regret)作为策略好坏的指标,指的是我们可以达到的最理想总奖励与实际得到的总奖励.

随机式(stochastic bandit)

在本节中只讨论随机式多臂赌博机问题及UCB策略集,并假定各臂给出的奖励 Xi Xi是归一化到 [0,1] [0,1]之间的随机变量,其期望用 μi μi表示. 在第t轮的奖励用 Xi,t Xi,t表示.

同时, Xi Xi Xj Xj独立, Xi,t Xi,t 和 Xi,s Xi,s独立.

我们把该问题数学化:

定义随机式多臂赌博机:
已知参数: 臂数 K K,轮数 TK T≥K
未知参数: 在[0,1]区间上的各臂分布 Di Di
过程: 每轮(1)从 1,...,K 1,...,K中选择一个臂 it it. (2)该臂独立地给出服从 Dit Dit的奖励

同时我们需要定义策略的好坏指标--累积遗憾:

定义: 给定一个策略 A A和一个动作集 1,...i,...,K 1,...i,...,K,在 T T时间后 A A的累积遗憾是最佳臂的期望奖励与 A A的期望奖励之差.

在上述随机变量 Xi Xi中,我们总可以找到一个期望最大的臂,使得:

μ=max1iKμi μ∗=max1≤i≤Kμi

同时我们可以定义

i=σ(1) i∗=σ(1)


其中 σ() σ() 表示一个从大到小排序的置换.

一个选择策略 A A在T轮后获得的奖励定义为:

GA(T)=t=1TXit,t GA(T)=∑t=1TXit,t

所以,策略 A A的累积遗憾 RA(T) RA(T)为:

RA(T)=Gi(T)GA(T) RA(T)=Gi∗(T)−GA(T)

其中 Gi(T) Gi∗(T)为理想策略所获得的收益,该策略表示我们已知那个期望最大的臂并总选择那个臂.

所以一个好的策略是使

E(RA(T))=E(Gi<em>(T))E(GA(T))=μ</em>TE(GA(T)) E(RA(T))=E(Gi<em>(T))−E(GA(T))=μ</em>T−E(GA(T))


尽可能小.

UCB1算法

这里我们介绍一个最常见的bandit策略--UCB1算法,该算法的精神被认为是乐观地面对不确定性:我们首先猜测各臂可能给出的奖励,然后选择那个最高臂,如果实际的奖励较少,我们会尽快地降低对该臂的猜测,反之,我们就尽量多选择这个臂. 这里面的猜测,其实就是对各臂的奖励建立了一个指数,通过动态调整这个指数,我们最终将确定那个期望奖励最高的臂.

UCB1算法:
在前 K K轮,每臂各选择一次,
t=K,K+1... t=K,K+1...轮:

  1. 选择指数 Ii Ii最大的臂,其中 Ii=x¯i+2logtni Ii=x¯i+2log⁡tni,其中 x¯i x¯i是均值, ni ni是臂 i i当前累积被选择的次数
  2. 记录获得的奖励,并更新 x¯i x¯i ni ni

当UCB1算法被执行时,我们可以确定如下定理,其中 Δi=μμi Δi=μ∗−μi:

定理: UCB1累积遗憾的期望不超过

8i:μi<μlogTΔi+(1+π2/3)(j=1KΔj) 8∑i:μi<μ∗log⁡TΔi+(1+π2/3)(∑j=1KΔj)

定理的证明我就不在这里列出了,具体可以参考Finite-time Analysis of the Multiarmed Bandit Problem.

我们发现UCB1算法的累积遗憾期望是 O(logT) O(log⁡T)的,这是不是就足够了呢? 当然不是,如果最坏情况下的累积遗憾过高,该算法其实是没有意义的.

UCB1最坏情况

定理: 最坏情况下的UCB1累积遗憾不超过 O(KTlogT) O(KTlog⁡T)

我们通过累积遗憾期望函数分析对其进行简单的证明:
首先,我们对累积遗憾期望进行偏微分,得到

RΔi=8logTΔ2i+1+π23 ∂R∂Δi=8log⁡TΔi2+1+π23


让它等于0,则有 Δi=8logT1+π2/3=O(logT) Δi=8log⁡T1+π2/3=O(log⁡T) ,但是这时是 R R 的一个极小值点 R=O(KlogT) R=O(Klog⁡T) .同时,如果我们让 Δi Δi 尽可能小的话, R R 将变得任意大,但是这时所有的奖励都差不多,所以些时还是极小值. 如果我们让 Δi Δi 等于1的话,我们还是得到 R=O(KlogT) R=O(Klog⁡T)

其实,如果我们让 Δi=Δ Δi=Δ,这时,累积遗憾期望将会是 ΔT ΔT,代入公式可得最坏情况下的累积遗憾为 O(KTlogT) O(KTlog⁡T)

NEXT

下节我会对随机式bandit进行理论上的描述和其它UCB算法的总结.


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值