强化学习(一) 基本概念和赌博机问题

文章目录

  • 什么是强化学习
    • 强化学习的两个基本特征
    • 强化学习的其它特征
    • 强化学习不同于有监督学习
    • 强化学习不同于无监督学习
    • 强化学习不同于进化方法
    • 强化学习的独特挑战
    • 强化学习典例
  • 强化学习的要素
  • 强化学习的适用范围
  • 强化学习学术主线
  • 解决强化学习问题的一般框架
  • 赌博机
    • 两个影响因素
    • 平稳赌博机和非平稳赌博机
    • 乐观初始值的理解
    • 赌博机问题的求解方法
      • 全能全知(Omniscient)
      • 随机算法(Random)
      • 贪心算法(Greedy)
      • ucb
      • 梯度赌博机算法
      • 汤普森采样
  • 赌博机问题与真正强化学习之间的距离

什么是强化学习

“强化学习”这个词,指一类问题,也指解决这类问题的方法。

强化学习的两个基本特征

  • 试错。学习者不会被告知应该采取什么动作,而是自己通过尝试去发现哪些动作收益最大。
  • 延迟收益。动作既有即时收益,也有长期收益。

强化学习的其它特征

仿生。实际上“强化”最早源于巴甫洛夫。

强化学习不同于有监督学习

后者学习的是标注。
前者从智能体自身的经验中学习。

强化学习不同于无监督学习

后者的目的是,寻找数据中的隐含结构。
前者的目的是,最大化收益信号。

强化学习不同于进化方法

后者只看结果,不问过程。经典实例就是,门齿楞,这个突变毫无作用,但因为搭上了有用突变的顺风车,而在进化中得以保留。获取结果后,认为过程中所有的动作都有功劳。
前者则充分利用过程,评估每一个动作的价值。
进化方法是对整个策略的评估,强化学习则是对每个动作的评估。

强化学习的独特挑战

explore和exploit的权衡。
但本书并不特别关心平衡两者的具体方法,而是关心要不要去平衡它们。

强化学习典例

对弈。
羚羊幼崽30分钟学会站立和奔跑。
做早餐。
机器人决定工作还是充电。

总结:与不确定的环境进行交互,有目标,需要远见和规划。

强化学习的要素

  • 策略
  • 即时收益
  • 长期价值
  • 环境模型

确定价值比确定收益难得多,是强化学习算法中最重要的部分。
目标就是最大化长期总收益,也就是价值。

如果没有环境模型,就只是单纯的试错。有环境模型时,可以对环境做出预测,从而有所规划。

策略是状态到每个动作选择概率的映射。

强化学习的适用范围

可以没有对手,与环境博弈。
可以在时间上连续(对弈是离散的)。
可以用于无穷大的状态集。
可以利用游戏规则以外的先验信息。

强化学习学术主线

  • 最优控制
  • 试错学习
  • 时序差分

解决强化学习问题的一般框架

有限马尔可夫决策过程是解决强化学习问题的一般框架。
在这里插入图片描述

赌博机

两个影响因素

  • 赌博机是否平稳,即每个臂的分布是否会变
  • 每个臂的分布的方差大小,如果大则需要更多explore

平稳赌博机和非平稳赌博机

前者的朴素实现:
在这里插入图片描述
思想就是,利用已知的信息,求出一个臂收益的平均值,作为其未来的收入预期。

上面的例子是最容易理解的。实际上可以借助上一次的结果较快算出新的平均值。因为:
新平均值 x n = 旧平均值 x (n-1) + 最新收益

在这里插入图片描述
2.3式的理解,随着n的增大,单次收益对整体平均值的影响越来越小。

对于不平稳的赌博机,我们更关心较新的值。把2.3中的步长n换成常数,即可让较新的值对结果产生较大影响。权重是一个等比数列,权重和为1。这个方法称为指数近因加权平均。
在这里插入图片描述
在这里插入图片描述
这里需要温习一下无穷级数的收敛性判断。可以用积分判别法。lnx+1不收敛,1/x+1则收敛。所以采样平均能在采样次数足够多的前提下收敛到真值。至于常数步长,由于不是递减,显然是发散的。

