感觉多臂赌博机方面的中文文献很少,偶尔碰到,记录一下,方便其它人学习。感谢原作者:http://mlyixi.byethost32.com/blog/?cat=35
这一节我们来了解下多臂赌博机问题的提出和理论基础,最后讨论下UCB系列策略.当然,这里的多臂赌博机问题是随机式的. 随机式多臂赌博机的问题描述就不在这里重复了,可以参考上一节
理论
问题的证明
Lai & Robbins在1985年论证了对于某些特定的分布(只有一个实参的分布),存在有策略使得它的累积遗憾的期望服从 logn logn增长.同时也证明了对于任何策略任何次优臂,总有
当然他们也提出了一些针对特定分布的策略,虽然结果较好(对数增长的常数项较小),但是由于计算复杂度和特定分布的限制,并不具有较好的实用性.
改进
为了克服上面的缺点, Agrawal提出了基于采样平均值作为上部信心指数(upper confidence index)
的多臂赌博机策略,它将各臂采样平均值的某些函数作为该臂优越性的指标,然后总选取最优越的臂. 同时证明结果显示它们同样服从对数增长,只不过对数增长的常数项较大了些.
UCB策略
UCB1
该策略已经在上一节讨论过了,这里只列举下算法.
UCB1算法:
在前 K K轮,每臂各选择一次,
在 t=K,K+1... t=K,K+1...轮:
- 选择指数 Ii Ii最大的臂,其中 Ii=x¯i+2logtni−−−−√ Ii=x¯i+2logtni,其中 x¯i x¯i是均值, ni ni是臂 i i当前累积被选择的次数
- 记录获得的奖励,并更新 x¯i x¯i和 ni ni
UCB2
UCB2算法
在前 K K轮,每臂各选择一次,并置 ri=0 ri=0
- 选出指数 Ii Ii最大的臂,其中 Ii=x¯<em>i+a</em>n,ri Ii=x¯<em>i+a</em>n,ri,其中
an,ri=(1+α)ln(en/τ(r))2τ(r)−−−−−−−−−−−−−−−−√ an,ri=(1+α)ln(en/τ(r))2τ(r), 其中 τ(r)=⌈(1+α)r⌉ τ(r)=⌈(1+α)r⌉- 选择该臂 τ(ri+1)−τ(ri) τ(ri+1)−τ(ri)次
- ri++ ri++
定理: 如果 n≥max12Δ2i n≥max12Δi2,则总的遗憾期望不超过
∑i:μi<μ∗((1+α)(1+4α)ln(2eΔ2in)2Δi+cαΔi) ∑i:μi<μ∗((1+α)(1+4α)ln(2eΔi2n)2Δi+cαΔi)
e-Greedy策略
在多臂赌博机问题中贪婪算法并不适用,但是,可以改良一下,如Sutton &Barto在1998年提出的 ϵ−greedy ϵ−greedy算法,它简单地以 1−ϵ 1−ϵ的概率选择最大的采样均值的臂,而以 ϵ ϵ的概率去随机选择臂. 但是,它并不是对数增长的. 它需要人为地设定一个停止规则,而且,这个停止规则必然和各臂期望有关.
一个好的改良叫做 ϵn−greedy ϵn−greedy算法.
定义参数 c>0 c>0, d:0<d≤minΔi d:0<d≤minΔi和 ϵn=min(1,cKd2n) ϵn=min(1,cKd2n)
ϵn−greedy ϵn−greedy算法
在前 K K轮,每臂各选择一次,
- 以 1−ϵn 1−ϵn的概率选择最大的采样均值的臂,而以 ϵn ϵn的概率去随机选择臂.
- 更新 ϵn ϵn
虽然该方法在仿真中能得到很好的结果,但实际情况是各臂期望不可知,无法确定较好的 d d,所以只能设置一个较大的 c c(其实c,d可以合并成同一参数).
一般来说,如果 d d满足条件, c>5 c>5足够保证对数增长.
UCB1-NORMAL
UCB1-NORMAL算法
1. 如果有臂被选择的次数少于 ⌈8logn⌉ ⌈8logn⌉,那么就选择该臂
2. 否则,选择指数 Ii Ii最大的臂,其中 Ii=x¯i+16(qi−nix¯2i)ln(n−1)(ni−1)(ni)−−−−−−−−−−−−√ Ii=x¯i+16(qi−nix¯i2)ln(n−1)(ni−1)(ni), 其中 qi=∑x2i qi=∑xi2
3. 更新 x¯i x¯i和 qi qi定理
UCB1-NORMAL算法下总的遗憾期望不超过
256logn(∑i:μi<μ∗σ2iΔi)+(1+π22+8lnn)(∑i=1KΔi) 256logn(∑i:μi<μ∗σi2Δi)+(1+π22+8lnn)(∑i=1KΔi)
好了,这样就列举完了UCB基本算法了.当然,还有很多变种,留待以后补充. 但其实,各UCB算法的差异并不足够大.