初探强化学习

news2024/11/20 9:30:34

1.引言

        人生中充满选择,每次选择就是一次决策,我们正是从一次次决策中,把自己带领到人生的下一段旅程中。在回忆往事的时候,我们会对生命中某些时刻的决策印象深刻:“还好当时选择了读研,毕业后找到了一份自己喜欢的工作!” “如果当初接受那家公司的offer就好了,现在就可以有一个稳定的生活了。”通过这些反思,我们或许能够领悟到一些道理,变得更加睿智和成熟,以更加积极的精神来迎接未来的选择和成长。

2.强化学习介绍

        强化学习是机器通过与环境交互来实现目标的一种计算方法。机器和环境的一轮交互是指:机器在环境的一个状态下做一个动作决策,把这个动作作用到环境当中,这个环境发生相应的改变并且将相应的奖励反馈和下一轮状态传回机器。这种交互是迭代进行的,机器的目标是最大化在多轮交互过程中获得的累计奖励的期望。

强化学习用智能体(agent)来表示做决策的机器,智能体和环境之间具体的交互方式如图所示。

        在每一轮交互中,智能体感知到环境目前所处的状态,经过自身的计算给出本轮的动作,将其作用到环境中;环境得到智能体的动作后,产生相应的即时奖励信号并发生相应的状态转移。智能体则在下一轮交互中感知到新的环境状态,依次类推。

其中,智能体有3种关键要素,即感知、决策和奖励。

  • 感知。智能体在某种程度上感知环境的状态,从而知道自己所处的现状。
  • 决策。智能体根据当前的状态计算出达到目标需要采取的动作的过程叫做决策。
  • 奖励。环境根据状态和智能体采取的动作,产生一个标量信号作为奖励反馈,这个标量信号衡量智能体这一轮动作的好坏。最大化累积奖励期望是智能体提升策略的目标,也是衡量智能体策略好坏的关键指标。

3.强化学习的环境

        强化学习的智能体是在和一个动态环境的交互中完成序贯决策的。我们说一个环境是动态的,意思就是它会随着某些因素的变化而不断演变,这在数学和物理中往往用随机过程来刻画。对于一个随机过程,其最关键的要素就是状态以及状态转移的条件概率分布。

        如果在环境这样一个自身演变的随机过程中加入一个外来的干扰因素,即智能体的动作,那么环境的下一刻状态的概率分布将由当前状态和智能体的动作来共同决定,用最简单的数学公式表示则是

根据上式可知,智能体决策的动作作用到环境中,使得环境发生相应的状态改变,而智能体接下来则需要在新的状态下进一步给出决策。 

        由此我们看到,与面向决策任务的智能体进行交互的环境是一个动态的随机过程,其未来状态的分布由当前状态和智能体决策的动作来共同决定,并且每一轮状态转移都伴随着两方面的随机性:一是智能体决策的动作的随机性,二是环境基于当前状态和智能体动作来采样下一刻状态的随机性。

4.强化学习的目标

        智能体和环境每次进行交互时,环境会产生相应的奖励信号,其往往由实数标量来表示,这个奖励信号一般是诠释当前状态或动作的好坏的及时反馈信号。整个交互过程的每一轮获得的奖励信号可以进行累加,形成智能体的整体回报(return)。根据环境的动态性我们可以知道,即使环境和智能体策略不变,智能体的初始状态也不变,智能体和环境交互产生的结果也很可能是不同的,对应获得的回报也会不同。因此,在强化学习中,我们关注回报的期望,并将其定义为价值(value),这就是强化学习中智能体学习的优化目标。

5.强化学习中的数据

        在强化学习中,数据是在智能体与环境交互的过程中得到的。如果智能体不采取某个决策动作,那么该动作对应的数据就永远无法被观测到,所以当前智能体的训练数据来自之前智能体的决策结果。因此,智能体的策略不同,与环境交互所产生的数据分布就不同,如图所示

        具体而言,强化学习中有一个关于数据分布的概念,叫作占用度量(occupancy measure),归一化的占用度量用于衡量在一个智能体决策与一个动态环境的交互过程中,采样到一个具体的状态动作对(state-action pair)的概率分布。 

        占用度量有一个很重要的性质:给定两个策略及其与一个动态环境交互得到的两个占用度量,那么当且仅当这两个占用度量相同时,这两个策略相同。也就是说,如果一个智能体的策略有所改变,那么它和环境交互得到的占用度量也会相应改变。

        根据占用度量这一重要的性质,我们可以领悟到强化学习本质的思维方式:

  • 强化学习的策略在训练中会不断更新,其对应的数据分布(即占用度量)也会相应地改变。
  • 由于奖励建立在状态动作对之上,一个策略对应的价值其实就是一个占用度量下对应的奖励的期望,因此寻找最优策略对应着寻找最优占用度量。

