bandit算法(3)--UCB算法

引言

前面已经介绍了两种bandit算法— ϵ \epsilon ϵ-greedy算法和softmax算法。现在我们来总结下这两种算法的共有属性:

  • 两种算法在每一轮选择时,默认都是选择到目前为止最好的臂;

  • 除此之外,算法会尝试去探索一些目前看起来不是最好的臂:
          - ϵ \epsilon ϵ-greedy算法探索的时候完全是随机的。
          -softmax算法探索是基于到当前时刻臂的收益概率。收益概率越高,选择的概率越高。

  • 两种算法都能够通过随着时间动态修改基本参数来实现更好的性能。

     这种随机性,或者仅仅考虑收益回报的算法有一个很明显的缺点就是健壮性比较差,很容易受噪音数据影响。本篇要介绍的UCB算法,是一种完全不同的算法。首先,它是完全不使用随机性的;其次,它除了要考虑收益回报外,还要考虑一点,这个收益回报的置信度有多高。
     问题来了,怎么来定义这个置信度呢?这是UCB算法的核心(UCB实Upper Confidence Bounds的首字母缩写)。实际UCB算法包括很多种。本文介绍的只是其中一种。现在,让我们来正式定义这个置信度以及整个UCB算法。
首先,考虑置信后定义的收益回报为:
                  这里写图片描述
其中 r s r_s rs为在s时刻观察到的收益; n i , t n_{i,t} ni,t为当当前t时刻,臂i被选中的次数。用一句话来描述这个新的收益就是,臂被选中的总次数中,有收益的占比。或者也可以说是收益的一个平均值。
然后,给每个臂赋予一个最终的取值:
                  bandit算法(3)--UCB算法_第1张图片

其他t为摇臂次数; n i , t n_{i,t} ni,t为i臂到t次时摇了多少次。公式的后一项衡量的就是置信度,也就是我们对于第一项的回报的估计的有多确信。
最后的UCB算法流程如下:
                  bandit算法(3)--UCB算法_第2张图片

算法是不是很好理解?

补充:
关于UCB的计算公式,还可以这么理解:
公式右边的第一项,可以称之为“Exploitation Term”; 第二项,可以称之为“Exploration Term”。 为什么? 首先,如果一个臂,到t时刻为止,已经尝试了很多次。那收益(UCB公式右边第一项)越高,越会继续采用。这就是Exploit; 此外,如果一个臂尝试的次数很少,那么UCB右边第二项就会比较高。也就是相对尝试的机会更高。这也就是Exploration。也就是相应也会鼓励去尝试哪些之前尝试的少的臂。
参考:
【1】bandit_algorithms_for_website_optimization
【2】Learning and Optimization for Sequential Decision Making Lecture 3: UCB Algorithm, Worst-Case Regret Bound

你可能感兴趣的:(机器学习,推荐系统)