乐观初始值的理解

试想,如果每个臂的估计初始值为5(超过所有臂的最高收益),那系统就总会认为没选过的臂是更好的。任何实际选择都会带来失望,永远对没选过的抱有幻想。
一开始我以为原始贪心算法一遇到正的就会固定,看了知乎专栏发现其实原始贪心算法也会做一轮探索。所以初始值为0和为5的区别在哪里?
第一轮每个臂的收益都下降了,但下降程度不同。赌徒随后开始大规模操作第一轮的最优(跟原始贪心算法一样),但随后他发现这个不再是最优了(因为对于每条臂,都是越摇越差)。因此,乐观初始值比较大的时候,每个臂都会被选择多次,而不是一次。这样可以缓解原始贪心中的第一轮的误导。
对于非平稳问题,初始值的作用就不大了。

赌博机问题的求解方法

全能全知(Omniscient)

即已经知道回报概率,那最直接的策略就是一直玩这一台。后面的每个策略的探索表现都会和上帝的答案来比较。

随机算法(Random)

每一轮随机地去拉一个摇臂。

贪心算法(Greedy)

先把所有的摇臂都拉一次,然后选择回报最好的老虎机一直玩下去。这种策略很明显不鼓励进行探索,而且很容易被每个摇臂第一遍的回报结果误导。

ucb

upper confidence bound
epsilon-greedy实际上是一种盲目的选择,因为它不太会选择接近贪心或者不确定性特别大的动作。在命中epsilon时,在包括贪心动作在内的所有动作中等概率选择(epsilon/n)。
而ucb体现的是不确定性优先,选择较少的臂的修正项会比较大。
在这里插入图片描述
ln t随着轮数的增加而增大,Nt(a)则是截至第t轮选择a的次数。

梯度赌博机算法

在dl,有一句话:“二分类单输出用sigmoid,多分类或多输出用softmax。”

我并不熟悉dl和分类问题。我的理解是这样的:
一个物体属于a类、b类、c类的可能性如果用整数表示为2,3,5,
那么hardmax的结果是5,认为这个物体属于c类。
而softmax则不同,softmax的结果是0.04201007, 0.11419519, 0.8437947(公式见下图)。三个值分别表示这个物体属于a、b、c类的概率。

经过使用指数形式的Softmax函数能够将差距大的数值距离拉的更大。

至于为什么要用sigmoid和softmax,我想是为了在不改变性质的前提下,用可导函数代替不可导函数,方便数学计算。而且相比hardmax,softmax保留了更多信息,肯定更加精确周到。

梯度赌博机算法引入了偏好函数,所有臂的偏好函数初始时是一样的(如0)。
偏好函数的更新:
在这里插入图片描述
肤浅的解释是,如果t时刻选一个臂,表现比t时刻的均值要好,那就提高偏好,反之降低。

每次对臂的选择取决于下式:
在这里插入图片描述
肤浅的解释是,臂的偏好函数越大,选择这个臂的可能性就越大。

从2.12式可以看出,基准项Rt拔的引入可以减小减小更新项的方差,相比无基准项时收敛更快。
从结果来看,α大的时候收敛更快。

2.12式是怎么来的,以及为什么叫梯度赌博机算法?由2.13推导可以得到2.12。
在这里插入图片描述
将每一时刻所有选择的期望看作此时刻所有偏好函数的因变量。
这也是比较自然的,因为偏好影响选择,选择影响性能。
2.13中q*(x)我们无法获得,但可以用期望来代替。实际可用的就是2.12。

汤普森采样

https://www.cnblogs.com/gczr/p/11220187.html
棒球运动员的例子很生动。
我们一开始有一些先验知识(大概了解棒球运动员的击球率区间);
然后根据本赛季棒球运动员的实际表现来调整击球率的概率分布。
相比朴素除法,我们最后获得的不是一个概率,而是概率的概率分布,即:本赛季的击球率的概率分布。
其优势在于,不太受数据量的影响,不管是赛季刚开始,或是上场比较少,都能不丢失信息地刻画出击球率(如果上场比较少,那么击球率的分布就会比较分散。因为数据少所以不确定性大,从图上是能看出来的),而不是一个扁平的值。