6.强化学习和一般有监督学习的区别

        对于一般的有监督学习任务,我们的目标是找到一个最优的模型函数,使其在训练数据集上最小化一个给定的损失函数。在训练数据独立同分布的假设下,这个优化目标表示最小化模型在整个数据分布上的泛化误差(generalization error),用简要的公式可以概括为:

相比之下,强化学习任务的最终优化目标是最大化智能体策略在和动态环境交互过程中的价值,而策略的价值又可以等价转换成奖励函数在策略的占用度量上的期望,即:

综上所述,一般有监督学习和强化学习之间的区别为:

  • 二者优化的目标不同。一般的有监督学习关注寻找一个模型,使其在给定数据分布下得到的损失函数的期望最小;而强化学习关注寻找一个智能体策略,使其在与动态环境交互的过程中产生最优的数据分布,即最大化该分布下一个给定奖励函数的期望。
  • 二者优化的途径是不同的,有监督学习直接通过优化模型对于数据特征的输出来优化目标,即修改目标函数而数据分布不变;强化学习则通过改变策略来调整智能体和环境交互数据的分布,进而优化目标,即修改数据分布而目标函数不变。

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

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

相关文章

学习小程序基础内容之逻辑交互

我们先来看一下实现的效果。 然后再来分享结构。 结构分为左右3:7 分配, 左侧是类别,右侧是该类别对应的品牌。 后台会在onload的请求把左侧的类别返回来,然后我们通过循环把数据展示出来。然后通过点击事件,把对应的品牌请求回来…

2023年,初级测试到高级测试开发工程师需要什么技能?卷起来......

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 Python自动化测试&…

泵站水闸自动化系统调试方案

1、调试方案概述 调试方案分为自控系统现场调试、视频系统现场调试以及控制中心远程调试(包含通讯测试、自控调试和视频调试)。 自控系统现场调试分为触摸屏调试和本地上位机调试两部分。触摸屏系统的调试步骤如下: 确认触摸屏和PLC的通讯情…

C++标准库 -- 泛型算法 (Primer C++ 第五版 · 阅读笔记)

C标准库 -- 泛型算法 (Primer C 第五版 阅读笔记) 第10章 泛型算法------(持续更新)10.1、概述10.2、初识泛型算法10.2.1、只读算法10.2.2、写容器元素的算法10.2.3、重排容器元素的算法 10.3、定制操作10.4、再探迭代器10.5、泛型算法结构10.6、特定容器算法 第10…

【ubuntu】将硬盘挂载到指定目录并设置开机自动挂载

最近打算将数据盘开机自动挂载,省得每次都要手动挂载,总结步骤如下: 输入以下命令,将系统中所有的分区都列出来: sudo fdisk -l找到你要挂载的分区,可以通过容量大小分辨,当然,有可…

黑马Mysql从入门到高级

文章目录 1. 数据库基础1.1 基础概念1.2 SQL1.2.1 语法1.2.2 数据类型1.2.3 DDL(definition) 1.3 函数1.3.1 字符串函数1.3.2 日期函数1.3.3 数字函数1.3.4 流程函数 1.4 约束1.5 多表查询1.5.1 连接1.5.2 联合查询 2. 数据库进阶2.1 存储引擎2.1.1 Inno…

中国人民大学与加拿大女王大学金融硕士——学习的阶段让未来的人生更丰盈

初入职场的新人拥有同样的起跑线,经过时间的沉淀,每个人之间就会有差距。差距是怎样被拉开的呢?也可以说是行动导致的。毕竟想是问题,去做才是答案,有行动才会有结果。在职读研与其停留在想的阶段,不如去准…

