Multiarmed bandit problem(多臂老虎机问题)的UCB1解法简介

最近在看蒙特卡洛树搜索相关的东西,看到了这个Multiarmed bandit problem。把自己的理解整理分享一下。

首先说一下Multiarmed bandit problem是什么问题
Multiarmed bandit根据我看各种介绍得到的理解是这样的一种赌博工具:
1.它有多个可操作的拉杆
2.操作每个拉杆所得的收益是随机的,但是每个拉杆收益的平均值(期望值)并不相同,有些高,有些低
3.赌博人对于这个老虎机毫无了解,而且也没法通过观察别人的操作来获得了解(因为没有别人),只能自己去探索
4.当然,问题的核心是赌博人想在多次尝试的情况下获得最大化的收益。

UCB1算法的做法是这样的:
1.首先把所有的拉杆都尝试一遍
2.计算每个拉杆的confidence intervals , confidence intervals是一个构造出来的统计区间,公式为:
(xi - (2ln(n)/ni)**0.5 , xi + (2ln(n)/ni)**0.5)
上式中
xi: the mean payout for machine i
ni: the number of plays of machine i
n: the total number of plays
3. 选择confidence intervals上限最大的那个拉杆,然后重新计算各拉杆的confidence intervals
4. 重复3

根据公式可以看到对于一个拉杆选择的次数越多,它的 confidence intervals越窄,上限有较大可能会被没有充分开发的其它拉杆超越,实现了探索资源的按寻分配,并最终落在最优的选择上面(每个拉杆的 confidence intervals都变得越来越窄,最终的上限体现的还只是平均收益)

另外大家也可能看到,UCB1算法是需要一个先决条件的:收益是分布在0-1之间的。不然不等量级的数字放在一起构造的confidence intervals就先去了意义。

时间有限就写到这儿吧。

两篇讲的比较好的文章:
http://blog.csdn.net/wangweiran1/article/details/50533275
https://jeffbradberry.com/posts/2015/09/intro-to-monte-carlo-tree-search/

你可能感兴趣的:(UCB1,多臂老虎机,multiarmed,bandit,problem,算法实践,人工智能)