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

文章目录

  • 什么是强化学习
    • 强化学习的两个基本特征
    • 强化学习的其它特征
    • 强化学习不同于有监督学习
    • 强化学习不同于无监督学习
    • 强化学习不同于进化方法
    • 强化学习的独特挑战
    • 强化学习典例
  • 强化学习的要素
  • 强化学习的适用范围
  • 强化学习学术主线
  • 解决强化学习问题的一般框架
  • 赌博机
    • 两个影响因素
    • 平稳赌博机和非平稳赌博机
    • 乐观初始值的理解
    • 赌博机问题的求解方法
      • 全能全知(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、实现了难度设定;…

Vue.js 中的登录状态管理:使用计算属性避免重复登录20240531

Vue.js 中的登录状态管理:使用计算属性避免重复登录 在前端开发中,用户的登录状态管理是一个非常常见的需求。我们希望用户在成功登录后,即使刷新页面,也能够保持登录状态,而不需要再次登录。在 Vue.js 中&#xff0c…

MySQL之创建高性能的索引(九)

创建高性能的索引 使用索引扫描来做排序 MySQL有两种方式可以生成有序的结果:通过排序操作;或者按索引顺序扫描(MySQL有两种排序算法);如果EXPLAIN出来的type列的值为"index",则说明使用了索引扫描来做排序(不要和Extra列的"…

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

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

排序题目:删除某些元素后的数组均值

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题:删除某些元素后的数组均值 出处:1619. 删除某些元素后的数组均值 难度 2 级 题目描述 要求 给定一个整数数组 arr \texttt{arr} arr&…

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

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

python 贪心算法(Greedy Algo)

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

Python模块之Pandas(三)-- DataFrame 查看形状和部分数据

查看数据框的形状: import pandas as pd data pd.read_csv("D:/my_data/data1.csv")print(data的形状为:, data.shape) 查看数据前10行: data.head(10) #查看数据前10行 查看数据后10行: data.tail(10) 查看数据某几列/某几…

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

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

Unity中的Surface Effector 2D组件

Surface Effector 2D 是 Unity 中 2D 物理引擎提供的一个组件,用于影响与其接触的 2D 对象的运动。它可以对碰撞到其表面的物体施加速度和力,从而改变这些物体的运动行为。下面是一些关于 Surface Effector 2D 的关键点: 主要属性 Speed&am…

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

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

如何选择采购管理软件解决方案:推荐与指南

选择一款合适自身企业采购模式的管理软件对于企业来说至关重要。一款好的采购管理软件不仅能够提高采购效率,还能降低采购成本、优化库存管理、增强供应链的透明度和可控性。而在选择采购管理软件时,大家还需要考虑以下几个关键因素: 一、需…

代码随想录训练营Day56:Leetcode647、516

Leetcode647: 问题描述: 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 示例 1: 输入:s &q…

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):在…

前端开发三大主流框架解析

Web前端三大主流框架分别是Angular、React和Vue.js。以下是《优联前端》关于这三个框架解析介绍: Angular: 来源与开发者:Angular是由Google开发的前端框架。功能特点:Angular是一个完整的框架,包括了数据绑定、组件化…

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

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