我发现了PMP通关密码!这14页纸直接背!

一周就能背完的PMP考试技巧只有14页纸 共分成了4大模块 完全不用担心看不懂 01关键词篇 第1章引论 1.看到“驱动变革”--选项中找“将来状态” 2.看到“依赖关系”--选项中找“项目集管理” 3.看到“价值最大化”--选项中找“项目组合管理” 4.看到“可行性研究”--选项中…

「线性DP-步入」最长上升子序列(LIS)

题目描述 给定一个长度为 N 的数列,求数值严格单调递增的子序列的长度最长是多少。 输入格式 第一行包含整数 N。 第二行包含 N 个整数,表示完整序列。 输出格式 输出一个整数,表示最大长度。 数据范围 1 ≤ N ≤ 1000 1≤N≤1000 1≤…

【进阶C语言】有关动态内存管理的经典笔试题(详细图文讲解)

前言 📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。 📗本文收录于C语言进阶系列,本专栏主要内容为数据的存储、指针的进阶、字符串和内存函数…

.class文件在线转成.java文件方法

使用背景: 工作中碰到老的项目就头疼,有些连源码都没有,解决bug只能从class文件反编译成java后,来读懂业务逻辑。 后来在网上找了一些工具来帮助class文件转码,有些遇到lamda表达式就转换错误,有些使用起…

正则表达式的字符串取反常用正则表达式

正则表达式的字符串取反操作 文件同步时,想要过滤掉扩展名为.tmp或者.TMP的临时文件,想要使用正则表达式对字符串进行取反操作。 注意:[^tmp]* 这种取反的表达式,只能表示匹配除了t、m、p以外的所有字符,是单字符匹配…

gRPC-Go源码解读三 服务端处理流程分析

相较于Client端的复杂处理流程,Server端相对来说简单了很多,核心就是创建个TCP套接字并监听,收到客户端连接请求则起个go协程处理,子协程根据请求中的服务名和方法名调用对应的服务方法处理,处理完成之后则返回响应。整…

叫板IT部门和专业软件公司,低代码成为企业数字化的新选择

从2017年政府将“数字经济”写入工作报告,到今年两会将企业数字化转型列为重点议题,数字化的口号已喊了6年。政策对于数字化的支持越来越坚定,令人欣喜的是,越来越多具有远见卓识的企业已将数字化建设作为工作重心。 然而&#xf…

【LeetCode】剑指 Offer 60. n个骰子的点数 p294 -- Java Version

题目链接:https://leetcode.cn/problems/nge-tou-zi-de-dian-shu-lcof/ 1. 题目介绍(60. n个骰子的点数) 把n个骰子扔在地上,所有骰子朝上一面的点数之和为 s。输入 n,打印出 s 的所有可能的值出现的概率。 你需要用一…

Vue.js条件渲染指令v-if及v-show

目录 一、v-if 二、v-show 三、v-if与v-show的选择 一、v-if v-if是Vue.js的条件语句,v-if指令用于条件性地渲染一块内容,这块内容只会在指令的表达式返回true的时候被渲染。需要特别注意的是,v-if所关联的是Vue.js的动态变量。 v-if的使用…

如何计算连续变量的熵

背景 做特征选择时,有时候会用到计算特征的信息熵,可是离散的好计算,但连续的呢?按照把连续变量离散的方法设置阈值点吗?好像比较麻烦,需要排序, 计算阈值。没有能自动的方法吗? 找…

动物养殖虚拟仿真之生猪屠宰VR教学系统

生猪屠宰是一个复杂而危险的工作,需要有严格的操作规程和丰富的经验。但是传统的生猪屠宰培训存在一些问题,例如成本高、难以模拟真实场景等。 为了解决这些问题,VR技术被应用到生猪屠宰培训中,广州华锐互动由此开发了生猪屠宰VR…

BOM(1)

BOM:浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交换的对象,其核心对象是window,由一系列相关对象构成,并且每个对象都提供了很多方法和属性BOM的构成:BOM比DOM更大,它包含DOM。 …

Docker中安装redmine(亲自安装有效)

第一步: 官方的一键安装方式: curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun (我用的它) 国内 daocloud一键安装命令: curl -sSL https://get.daocloud.io/docker | sh ############################可能遇见问题##…