多臂赌博机Multi-Armed Bandit(MAB)
1.问题来源:多臂赌博机问题
一个赌徒,要去摇老虎机,走进赌场一看,一排老虎机,外表一模一样,但是每个老虎机吐钱的概率可不一样,他不知道每个老虎机吐钱的概率分布是什么,那么每次该选择哪个老虎机可以做到最大化收益呢?
1)有K台机器,每次选取其中一台拉动杠杆,该机器提供一个随机的回报reward,每一台机器的reward服从特定的概率分布。
2)一个赌徒有N次拉杆的机会,他的目标是使得回报reward最大化,那么他要确定这N次选择机器的顺序。显然,作为一个聪明的赌徒,他会记录下每一次得到的reward,试图找出能给出最大reward的那台机器,尽量多次数的去拉这台机器 。
3) 对于每一轮选择,主要面对的问题是Exploitation-Exploration:
- Exploitation: 以最高的预期收益拉动手臂
- Exploration: 玩其他机器以获得有关它们的预期收益的更多信息
4)得到的收益称为reward,一般假设为伯努利分布,即0或1。得到的收益与真实的最大收益(最优)(上帝视角,假设一开始就知道哪个payoff最大,那我肯定拉哪个手臂)之间的差值称为regret。
2.探索-利用问题(Exploration-Exploitation dilemma)
经典的强化学习算法,多用于处理Exploitation(利用)-Exploration(探索)(EE)权衡(trade-off)问题,即一个最优选择问题。MAB也应用于随机调度(Stochastic scheduling)问题中。
探索-利用问题(Exploration-Exploitation dilemma):
- 仅探索(exploration-only),探索各个摇臂的奖赏均值,以相同的概率选择每一个摇臂;
- 仅利用(exploitation-only),每次选择当前平均奖赏最大的摇臂。
探索和利用两者之间是相互矛盾的,由于总的尝试次数是有限的,采用“探索”则无法每次选择最优的选项,选择“利用”则无法发现可能潜在的更优的选项,这就是强化学习中的“探索-利用窘境(Exploration-Exploitation dilemma)”所以要实现累积回报最大化,需要在“探索”和“利用”之间达到一个较好的折中。
一个问题,其中必须在竞争、选择之间以最大化其预期收益的方式分配固定的有限资源集,当每个选择的属性在分配时仅部分已知时,并且随着时间的推移可以更好地理解 或者通过为选择分配资源。
3.Bandit问题
1)基本的RL setting
在t=1,2,…,T的每个阶段中,一个bandit算法应该做如下两件事:
- 算法从 A中选择一个arm:
a(t)
- 算法观察到at这个arm返回的奖励(reward)
r(t)
2)Bandit问题的几类算法
经典bandit算法当中,我们要做的无非就是通过一类pull arm的策略,尽快找到比较好的“arm”(reward较高的arm),然后尽可能多的去拉这些比较好的arm就是了
- 贪心算法(uniform exploration,ϵ\epsilonϵ-greedy算法)无非就是永远以当前对每个arm的reward的估计直接作为依据。贪心算法(greedy algorithm)的思路非常直接,就是:使用过去的数据去估计(estimate)一个模型(model);选择能够optimize所估计模型的动作(action),主动的探索(active exploration)不足。
epsilon贪心算法: 每次决策时,以概率e进行仅探索(以均匀的概率随机选择一个摇臂);以概率1-e进行仅利用(选择目前为止平均奖赏最大的摇臂)。 - UCB(upper confidence bound)算法则是考虑了置信度的问题,因此考虑的是每个arm reward的置信区间的上界。
- softmax算法
softmax算法: 每次决策时,先计算所有摇臂的平均奖赏的softmax值,然后以这个值为摇臂的概率来选择摇臂。其中有个τ值,用来控制倾向于探索或利用的程度。
4. MAB类型
1)老虎机类型的MAB
老虎机情景是在环境不变的情况下stochastic bandit(随机MAB)
2)环境改变的MAB
如果环境改变(即环境就是随着时间/玩家的行为会发生变化)
也就是所谓的adversarial bandit就是说这些pi会被一个“对手”(也可以看成上帝)设定好。如果这是事先设定好,并且在玩家开始有动作之后也无法更改,我们叫做oblivious adversary setting; 如果这个对手在玩家有动作之后还能随时更改自己的设定,那就叫做adaptive adversary setting, 一般要做成zero-sum game了。
3)contextual MAB(cMAB)(MAB的变种)
几乎所有在线广告推送(dynamic ad display)都可以看成是cMAB问题。在这类问题中,每个arm的回报会和当前时段出现的顾客的特征(也就是这里说的context)有关。
期望的reward可以取决于外部变量。
a)线性回归模型来预测reward
假设reward和特征向量存在一个线性关系reward=xTθreward=x^T\thetareward=xTθ
在Contextual Bandits当中,p~=xTθ\tilde{p}=x^T\thetap~=xTθ,其中θ\thetaθ是需要学习的参数。
使用的线性回归-Ridge Regression来求解 θ\thetaθ:
x是观测到特征向量,如x= (荤菜,素菜,男,女,早饭,午饭,晚饭)
也就是reward(每道菜好吃的概率——就是你问题中想知道的结果)
输入:多次实验结果{(x1,reward1),…, (xN,rewardN)}
优化目标:
其中:
- X=[x1,…,xK]是K次实验观测的特征向量组成的矩阵,每一行代表一个特征向量
- Rewards = [reward1,…,rewardk]是K次实验的结果,reward=1/0
- ||IX||2为L2 normalization,防止过拟合,其中I为对角线矩阵
为求解θ\thetaθ ,对目标函数求导:
得到:
b)Bernoulli Bandit和Contextual Bandit的对比
- Bernoulli Bandit
在Bernoulli Bandit中,我们假设reward是服从伯努利分布的:
对于mean rewardθ\thetaθ:先验分布(prior distribution)是Beta分布,而每个arm reward的分布是以 θ\thetaθ为参数Bernoulli(伯努利)分布。容易知道,在这种情况下,θ\thetaθ 的后验分布仍然是Beta分布
- Contextual Bandit
在Contextual Bandit中,我们假设reward和特征向量存在一个线性关系 :
是确定性的,无法直接定义出一个概率分布来描述 的不确定性。
c)不同赌博机对回报定义的对比
- 多臂赌博机问题中,只有行动影响回报。
一般多臂赌博机问题里,只有一个赌博机,它可以被当做一个槽机器。我们的agent可选行动的范围就是从赌博机的多个臂中选一个拉动。通过这样做,获得一个+1或者-1的回报。当agent学会了总是选择可以返回正回报的臂去拉动时,这个问题就被认为是解决了。在这种情况下,我们可以设计一个完全忽略掉环境状态的agent,因为从各方面来看,都只有一个单一不变的状态 - 上下文赌博机问题中,状态和行动都影响回报
上下文赌博机引入了状态的概念。状态就是对环境的一种描述;有多个赌博机;agent将需要学习如何基于环境状态来选择行动。 - 完备强化学习问题中,行动影响状态,回报可能在时间上延迟
4)Bandit with Knapsack问题
每台老虎机每天摇的次数有上限
这类问题以传统组合优化里的背包问题命名
5)Lipshitz bandit
不再有有限台机器,而有无限台(它们的reward function满足利普西茨连续性)。
5.Thompson sampling
是贝叶斯框架下在线学习的适用性算法
UCB算法和Thompson Sampling的区别:
- UCB算法——Frequentist学派
- Thompson Sampling——Bayesian (贝叶斯) 学派
Bernoulli (伯努利)分布(以概率p的到0/1)
多臂赌博机Multi-Armed Bandit(MAB)相关推荐
- 【科普】强化学习之多臂老虎机问题(bandit算法:softmax,random,UCB)
本博客上的文章分为两类:一类是科普性文章,以通俗易懂的语言风格介绍专业性的概念及其应用场景(公式极少或没有),适合入门阶段.另一类是专业性文章,在科普阶段上做出详细的专业性数学推导,深刻理解其概念的内 ...
- 论文导读 | 基于多臂赌博机(MAB)建模的SimRank计算
北京大学 刘钰 原文<SimTab: Accuracy-Guaranteed SimRank Queries through TighterConfidence Bounds and Multi ...
- 强化学习之三:双臂赌博机(Two-armed Bandit)
本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal t ...
- 国科大高级人工智能10-强化学习(多臂赌博机、贝尔曼)
文章目录 多臂赌博机Multi-armed bandit(无状态) 马尔科夫决策过程MDP(markov decision process 1.动态规划 蒙特卡罗方法--不知道环境完整模型情况下 2. ...
- 多臂赌博机问题代码实践
文章目录 多臂赌博机问题代码实践 1. 实现一个拉杆数为10的多臂赌博机 2. 实现多臂老虎机基本框架 3. 实现epsilon贪婪算法 4. 绘制累积懊悔随时间变化的图像 5. 绘制多种epsilo ...
- 推荐系统系列教程之十七:简单却有效的Bandit算法
编者按:之前推出了<推荐系统系列教程>,反响不错,前面已经推出了十六期,今天按约推出第十七期:简单却有效的Bandit算法.希望粉丝朋友们多点"在看",多多转发,我会在 ...
- 专治选择困难症——bandit算法
选择是一个技术活 著名鸡汤学家沃.滋基硕德曾说过:选择比努力重要. 我们会遇到很多选择的场景.上哪个大学,学什么专业,去哪家公司,中午吃什么,等等.这些事情,都让选择困难症的我们头很大.那么,有办法能 ...
- 推荐系统︱基于bandit的主题冷启动在线学习策略
推荐系统里面有两个经典问题:EE问题和冷启动问题. 什么是EE问题?又叫exploit-explore问题.exploit就是:对用户比较确定的兴趣,当然要利用开采迎合,好比说已经挣到的钱,当然要花: ...
- 强化学习基础——bandit
目录 为选择而生 为错误买单代价 经典方法 朴素Bandit算法 ε-Greedy算法 Thompson sampling算法 Thompson sampling算法流程 UCB UCB算法流程 Li ...
- 推荐系统详解(六)MAB问题
简单却有效的Bandit算法 我在之前的文章中表达过,推荐系统的使命就是在建立用户和物品之间的连接.建立连接可以理解成:为用户匹配到最佳的物品:但也有另一个理解就是,在某个时间某个位置为用户选择最好的 ...
最新文章
- Java Stub 研究学习(2)
- PAT甲级1088 Rational Arithmetic:[C++题解]分数的加减乘除
- Java Review - 并发编程_伪共享
- go包package的使用细节
- 中国电子学会scratch等级考试二级
- 全新一代云服务器S6,重新定义性价比
- 第一个flash游戏--配对游戏
- c语言指令保留字,C语言命令令、符号表
- 解决element-ui的el-select组件文字超过宽度时不出现横向滚动条问题
- 图论最短路:Bellman-Ford与其优化SPFA算法的一点理解
- python open 函数漏洞_Python系列之——编写已知漏洞exp实现批量getshell
- 现学活用的XPath爬取豆瓣音乐
- Nginx源码目录介绍
- ffmpeg之H265解码
- 大学物理-热学-教学总结
- 远程监控 java,远程监控Java应用
- oracle中sql关键字,Oracle常用的sql语句
- 通过Servlet生成验证码图片
- 你是阳光,你的世界充满阳光---心在哪,成就就在哪
- 下血本买的!1-3年的Android开发工程师看过来,挥泪整理面经
热门文章
- 解决Android7.0严苛模式问题
- 职场菜鸟捕食指北【相亲篇】
- 做一个学(chou)习(ka)游戏(一)
- 浏览器JSON的插件(JSON-handle)使用问题
- 实现一个多线程安全的单向有序链表,add单个结点、与其他链表合并
- java定时自动关机软件
- 初探 Redis 客户端 Lettuce:真香!
- 聊天系统服务器,聊天系统服务器
- 如何使用 Windows 电脑向 Android 设备安装 apk 应用
- 解决Mybatis报错并分析原因:Invalid bound statement (not found): com.xxx.mapper.xxx