Bandit:一种简单而强大的在线学习算法

假设我有5枚硬币,都是正反面不均匀的。我们玩一个游戏,每次你可以选择其中一枚硬币掷出,如果掷出正面,你将得到一百块奖励。掷硬币的次数有限(比如10000次),显然,如果要拿到最多的利益,你要做的就是尽快找出“正面概率最大”的硬币,然后就拿它赚钱了。

这个问题看起来很数学化,其实它在我们的生活中经常遇见。比如我们现在有很多在线场景,遇到一个相同的问题:一个平台这么多信息,该展示什么给用户,才能有最好的收益(比如点击率)?

一切通过数据收集而得到的概率预估任务,都能通过Bandit系列算法来进行在线优化。这里的“在线”,指的不是互联网意义上的线上,而是只算法模型参数根据观察数据不断演变。

HowBandit

首先来看看Bandit的概率原理,我们希望知道每一个硬币“正面”的概率。事实上我们能观察到的,只是这个硬币正面的频率

怎么利用起观察到的频率,来最好地预估真实的概率呢?下面介绍4种策略,分别是随机(Random)、简单观察(Naive)、ε-贪心法(ε-Greedy)、置信上限法(UCB)。

Random

每次随机选择一枚硬币进行投掷。如果不能胜过这个策略,就不必玩了。

Naive

先给每个硬币一定次数的尝试,比如每个硬币掷10次,根据每个硬币正面朝上的次数,选择正面频率最高的那个硬币,作为最佳策略。这也是大多人能想到的方法。

但是这个策略有几个明显问题:

ε-Greedy

有了前两个垫背,可以开始让Bandit登场了。ε-Greedy就是一种很机智的Bandit算法:它让每次机会以ε的概率去“探索”,1-ε的概率来“开发”。也即,如果一次机会落入ε中,则随机选择一个硬币来投掷,否则就选择先前探索到正面概率最大的硬币。这个策略有两个好处:

UCB

在统计学中,对于一个未知量的估计,总能找到一种量化其置信度的方法。最普遍的分布正态分布(或曰高斯分布),其中的就是估计量的期望,而则表示其不确定性(越大则表示越不可信)。比如你掷一个标准的6面色子,它的平均值是3.5,而如果你只掷一次,比如说到2,那你对平均值的估计只能是2,但是这个置信度应该很低,我们可以知道,这个色子的预估平均值是2,而以95%的置信区间在[1.4,5.2]。

UCB(UpperConfidenceBound-置信上限)就是以均值的置信上限为来代表它的预估值:

上面是一个例子,其中是对期望的预估,是尝试次数,可以看到对的尝试越多,其预估值与置信上限的差值就越小。也就是越有置信度。

这个策略的好处是,能让没有机会尝试的硬币得到更多尝试的机会,是骡子是马拉出来溜溜!将整个探索+开发的过程融合到一个公式里面,很完美!

模拟结果

将这几个策略做一下模拟,取K=5个硬币,每次10000轮投掷机会,跑100次取平均。得到结果如下:

上图以累积后悔(CumulativeExpectedRegret)来作为评估指标,横坐标是投掷次序,纵坐标是累积后悔(取对数)。后悔最小的算法最好。Regret定义如下:

可以看出,随机的效果最烂,Naive算法在前K*100轮跟随机效果一样烂(因为在收集数据,没有开始利用)。ε-Greedy的收敛效果好,但因为有那ε的浪费,到最后还是跟Naive一样浪费了很多机会。UCB的表现最好,收敛快、花费小!

这里只是模拟了固定概率下这些算法的表现,如果预估量(正面概率)是一个会变的量,这些算法的表现会重新洗牌吗?后续可以探索下!

Banditapplication

说了这么多掷硬币,这个算法在真实世界有什么大展身手的地方呢?小列一些:

