今天中午吃什么-bandit算法

2020-10-29  本文已影响0人  神游物外的轮子

解决问题

参考帖子
赌场中多个老虎机,如何收益最大化

Thompson Sampling

假设每个臂的收益概率为p,进一步假设p概率分布符合beta(wins, lose)
通过beta分布生成的随机数大小,随机选出最大数对应的臂。有收益则wins+1,反之lose+1

# python实现的Thompson Sample
choice = numpy.argmax(pymc.rbeta(1 + self.wins, 1 + self.trials - self.wins))

UCB: Upper Confidence Bound

每个臂都试一次,然后选择\overline x_j(t)+\sqrt{\frac{2\ln t}{T_{j, t}}}公式最大值的臂
表达的含义是均值+标准差来均衡exploit和explore两方面

Epsilon-Greedy

选择(0,1)中较小值epsilon,每次做选择前抽取一个(0,1)的随机数e
如果e<epsilon,则随机选一个臂,否则选择目前平均收益最高的臂

朴素

先试几次,然后每次选择平均收益最高的臂

10000次遗憾模拟
上一篇下一篇

猜你喜欢

热点阅读