Explore Then Commit (ETC) Algorithm
算法描述:
大体想法为先进行explore phase 尝试很多的arm,然后在commit phase 中只使用之前发现的最好的arm。
Formal:
Input: m
In round t, pull
At={t( mod k)+1argmaxμi(mk) if t⩽mk if t>mk
Regret Analysis
定义一些notation:
μ^i(t)Ti(t)Δi=Ti(t)1s=1∑t1(As=i)Xs=s=1∑t1(As=i)=u∗−μi (假设arm 1 是optimal)
Step 1:对于给定的k,找出regret 的bound
分解一下regret
regret = 每个arm拉的次数* 每个arm 对应的regret
Rn=nμ−E[∑t=1nμAt]=∑t=1nE[μ−μAt]=∑i=1KΔiE[Ti(n)]
每个arm被拉的次数
E[Ti(n)]=m+(n−mk)P(Amk+1=i)=m+(n−mk)P(μ^i(mk)⩾j=imaxμ^j(mk))
\begin{align}&P(\hat{\mu}_{i}(m k) \geqslant \max _{j \neq i} \hat{\mu}_{j}(m k))\\ &\leq P(\hat{\mu}_{i}(m k) \geqslant \hat{\mu}_{1}(m k))\text{ 第一步放缩,只关注跟最优arm相比}\\&\leq.P(\hat{\mu}_{i}(m k)-\mu_{i})-(\hat{\mu}_{1}(m k)-\mu_{1}) \geqslant \mu_{1}-\mu_{i})\end{align}
μ^i(mk): 由于假设每个xi 是1-subgaussian,μ^i(mk)是1/m-subgaussian
(μ^i(mk)−μi)−(μ^1(mk)−μ1) : (1/m+1/m)-subgaussian
因此:~≤exp(−2(.m2)2.Δi2)=exp(−4mΔi2)
Rn⩽i=1∑kΔi(m+(n−mk)exp(−4mΔi2))⩽kΔˉ(m+(n−mk)exp(−4mΔˉ2))
最后求导取optimal的k就可以了
For Example
k=2Rn⩽mΔ+nΔexp(−4mΔ2)
Given Δ,m minimizes {mΔ+Δexp(−4mΔ2)}
which is m=⌈Δ24log(4nΔ2)⌉
and for this choice the regret is bounded by Rn≤Δ+Δ4(1+log(4nΔ2))
此时得到的bound 称为: instance-dependent
Δ∼n1maxΔminm{Rn}∼O(n)
此时得到的bound称为instance-independent / worst case performance
可以发现,都对Δ 的信息有要求,对于无Δ 信息的情况下得到的bound:
minmmaxΔ{mΔ+nΔexp(4−mΔ2)}∼o(n32) worse than O(n) ( adversarial )
Doubling Trick:
有时的问题是,我们也不知道n是多少,该如何解决?
Dowbling trick: Rn
- For t=1, run algorithm with n=1
- For t=2,3,… with n=2
- For t=4.5.6,7,⋯ with n=4
- ⋯