THE END
1.在线学习算法(OnlineLearning)理论与实践在线学习算法(Online Learning)理论与实践 本文介绍在线学习(Online Learning)的基本原理,包括Bayesian Online Learning和FTRL算法,并以美团移动端推荐重排序为例,展示在线学习在提高推荐效果方面的实践。通过实时调整模型,以反映线上变化,提升预测准确率。 摘要由CSDN通过智能技术生成https://blog.csdn.net/hzwaxx/article/details/83867630
2.在线学习方法概述腾讯云开发者社区在线学习方法概述 算法常常用到逻辑回归算法,而传统的批量学习算法如 SGD 无法应对大规模、高维的数据集和实时数据流。为了解决这个问题,在线最优化算法如 TG [1]、FOBOS [2]、RDA [3]、FTRL [4,5,6] 应运而生,下面将介绍、对比这些算法。 TODOhttps://cloud.tencent.com/developer/article/1561719
3.重要学习网址收藏1ZhemgLee的技术博客2.数学推导+纯Python实现机器学习算法30:系列总结与感悟 总:https://mp.weixin.qq.com/s/jJd8Gg61eaE0JKZqQSeE8g 分1:https://mp.weixin.qq.com/s/E9lMqNM8uNc57KNvnsBZGQ 分2-n: 3.深度学习第60讲:深度学习笔记系列总结与感悟 总:https://mp.weixin.qq.com/s/qXfu-UzZmlv-aQt3IIUnAQ https://blog.51cto.com/u_15240054/2873341
4.基于深度学习框架的医疗图像分类算法实现开题报告(8页)基于深度学习框架的医疗图像分类算法实现开题报告.docx,PAGE 5 - 本科生毕业设计(论文) 开题报告 题目:基于深度学习框架的医疗图像分类算法实现 姓名: 张震宇 学号: 201306080330 指导教师: 齐勇 班级: 计 133 所在院系: 电气与信息工程学院计算机系 学生https://m.book118.com/html/2020/0517/8003122062002112.shtm
5.《机器学习算法的数学解析与Python实现》(莫凡)简介书评当当网图书频道在线销售正版《机器学习算法的数学解析与Python实现》,作者:莫凡,出版社:机械工业出版社。最新《机器学习算法的数学解析与Python实现》简介、书评、试读、价格、图片等相关信息,尽在DangDang.com,网购《机器学习算法的数学解析与Python实现》,就上当当http://product.dangdang.com/28503697.html
6.79强化学习基础算法及实践策略梯度强化学习方法实现上一个实验中,我们了解并实现了策略梯度算法。同时,使用 OpenAI 提供的 Gym 强化学习环境测试了算法。不过,受限于 Notebook 实验环境,我们无法可视化强化学习的过程,只能打印出学习参数和每个 Episode 学习的时间步长。 本次挑战,我们将利用实验楼提供的桌面在线环境,完成 CartPole 小游戏可视化学习过程。 https://www.jianshu.com/p/71eacadc41bf
7.人工智能基础:五大机器学习经典算法入门课程哔哩哔哩11项必备技能,7种机器学习实现方式,34种深度学习常用算法 26.6万播放/共159课时 【限时特惠】小白玩转Python数据分析 全流程Python数据分析课,配合多个项目实战,点满数据技能 134.3万播放/共106课时 小白也能听懂的人工智能原理 仅用中学数学知识就能看懂的人工智能入门课 480.3万播放/共14课时 机器学习必修课:经典AIhttps://www.bilibili.com/cheese/play/ss10026?search_query=%E8%BF%9B%E5%8C%96%E7%AE%97%E6%B3%95%E5%AD%A6%E4%B9%A0
8.科学网—[转载]强化学习在资源优化领域的应用基于这种行业趋势,本文针对强化学习算法在资源优化领域的应用展开调研,帮助读者了解该领域最新的进展,学习如何利用数据驱动的方式解决资源优化问题。鉴于资源优化问题场景众多、设定繁杂,划分出3类应用广泛的资源优化问题,即资源平衡问题、资源分配问题、装箱问题,集中进行调研。在每个领域阐述问题的特性,并根据具体的问题特性https://blog.sciencenet.cn/blog-3472670-1312677.html
9.2021届计算机科学方向毕业设计(论文)阶段性汇报本次阶段性汇报主要介绍多智能体强化学习框架MALib的设计与完成情况,以及针对目前的研究内容实现的功能。其次介绍在当前框架上部分强化学习算法的复现情况以及遇到的问题。最后介绍后续的计划安排。 杨宁 电阻式随机存取存储器的侧信道安全研究 在本阶段,研究完成了对ReRAM业界现有公开数学仿真模型的收集、测试以及修改;https://zhiyuan.sjtu.edu.cn/html/zhiyuan/announcement_view.php?id=3943
10.力扣(LeetCode)全球极客挚爱的技术成长平台算法作为面试中非常核心的一环,攻克其高效的方法为先熟练掌握数据结构,再系统学习算法。本文会详细介绍面试中经常用到的数据结构数组,字符串,链表,哈希表,栈,队列,堆,优先队列,树,以及图的使用、底层原理以及各个操作的性 927 101 3251 OneQ?4 小时前https://leetcode-cn.com/
11.《深度强化学习算法与实践:基于PyTorch的实现》小说在线阅读张校捷编著创作的计算机网络小说《深度强化学习算法与实践:基于PyTorch的实现》,已更新0章,最新章节:。本书从强化学习的基础知识出发,结合PyTorch深度学习框架,介绍深度强化学习算法各种模型的相关算法原理和基于PyTorch的代码实现。作为一本介绍深度强化学习知识的相关https://m.qidian.com/book/1033738513/
12.Python机器学习10大经典算法的讲解和示例python10个经典的机器学习算法包括:线性回归、逻辑回归、K-最近邻(KNN)、支持向量机(SVM)、决策树、随机森林、朴素贝叶斯、K-均值聚类、主成分分析(PCA)、和梯度提升(Gradient Boosting),我将使用常见的机器学习库,如scikit-learn,numpy和pandas 来实现这些算法https://www.jb51.net/python/322045198.htm
13.超详细算法岗的学习路线大总结!机器学习 or 深度学习基础 论文or 项目介绍 其他问题 & 向面试官提问 本文将从以上四点进行展开。 一、数据结构&算法题 随着算法岗越来越卷,Coding几乎成了面试必考的一项,而且在面评中的权重也越来越高,根据个人面试经验,如果这一环节没有很顺利得完成的话,几乎必挂,尤其对于非科班转行的同学,需要特别重视。 https://leetcode.cn/circle/discuss/SX3aa6/
14.七月在线七月在线创始人,七月大模型与机器人技术总负责人 北理工校外导师,微软AI MVP,Github上2万余star,CSDN 2000万PV博客『结构之法 算法之道』博主,去过近百所985/211高校分享算法,亦是华为云等数十个大会的演讲嘉宾。2015年创办七月在线,并于2018年获得好未来千万投资,到2022年平台上聚集了350+的大厂专家讲师团队https://www.julyedu.com/
15.范慧杰5) 机器人在线学习和场景感知研究 经费来源:国家自然科学基金; 2014-2017 6) 基于稀疏表达和字典选择的一致异常行为算法研究 经费来源:国家自然科学基金; 2012-2014 7) 基于水平集理论PLIF火焰前锋与特征提取算法研究 经费来源:国家自然科学基金; 2009-2011 http://www.sia.cas.cn/vision/kytd/yjry/202307/t20230726_6834850.html
16.推荐几个算法可视化网站,从此轻松学算法!大家好,我是大彬~ 很多初学者在学习数据结构与算法的时候,都会觉得很难,很大一部分是因为数据结构与算法本身比较抽象,不好理解。对于这一点,可以通过一些可视化动画来帮助理解。 下面大彬推荐几个学习数据结构和算法的可视化工具。 Data Structure Visualizations 这是https://m.nowcoder.com/feed/main/detail/6ecdab56f00b44bfacf3cb854929059e