赌博机问题与真正强化学习之间的距离

赌博机问题是上下文无关的,是非关联的,即动作不会影响情境。动作只影响当次收益。
真正的强化学习中,动作不只影响当次收益,还会影响情境。往往有多种情境。
我的理解是,你对赌博机的操作,会影响你玩的下一台赌博机的编号。这就是动作影响情境,不止一种情境。
按我理解,这是一种比较极端的非平稳过程(臂的收益分布不是渐变的,而是跳变的,因为根本就不是同一台赌博机了,所以上文的非平稳方法很大可能没效果)。
强化学习要做的,就是利用赌博机的编号信息,形成与任务相关的策略。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SiT : Self-supervised vision Transformer

从NLP Transformer中借鉴而来的视觉 Transformer 在使用大规模监督数据或某种形式的协同监督(例如教师网络)进行预训练时已被证明是有效的。这些经过监督预训练的视觉Transformer在下游任务中通过最小的改动就能取得出色的结果。 随着监督预训练&#x…

告别盲目推广!Xinstall二维码携参技术,让App运营更精准高效

在移动互联网时代,App推广和运营已成为每个开发者必须面对的重要任务。然而,如何精准地定位目标用户,提高转化率和用户留存率,成为了摆在每个开发者面前的难题。今天,我们就来谈谈如何通过Xinstall二维码携参技术&…

AzSubEnum:针对Azure服务的子域名枚举查询工具

关于AzSubEnum AzSubEnum是一款专门为Azure服务量身定制的子域名枚举查询工具,该工具旨在帮助广大研究人员仔细搜索和识别与各种Azure服务相关的子域名信息。 通过结合查询技术和语句,AzSubEnum能够深入分析Azure的域名架构,并系统地探测和收…

Python使用trule库画小猪佩奇

在这篇博客中,我将向大家展示如何使用Python的Turtle模块来绘制一个可爱的小猪佩奇。这个项目不仅可以帮助你熟悉Turtle绘图,还可以让你在编程的过程中享受到绘画的乐趣。 并非百分百原创,有部分参考其他博主,请理性对待&#xff…

小学数学出题器-Word插件-大珩助手

Word大珩助手是一款功能丰富的Office Word插件,旨在提高用户在处理文档时的效率。它具有多种实用的功能,能够帮助用户轻松修改、优化和管理Word文件,从而打造出专业而精美的文档。 【新功能】小学数学出题器 1、实现了难度设定;…

怎么控制员工电脑的文件外发,六个控制文件外发的小窍门你必须了解

控制员工电脑的文件外发是企业信息安全管理中的重要环节,旨在防止敏感数据泄露、保护知识产权和维护商业秘密。 企业可以通过多种技术和管理措施相结合的方式来达到这一目的,确保既有效控制文件外发风险,又不影响正常的业务运作和员工工作效…

文献阅读:GCNG:用于从空间转录组数据推断基因相互作用的图卷积网络

文献介绍 「文献题目」 GCNG: graph convolutional networks for inferring gene interaction from spatial transcriptomics data 「研究团队」 Ziv Bar-Joseph(美国卡内基梅隆大学) 「发表时间」 2020-12-10 「发表期刊」 Genome Biology 「影响因子…

python 贪心算法(Greedy Algo)

贪婪是一种算法范式,它逐步构建解决方案,始终选择提供最明显和直接收益的下一个部分。贪婪算法用于解决优化问题。 如果问题具有以下属性,则可以使用贪心法解决优化问题: 每一步,我们都可以做出当前看来最好的选择&…

3d网渲100比本地渲染快吗?渲染100邀请码1a12

3D网渲是一种基于云计算的技术,它将渲染工作交由云端进行,以网渲平台渲染100为例,比起本地渲染,它有以下一些优势。 1、本地渲染受硬件限制,只能一台电脑渲染一张图,而渲染100有充足的服务器数量&#xf…

