多臂赌博机问题

有多个臂的游戏机器,摇动不同的臂会不同概率的产生不同数量的金币,一共N次机会,采用不同的策略来获得最多的金币。

—greedy策略

greedy策略

也就是贪心策略,以一定的次数去试验每一个臂,选择吐出金币最多的臂,然后一直摇下去,这样朴素的策略,也可以说属于朴素探索。

编程思路

  1. 初始化每个动作的回报和摇动该动作的次数。

  1. 每个臂都尝试n次,计算每个摇臂总的金币数。

  1. 比较出总回报最大的那个臂,一直摇动它。

缺陷

可能测试后,金币数多的臂的出币量会变小,一直摇一个臂,就要接受出币量小的区间,应该随时选择出币量最大的臂,而不是选择一次。使用除了要关注比较出的那个臂外,还要保留一定的概率去摇动其他的臂。使用引入—greedy策略

—greedy策略

取一个概率记为,每次动作以概率随机选择一个臂,再以1-的概率选择摇动出币量最多的那个臂。

编程思路

  1. 初始化总回报,每个动作的回报和摇动动作的次数。

  1. 利用上述概率策略选择一个臂a

  1. 臂a的摇动次数+1

  1. 根据动作a和环境返回的回报,更新动作a的平均回报。

  1. 计算总收益

Boltzmann策略

上述的策略概率分布并不合理,因为贪婪动作被选择的概率是,而非贪婪动作的概率都为。但是非贪婪动作也有好坏之分,不能被这样统一处理。而玻尔兹曼策略对动作采样的概率进行了软处理。

策略表达式为:

越小,越接近贪婪策略,越大,越接近均匀策略。

UCB策略

如图所示,假设多臂赌博机已知的几个拉杆动作-奖励分布曲线,我们会发现对应绿色曲线动作可以达到最大收益,但我们并不会去选择它,而是优先选择跨度最大的动作(蓝色曲线),从置信区间角度讲,其置信区间大,从概率统计角度讲,这种分布跨度越大,方差越大,说明对应的采样样本数量相对少,不确定性越大,而UCB正是一种偏向于对不确定性大的动作进行试探的算法。

UCB值主要包括两项,为

表示动作a 被选择的次数,表示选择动作总次数的对数,c 是一个权值。

简单地说,代表着开发,代表着探索。当当前动作被采样的次数很低时,不变,而在增加,值变大,不确定性越高,使得其被选择的概率越大;反之亦然。

三种策略对比

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值