感觉多臂赌博机方面的中文文献很少,偶尔碰到,记录一下,方便其它人学习。感谢原作者: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). 它被广泛应用于广告推荐系统,源路由和棋类游戏中.
描述
假设有KK个老虎机并排放在我们面前,我们首先给它们编号1,...i,...,K1,...i,...,K,每一轮,我们可以选择一个老虎机来按,同时记录老虎机给出的奖励. 假设各个老虎机不是完全相同的,经过多轮操作后,我们可以勘探出各个老虎机的部分统计信息,然后选择那个看起来奖励最高的老虎机. 在多臂赌博机中,我们把老虎机称为臂.
这里有两个问题:
奖励以什么方式产生
我们可以想见有很多种方式产生这种奖励
* 随机式(stochastic bandit): 臂ii的奖励服从某种固定的概率分布DiDi
* 对抗式(adversarial bandit): 赌场老板使坏,会动态调整臂的奖励,比如让你选的臂的奖励很低,但是其它未选的臂奖励变高.注意这里赌场老板不能也不会使全部臂的奖励变为0,因为这样会使我们无法得到奖励,这时我们体验到的是任何策略都是无差别的.
* 马尔可夫式(Markovian bandit): 臂奖励由马尔可夫链定义.
如何测量策略的好坏
简单的以总奖励作为测量策略好坏的标准是不切实际的. 所以我们定义遗憾(regret)作为策略好坏的指标,指的是我们可以达到的最理想总奖励与实际得到的总奖励.
随机式(stochastic bandit)
在本节中只讨论随机式多臂赌博机问题及UCB策略集,并假定各臂给出的奖励XiXi是归一化到[0,1][0,1]之间的随机变量,其期望用μiμi表示. 在第t轮的奖励用Xi,tXi,t表示.
同时,XiXi和XjXj独立,Xi,tXi,t 和Xi,sXi,s独立.
我们把该问题数学化:
定义随机式多臂赌博机:
已知参数: 臂数KK,轮数T≥KT≥K
未知参数: 在[0,1]区间上的各臂分布DiDi
过程: 每轮(1)从1,...,K1,...,K中选择一个臂itit. (2)该臂独立地给出服从DitDit的奖励
同时我们需要定义策略的好坏指标--累积遗憾:
定义: 给定一个策略AA和一个动作集1,...i,...,K1,...i,...,K,在TT时间后AA的累积遗憾是最佳臂的期望奖励与AA的期望奖励之差.
在上述随机变量XiXi中,我们总可以找到一个期望最大的臂,使得:
同时我们可以定义
其中σ()σ()表示一个从大到小排序的置换.
一个选择策略AA在T轮后获得的奖励定义为:
所以,策略AA的累积遗憾RA(T)RA(T)为:
其中Gi∗(T)Gi∗(T)为理想策略所获得的收益,该策略表示我们已知那个期望最大的臂并总选择那个臂.
所以一个好的策略是使
尽可能小.
UCB1算法
这里我们介绍一个最常见的bandit策略--UCB1算法,该算法的精神被认为是乐观地面对不确定性:我们首先猜测各臂可能给出的奖励,然后选择那个最高臂,如果实际的奖励较少,我们会尽快地降低对该臂的猜测,反之,我们就尽量多选择这个臂. 这里面的猜测,其实就是对各臂的奖励建立了一个指数,通过动态调整这个指数,我们最终将确定那个期望奖励最高的臂.
UCB1算法:
在前KK轮,每臂各选择一次,
在t=K,K+1...t=K,K+1...轮:
- 选择指数IiIi最大的臂,其中Ii=x¯i+2logtni−−−−√Ii=x¯i+2logtni,其中x¯ix¯i是均值,nini是臂ii当前累积被选择的次数
- 记录获得的奖励,并更新x¯ix¯i和nini
当UCB1算法被执行时,我们可以确定如下定理,其中Δi=μ∗−μiΔi=μ∗−μi:
定理: UCB1累积遗憾的期望不超过
8∑i:μi<μ∗logTΔi+(1+π2/3)(∑j=1KΔj)8∑i:μi<μ∗logTΔi+(1+π2/3)(∑j=1KΔj)
定理的证明我就不在这里列出了,具体可以参考Finite-time Analysis of the Multiarmed Bandit Problem.
我们发现UCB1算法的累积遗憾期望是O(logT)O(logT)的,这是不是就足够了呢? 当然不是,如果最坏情况下的累积遗憾过高,该算法其实是没有意义的.
UCB1最坏情况
定理: 最坏情况下的UCB1累积遗憾不超过O(KTlogT−−−−−−−√)O(KTlogT)
我们通过累积遗憾期望函数分析对其进行简单的证明:
首先,我们对累积遗憾期望进行偏微分,得到
让它等于0,则有Δi=8logT1+π2/3−−−−−√=O(logT−−−−√)Δi=8logT1+π2/3=O(logT),但是这时是RR的一个极小值点R=O(KlogT−−−−√)R=O(KlogT).同时,如果我们让ΔiΔi尽可能小的话,RR将变得任意大,但是这时所有的奖励都差不多,所以些时还是极小值. 如果我们让ΔiΔi等于1的话,我们还是得到R=O(KlogT−−−−√)R=O(KlogT)
其实,如果我们让Δi=ΔΔi=Δ,这时,累积遗憾期望将会是ΔTΔT,代入公式可得最坏情况下的累积遗憾为O(KTlogT−−−−−−−√)O(KTlogT)
NEXT
下节我会对随机式bandit进行理论上的描述和其它UCB算法的总结.
3381


:&spm=1001.2101.3001.11974&articleId=51247677&d=1&t=3&u=e50df47a9e244f7d99d1973c1324599a)

被折叠的 条评论
为什么被折叠?



