多臂赌博机算法

多臂赌博机算法(Multi-armed Bandits)


参考博客: https://zhuanlan.zhihu.com/p/397425597

1. 多臂赌博机

1.1 问题定义

赌博机有k个摇臂,玩家投一个游戏币以后可以按下任意一个摇臂,每个摇臂以一定的概率吐出硬币作为回报,且每个摇臂的中奖概率不同。

玩家的目标是通过一定的策略获得最大化的累积回报

1.2 相关概念

  • A t A_t At—— 在时间步 t时选择的动作;

  • R t R_t Rt—— 在时间步 t 时获得的回报;

  • q ∗ ( a ) q^*(a) q(a)—— 动作a的期望回报(真实值);

  • Q t ( a ) Q_t(a) Qt(a) —— 动作 a 在 t时刻估计值(平均回报值);

  • 贪心动作 —— 在 t时选择估计值最大的动作:
    A t = arg ⁡   m a x a Q t ( a ) A_t=\arg\ \underset{a}{max}Q_t(a) At=arg amaxQt(a)

多臂赌博机本质上是一类简化的强化学习问题,这类问题具有非关联的状态(每次只从一种情况输或赢中学习),而且只研究可评估的反馈。每次行动的结果只和当前的状态关联而不受历史行动的结果影响(每次拉摇臂的回报只和老虎机设置的概率相关,之前输赢的结果不会影响本次行动)。我们可以定义这种问题是具有单一状态的马尔科夫决策过程

2. 问题求解常见方法

  • 全能全知(Omniscient)
    即已经知道回报概率,那最直接的策略就是一直玩回报概率最大的这一台。

  • 随机算法(Random)
    随机策略是最直接的一种方法,像一个无知的赌徒一样每一轮随机地去拉一个摇臂。

  • 贪心算法(Greedy)
    先把所有的摇臂都拉一次,然后选择回报最好的老虎机一直玩下去。这种策略很明显不鼓励进行探索,而且很容易被每个摇臂第一遍的回报结果误导

  • 其他优化算法
    从前面可以知道,只探索或者只开发都是不够明智的行为,要权衡开发与探索,需要另寻新的方法,例如ε−贪心算法(ε-greedy)、最大置信区间上界算法(Upper Confidence Bound)Softmax-贪心算法(Softmax-greedy)、ε−下降算法(ε-decreasing)、汤普森采样(Thompson sampling)

3. ε−贪心算法(ε-greedy)

3.1 算法流程

其表示在智能体做决策时,有一很小的正数 ε(<1) 的概率非贪心地随机选择一个动作去探索(包括所有动作),剩下 1 − ε 的概率选择一个贪心策略。

具体操作就是,每次玩的时候就抽一个0到1的随机数,如果这个数大于 ε ,则拉你认为中奖概率(预估中奖概率)最大的那个拉杆。如果小于 ε ,则随机再选择一个拉杆(也包括中奖概率最大的那个拉杆),得到收益后,更新这个拉杆的预估中奖概率,以便于下次选择做参考。

∣ A ∣ |A| A代表全部可选的动作, ε ∣ A ∣ \frac{ε}{|A|} Aε代表未知动作a被选中的概率,贪心动作被选中的概率为 A t = 1 − ε + ε ∣ A ∣ A_t=1-ε+\frac{ε}{|A|} At=1ε+Aε

3.2 伪代码

image-20231124190508409

a r g m a x arg max argmax选择最优的 Q ( i ) Q(i) Q(i), Q ( i ) Q(i) Q(i)为摇臂i的平均回报, c o u t ( i ) cout(i) cout(i)为摇臂i的选中次数。

3.3 缺点及优化点

缺点:
收敛较慢;不适用于非平稳的分布。

优化的方法:
Ɛ-下降算法(Ɛ-decreasing)—— 让 ε 随着时间减小;
乐观初始估计(Optimistic Initialization) —— 初始值 Q 0 ( a ) Q_0(a) Q0(a)设置大一点,鼓励探索;
③ 在 ε 随机选择时,可以更有目的性地选择,而不是盲目选择,一个简单的办法就是尽量选择之前选择少的摇臂,因为它们潜在奖励可能更高。改进这一点,可以用到新的算法——最大置信区间上界算法.

4. 最大置信区间上界算法(Upper Confidence Bound,UCB)

4.1 概念

ε-greedy 贪心动作选择面临着非贪心动作的选取,但它的选取不是根据动作的潜力值(成为最有动作的潜力)来,而是等概率选择所有动作。

而UCB这种偏向于对不确定性大的动作进行试探的算法,增加采样样本少(被执行次数低的动作)被选中的概率.

UCB则是采用置信水平来实现对开发与探索之间的平衡。

不确定行为优先

image-20231124173245925

如上图,横轴为各动作的奖励值,纵轴为概率。若选择绿色的 a 3 a_3 a3可以获得最大回报,但不确定性为优先会选择蓝色的 a 1 a_1 a1动作。 a 1 a_1 a1的动作-奖励分布曲线置信区间大,分布跨度大,方差大,说明对应的采样样本数量较少,不确定较大

4.2 算法思路

UCB值包括两项, Q t ( a ) + U t ( a ) Q_t(a)+U_t(a) Qt(a)+Ut(a)

Q t ( a ) Q_t(a) Qt(a)为当前动作-回报的实际分布,也就是实际的Q函数(对状态和动作均进行评估,在时间t时采取动作a后,得到的期望累积奖励

U t ( a ) U_t(a) Ut(a)为对该动作不确定的一种度量。
A t = arg ⁡   m a x a [ Q t ( a ) + U t ( a ) ] = arg ⁡   m a x a [ Q t ( a ) + c l n t N t ( a ) ] A_t=\arg\ \underset{a}{max}[Q_t(a)+U_t(a)]\\=\arg\ \underset{a}{max}[Q_t(a)+c\sqrt{\frac{lnt}{N_t(a)}}] At=arg amax[Qt(a)+Ut(a)]=arg amax[Qt(a)+cNt(a)lnt ]
其中,c(>0)是对探索力度的控制系数,一个小正数,决定了置信指数; N t ( a ) N_t(a) Nt(a)是动作a在时刻t时被选择的次数,可见当该值增大时, U t ( a ) U_t(a) Ut(a)会减小,而如果没选择动作a,随着t增大, U t ( a ) U_t(a) Ut(a)会增大。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值