QT 音乐播放器【一】 显示音频级别指示器

文章目录 效果图概述代码总结 效果图 概述 QMediaPlayer就不介绍了,就提供了一个用于播放音频和视频的媒体播放器 QAudioProbe 它提供了一个探针,用于监控音频流。当音频流被捕获或播放时,QAudioProbe 可以接收到音频数据。这个类在需要访问…

C/C++动态内存管理(new与delete)

目录 1. 一图搞懂C/C的内存分布 2. 存在动态内存分配的原因 3. C语言中的动态内存管理方式 4. C内存管理方式 4.1 new/delete操作内置类型 4.2 new/delete操作自定义类型 1. 一图搞懂C/C的内存分布 说明: 1. 栈区(stack):在…

计组雨课堂(5)知识点总结——备考期末复习(xju)

在汇编语言源程序中,“微指令语句"不是常见的组成部分,因为微指令通常是在硬件层面进行处理的,而不是在汇编语言层面。因此,不属于汇编语言源程序的是"微指令语句”。在汇编语言中,组成指令语句和伪指令语句…

直方图滤波、粒子滤波、卡尔曼滤波

三者都是基于贝叶斯滤波。 粒子滤波和直方图滤波不要求高斯分布,可解决非线性 卡尔曼滤波要求高斯分布且线性。扩展卡尔曼滤波为了解决非线性问题,利用泰勒展开进行一阶近似。 直方图滤波就是贝叶斯滤波的直观实现。自动驾驶定位算法-直方图滤波(Hist…

【Linux终端探险】:从入门到熟练,玩转基础命令的秘密(二)

文章目录 🚀Linux基础命令(二)🌈1. 寻找目录/文件命令⭐2. 创建文件命令👊3. 网络接口查询命令❤️4. 打包命令💥5. 解压命令 上期回顾: 🔥🔥🔥【Linux终端探…

19、matlab信号预处理中的中值滤波(medfilt1()函数)和萨维茨基-戈雷滤波滤(sgolayfilt()函数)

1、中值滤波:medfilt1()函数 说明:一维中值滤波 1)语法 语法1:y medfilt1(x) 将输入向量x应用3阶一维中值滤波器。 语法2:y medfilt1(x,n) 将一个n阶一维中值滤波器应用于x。 语法3:y medfilt1(x,n…

2024年项目任务管理软件大盘点:12款值得一试的主流工具

12款优秀的项目任务管理软件:PingCode、Worktile、AIrTable、ClickUp、Teambition、Asana、Todoist、TAPD、Monday.com、Notion、Microsoft Project、Trello。 任务管理软件对于生活繁忙的人来说极为重要。它帮助用户有效跟踪他们需要完成的各项任务,包括…

牛客热题:没有重复数字的全排列

📟作者主页:慢热的陕西人 🌴专栏链接:力扣刷题日记 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 文章目录 牛客热题:没有重复数字的全排列题目链接方…

LeetCode - 二分查找(Binary Search)算法集合(Python)[左右边界|旋转数组|双列表]

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/139419653 二分查找,也称为折半查找,是一种在有序数组中查找特定元素的高效算法。其基本原理是将待搜索的区间分成两半&am…

小猪APP分发:如何轻松进行在线封装APP

你是否曾经因为需要封装一个新版本的APP而感到头疼?传统的封装过程往往繁琐且耗时。但是,别担心,现在有了“小猪APP分发”,一切变得如此简单。 小猪APP分发www.appzhu.net是一个专门提供在线APP封装服务的平台。无论你是开发者还…

Thingsboard物联网网关接入ThingsBoard物联网平台的操作说明

本文包含关于如何配置ThingsBoard 平台和连接钡铼技术R40设备的说明。ThingsBoard平台是一个用于数据收集、处理、可视化和设备管理的开源物联网平台。它通过行业标准MQTT协议实现设备连接。ThingsBoard结合了可扩展性、容错性和性能,因此您永远不会丢失数据。 4G L…