【强化学习-读书笔记】多臂赌博机 Multi-armed bandit

参考 
Reinforcement Learning, Second Edition  
An Introduction 
By Richard S. Sutton and Andrew G. Barto

强化学习与监督学习

强化学习与其他机器学习方法最大的不同,就在于前者的训练信号是用来评估(而不是指导)给定动作的好坏的。

强化学习:评估性反馈
有监督学习:指导性反馈


价值函数

最优价值函数,是给定动作 a a a 的期望,可以理解为理论最优
q ∗ ( a ) ≐ E [ R t ∣ A t = a ] q_*(a) \doteq\mathbb{E}[R_t|A_t=a] q(a)E[RtAt=a]
我们将算法对动作 a a a 在时刻 t t t 时的价值的估计记作 Q t ( a ) Q_t(a) Qt(a),我们希望它接近 q ∗ ( a ) q_*(a) q(a)


利用(Exploit)与探索(Explore

利用:选择最高估计价值的动作(贪心)
探索:选择非贪心的动作


动作-价值方法(基于价值的方法)

思想:对价值进行估计,来选择动作。

采样平均方法

Q t ( a ) ≐ t 时刻前执行动作 a 得到的收益总和 t 时刻前执行动作 a 的次数 = ∑ i = 1 t − 1 R i 1 A i = a ∑ i = 1 t − 1 1 A i = a Q_t(a)\doteq \frac{t时刻前执行动作a得到的收益总和}{t时刻前执行动作a的次数}=\frac{\sum_{i=1}^{t-1} R_i \mathbf{1}_{A_i=a}}{\sum_{i=1}^{t-1} \mathbf{1}_{A_i=a}} Qt(a)t时刻前执行动作a的次数t时刻前执行动作a得到的收益总和=i=1t11Ai=ai=1t1Ri1Ai=a

贪心动作选择

最简单的动作选择规则是选择具有最高估计值的动作,即贪心动作
A t   ≐   arg ⁡ max ⁡ a   Q t ( a ) A_{t}\ \doteq \ {\arg \max_a}\ Q_{t}(a) At  argamax Qt(a)
缺点:不能持续探索(虽然可以乐观初始化在开始阶段进行探索)
乐观初始化:对于纯粹贪心策略,可以把每一个初始值 Q 0 ( a ) Q_0(a) Q0(a)都设置得更大,从而鼓励算法在算法刚开始的时候尝试其他状态。因为一开始获得奖励之后都把 Q 0 ( a ) Q_0(a) Q0(a)降低了。

ϵ \epsilon ϵ-贪心方法

以小概率 ϵ \epsilon ϵ随机选择动作, 1 − ϵ 1-\epsilon 1ϵ 贪心选择
在这里插入图片描述

在这里插入图片描述

两者都并不是完美的

贪心动作虽然在当前时刻看起来最好,但实际上其他一些动作可能从长远看更好
ϵ \epsilon ϵ-贪心算法会尝试选择非贪心的动作,但是这是一种盲目的选择,因为它不大会去选择接近贪心或者不确定性特别大的动作


增量更新、平稳/非平稳问题

为了计算效率,采用增量更新:
Q n + 1 = Q n + 1 n [ R n − Q n ] Q_{n+1} = Q_n + \frac{1}{n}[R_n - Q_n ] Qn+1=Qn+n1[RnQn]

此时 α = 1 n \alpha = \frac{1}{n} α=n1,适合平稳分布的问题,但是如果 bandit 背后的分布是会变化的,那么 α \alpha α 应该采用 > 1 n >\frac{1}{n} >n1 ,从而给更靠近的奖励更大的权重。


UCB

置信度上界 (upper confidence bound, UCB)——平衡了 探索与利用
A t   ≐   a r g max ⁡ a [ Q t ( a ) + c ln ⁡ t N t ( a )   ] A_{t}\ \doteq \ {\mathrm{arg}}\max_a\left[Q_{t}(a)+c\sqrt{\frac{\ln t}{N_{t}(a)}}\,\right] At  argamax[Qt(a)+cNt(a)lnt ]

左边:利用平均奖励大的动作
右边:鼓励探索访问次数少的动作,但是同时要考虑到其他非 a a a 的状态的访问次数,用 t t t近似。每次选 a a a之外的动作时,在分子上的 ln ⁡ t \ln t lnt增大,而 N t ( a ) N_t(a) Nt(a) 却没有变化,所以不确定性增加了

UCB一般来说比贪心、 ϵ \epsilon ϵ-贪心 要好。

在这里插入图片描述

UCB 的缺点:

  1. 处理非平稳问题时,需要一些更复杂的 tricks, 不能仅仅使用这样的策略。
  2. 处理不了很大的状态空间。

上下文赌博机(Contextual Bandit)

普通的赌博机:算法每一次选择新动作的时候,没有额外的环境信息。
上下文赌博机:算法每一次选择新动作的时候,有额外的环境信息

也许你面对的是一个真正的老虎机、它的外观颜色与它的动作价值集合一一对应,动作价值集合改变的时候,外观颜色也会改变.那么,现在你可以学习一些任务相关的操作策略,例如,用你所看到的颜色作
为信号,把每个任务和该任务下最优的动作直接关联起来,比如,如果为红色, 则选择1号臂 ;如果为绿色,则选择2号臂。有了这种任务相关的策略,在知道任务编号信息时,你通常要比不知道任务编号信息时做得更好。
——《RL》

上下文赌博机介于多臂赌博机问题和完整强化学习问题之间。它与完整强化学习问题的相似点是,它需要学习一种策略,但它又与多臂赌博机问题相似,体现在每个动作只影响即时收益。

总结

在多臂赌博机问题来说,一般来说,UCB是比贪心, ϵ \epsilon ϵ-贪心更好的
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/238262.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

跨国企业在跨境数据传输时需要注意的几点

对于跨国企业而言,跨境数据传输是一个极为关键的组成部分。这不仅涉及到数据的安全性、合规性和效率,还直接关系到企业的竞争力和未来发展前景。因此,在进行跨境数据传输时,企业需要特别关注以下几个关键点,并采取相应…

设计模式-组合模式

设计模式专栏 模式介绍模式特点应用场景组合模式和装饰者模式的区别代码示例Java实现组合模式python实现组合模式 组合模式在spring中的应用 模式介绍 组合模式是一种结构型设计模式,它针对由多个节点对象(部分)组成的树形结构的对象&#x…

MES管理系统的应用场景都包括哪些

在当今高度信息化的时代,企业生产管理面临着越来越多的挑战。如何实现生产过程的数字化、智能化和优化,提高生产效率和产品质量,是许多制造企业亟待解决的问题。作为一种面向车间现场生产制造过程的数字化管理工具,MES管理系统在企…

最大公因数,最小公倍数详解

前言 对于初学编程的小伙伴们肯定经常遇见此类问题,而且为之头疼,今天我来给大家分享一下,最大公因数和最小公倍数的求法。让我们开始吧! 文章目录 1,最大公因数法1法2法3 2,最小公倍数3,尾声 …

Linux安装Nginx并部署Vue项目

今天部署了一个Vue项目到阿里云的云服务器上,现记录该过程。 1. 修改Vue项目配置 我们去项目中发送axios请求的文件里更改一下后端的接口路由: 2. 执行命令打包 npm run build ### 或者 yarn build 打包成功之后,我们会看到一个dist包&a…

【Python】修改pip 默认安装位置

使用pip安装的时候,一般是默认安装在c盘里的。这样做很容易会让c盘的文件堆满。那么如何让pip安装的包放入d盘呢? 查看pip默认安装的位置 在cmd里输入python -m site,这里可以看到,安装包会默认下载到c盘中 从这里可以看到&am…

数据结构之----逻辑结构、物理结构

数据结构之----逻辑结构、物理结构 目前我们常见的数据结构分别有: 数组、链表、栈、队列、哈希表、树、堆、图 而它们可以从 逻辑结构和物理结构两个维度进行分类。 什么是逻辑结构? 逻辑结构是指数据元素之间的逻辑关系,而逻辑结构又分为…

基于深度学习的yolov5入侵检测系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介IntroductionYOLOv5 Overview入侵检测系统架构1. 数据采集2. YOLOv5模型训练3. 实时监测4. 告警与反馈 性能评估与优化 二、功能三、系统四. 总结 一项目简…

Nginx的server层外层的常见配置语句的解读

有下面的Nginx配置: worker_processes auto; worker_rlimit_nofile 51200;events {use epoll;worker_connections 51200;multi_accept on; }http {include mime.types;default_type application/octet-stream;server_names_hash_bucket_size 512;client_max_body_size 50m;cli…

锂电3V升12V1A升压芯片WT3209

锂电3V升12V1A升压芯片WT3209 WT3209是一款高功率密度全集成BOOST升压转换器,具备高效能解决方案。3V升12V1A,5V升12V1A WT3209内部集成的功率MOSFET管导通电阻为上管13mΩ和下管11mΩ,具备2A开关电流能力,并且能够提供高达12.6V的输出电压。…

代理模式:解析对象间的间接访问与控制

目录 引言 理解代理模式 不同类型的代理模式 代理模式的应用场景 代理模式的优缺点 优点 缺点 实际案例:Java中的代理模式应用 结语 引言 代理模式是软件设计模式中的一种结构型模式,旨在为其他对象提供一种代理以控制对这个对象的访问。它允许你…

Chrome谷歌浏览器安装VUE调试插件

访问gitee的vue-devtools 并下载 gitee地址:https://gitee.com/zhang_banglong/vue-devtools 也可以访问git的地址:https://github.com/vuejs/devtools 解压,放到自己的目录下 打开控制面板(管理员),进入…

【技术分享】企业网必不可少的NAT技术

NAT是一种地址转换技术,它可以将IP数据报文头中的IP地址转换为另一个IP地址,并通过转换端口号达到地址重用的目的。NAT作为一种缓解IPv4公网地址枯竭的过渡技术,由于实现简单,得到了广泛应用。 NAT解决了什么问题? 随…

OneNote for Windows10 彻底删除笔记本

找了超多方法,都没有用,我的OneNote都没有文件选项,要在OneDrive中删除,但是一直登不进,然后又找到一个方法: 在网页中打开Office的控制面板 "Sign in to your Microsoft account" 在“最近”一…

C语言三种循环输出9*9乘法表

解题思路&#xff1a; 1、外层循环控制1~9循环 2、内层控制循环的次数 比如&#xff1a; 1 * 1 1 循环一次 1 * 1 1 1 * 2 循环两次 依此类推 int i, j;printf("for 打印9*9乘法表\r\n");for(i 1; i <10; i) {for(j 1; j < i;j) {printf("%d * %d %d…

el-tree搜索的使用

2023.12.11今天我学习了如何对el-tree进行搜索的功能&#xff0c;效果如下&#xff1a; <template><div class"head-container"><el-inputv-model"roleName"clearableplaceholder"请输入角色/用户名称"prefix-icon"el-icon-…

基于ssm连锁经营商业管理系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本连锁经营商业管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据…

快慢指针该如何操作?本文带你认识快慢指针常见的三种用法及在链表中的实战

很多同学都听过快慢指针这个名词&#xff0c;认为它不就是定义两个引用&#xff08;指针&#xff09;一前一后吗&#xff1f;是的&#xff0c;它的奥秘很深&#xff0c;它的作用究竟有哪些&#xff1f;究竟可以用来做哪些题目&#xff1f;下面我将一一带你了解和应用 下面的本节…

STM32 寄存器配置笔记——USART DMA发送

一、DMA介绍 直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传 输。无须CPU干预&#xff0c;数据可以通过DMA快速地移动&#xff0c;这就节省了CPU的资源来做其他操作。当产品对于时序要求较严格时&#xff0c;外设使用DMA的方式能够减轻CPU负…

C++ 指针常量和常量指针的区别

指针常量 指针常量&#xff1a;顾名思义它就是一个常量&#xff0c;但是是指针修饰的。 格式为&#xff1a; int * const p //指针常量在这个例子下定义以下代码&#xff1a; int a&#xff0c;b&#xff1b; int * const p&a //指针常量 //那么分为一下两种操作 *p9;//操…