Bandits 多臂***

首先探索和利用

探索Exploration——发现***的分布,探索新的可能
利用Exploitation——从最beneficial的***上寻求利益最大,在已知中找最优

随机MAB

最简单的MAB(Multi-Armed Bandits

Arm可以看作一个握杆,***的一个动作

每个***有k个Arm作为可能的行动{1..k}

每个Arm_i都产生奖励,服从一个均值为u_i的分布P_i

有1...T轮:
——每轮都做一个动作i_t
——从Arm{1..k}种选择一个Arm_i
——然后收到服从P_i,t的一个奖励

我们的目标就是最大限度的减少累积遗憾Regret:
最佳事后预期累计回报—***的预期累计奖励

最佳事后预期累计回报:
就是在啥都知道的情况下,每轮都做最优选择得到的回报 uT 这里u=max(x_i*u_i)
***的预期累计奖励:
啥也不知道的情况下,每轮随机做选择得到的回报期望

这是最简单的随机多臂***基础,就是尽可能的去实现像全部已知一样的好效果。

Greedy 贪心算法

改进了一下基础MAB

把一个动作i已经观测到的报酬取平均作为该动作i的估计值
而没有观测过的动作,则使用一个初始值Q0作为估计值,直到使用过之后,使用观测值作为估计值
每轮观测之后更新估计值

贪心算法就是选择估计值最优的动作,但这样有可能会陷入局部最优——尝试到大于初始值的动作之后,不再探索。

𝜀-Greedy 加参数的贪心

前面对估计值的设置不变
但是每轮有𝜀概率再重新在{1..k}种去做随机探索,1-𝜀概率从已知的最优种去做选择

超参𝜀控制探索和利用的概率

改进过的Greedy,有一定可能会去探索,跳出局部找到全局最优解

注意:如果找到全局最优,可能还会继续探索 所以超参不能太大 不然后期会浪费 降低收益率

𝜀=0就是普通的贪心算法

贪心算法的效果

探索概率𝜀的取值

贪心算法的效果对比

可以看到
1.纯贪心算法增长快,但是整体奖励低
2.𝜀-贪心算法的长期回报更好
3.𝜀=0.01-贪婪开始比较缓慢(很少探索),但最终会优于𝜀=0.1-贪婪(过度探索后的开发)

初始值Q0的取值

贪心算法的效果对比

悲观主义:初始Q低于可观察到的回报➡️仅尝试一只手臂
Q0很小 可能就会在有收益后 只尝试那一个

乐观:初始Q高于可观察的奖赏➡️探索更多手臂
Q0足够大 就能探索很多 然后找到最好的

中段初始Q➡️最多探索一次
但纯贪心算法从来没有探索手臂超过一次

贪心的局限性

1.我们可以通过乐观的初始值Q0和减少𝜀来改进基础的贪心算法

2.探索和利用在这里过于“不同”
——探索行动完全无视有希望的动作,对所有Arm一视同仁:其实应该倾向于更有潜力的
——只有在“冷启动”的情况下初始值技巧才有帮助。

3.利用对估计的可信度视而不见
——应该根据估计可信度来判断
(比如找收益最大 只尝试几次可能只是巧合)

UCB 上置信边界算法

动作的估计值由两部分组成
UCB估计值

给估计的收益u加上了置信区间(有上下限),如果尝试次数多了,区间就会变小
开方内很大就是没怎么尝试,潜力很大
u很大就是尝试过,收益真的很大

挑选上限最大的:u很大或者开方内的很大,或者都大

同时做到了利用和探索 同时进行 ——UCB的优点
缺点是可能会停在某个不好的点一段时间 一开始会有点低 但最终会超过 可以看和贪心算法的对比图
UCB效果更好

全部评论
赌bo机都马赛克掉了..
点赞 回复 分享
发布于 2020-07-15 00:37

相关推荐

程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
流浪的神仙:无恶意,算法一般好像都得9硕才能干算法太卷啦
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务