强化学习RL 01: Reinforcement Learning 基础

news2024/11/17 17:33:40

目录

RL理解要点

1. RL数学基础

1.1 Random Variable 随机变量

1.2 概率密度函数 Probability Density Function(PDF)

 1.3 期望 Expectation

1.4 随机抽样 Random Sampling

2. RL术语 Terminologies

2.1 agent、state 和 action

2.2 策略 policy π

2.3 奖励 reward

2.4 状态转移 state transition

2.5 agent environment interaction 环境交互

2.6 强化学习中的随机性 Randomness in Reinforcement Learning

2.7 play the game using AI

2.8 rewards、returns

2.8.1 Discounted return Ut 折扣回报

2.8.2 Random in Returns 

2.9 value function 价值函数

2.9.1 Action-value function Qπ(s, a)

2.9.2 Optimal action-value function Q*

2.9.3 State-value function Vπ

3. How does AI control the agent?

3.1 policy function π

3.2 Q*(s, a)函数

3.3 Open AI gym

参考


RL理解要点

  • RL学什么呢?就是要学习policy策略函数

1. RL数学基础

1.1 Random Variable 随机变量

Random Variable: a variable whose values depend on outcomes of a random event. 随机变量是一个未知的量,它的值取决于随机事件的结果。

用大写字母表示随机变量 random variable,用小写字母表示随机变量观测值 observed value

1.2 概率密度函数 Probability Density Function(PDF)

本质:就是一个概率分布(0.2, 0.3, 0.5)

PDF provides a relative likelihood that the value of the random variable would equal that sample.

e.g. Gaussian distribution

连续分布、离散分布。用\chi表示其定义域domain 

 1.3 期望 Expectation

本质:是平均值,是预估结果。 

1.4 随机抽样 Random Sampling

2. RL术语 Terminologies

2.1 agent、state 和 action

  • 可以近似理解当前图片frame就是state
  • agent,翻译为“智能体” 
  • 当前state,agent可以做的动作叫action,包括{'left', 'right', 'up'}

2.2 策略 policy π

本质:policy策略是一个概率密度函数,就是根据state生成一个动作action概率分布

policy根绝观测到状态state,做出决策,然后控制agent运动。

Note that policy函数是随机的。 

2.3 奖励 reward

agent做出一个动作,游戏就会给出一个奖励reward

奖励定义的好坏,非常影响强化学习的结果

2.4 状态转移 state transition

agent做出一个动作,游戏就会给出一个新的状态state,这个过程就叫state transition。

  • state transition can be random.
  • randomness is from the environment. 状态转移的随机性是从环境中来的,这里的环境是游戏的程序。

 可以把状态转移用p函数来表示,这是个条件概率密度函数,意思是如果观测到当前状态s和动作a ,p函数就表示s prime的概率

2.5 agent environment interaction 环境交互

agent和environment,agent看到状态st之后,要做出一个动作at,agent做出动作at后,环境environment会更新状态、把状态变成st+1,同时environment还会给agent一个奖励rt。

2.6 强化学习中的随机性 Randomness in Reinforcement Learning

 

  • Actions have randomness. actions是根据policy函数随机抽样得到的,我们用policy函数来控制agent,给定当前状态s,agent输出的动作a是根据策略函数policy输出的概率分布来随机抽样。
  • state transitions have randomness. 假定agent做出了up action,环境environment就要生成下一个状态s',这个状态s'具有随机性,environment用状态概率转移函数p算出概率,然后用概率来随机抽样得到下一个状态s',

2.7 play the game using AI

通过强化学习学出policy function π,AI就是用policy函数来控制agent。

 

游戏当前状态s1,AI用policy函数来算一个概率,然后随机抽样得到动作a1,然后环境会生成下一个状态s2,并且给agent一个奖励r1,然后环境会拿新的状态s2作为输入,并用policy function来算概率,然后随机抽样得到新的动作a2,然后这样一直循环下去,直到打赢游戏或game over。

得到一个轨迹(state, action, reward)trajectory:s1,a1,r1,s2,a2,r2,...,st,at,rt。

2.8 rewards、returns

Return翻译为“回报”,也称作cumulative future reward,“未来的累积奖励”。

U_{t} = R_{t} + R_{t+1} + R_{t+2} + R_{t+3} + ...

把t时刻的return记作Ut,就是把从t时刻开始的reward全都加起来,一直加到游戏结束时的最后一个奖励。

Question: Are Rt and Rt+1 equally important?

Future reward is less valuable than present reward.

Rt+1 should be given less weight than Rt. --> Discounted return

2.8.1 Discounted return Ut 折扣回报

γ,折扣率 discount rate gamma(tuning hyper-parameter),介于[0, 1]。

折扣率是个超参数,需要我们自己来调,折扣率的设置对强化学习的效果有一定的影响。

Ut用来衡量未来总收益。

2.8.2 Random in Returns 

Return Ut的随机性。假如游戏已经结束了,所有的奖励已经观测到了,那么奖励是数值,用rt表示;如果在t时刻游戏还没结束,那么奖励还是随机变量,还没被观测到,用Rt表示。

随机性有两个来源:一是action a是从policy概率分布中随机抽样得到的;二是下一状态new state,状态转移函数p输出一个概率分布,environment从中随机抽样得到一个新的状态s'。

  • For any i ≥ t, the reward Ri depends on Si and Ai. 当前agent处在的状态s和做出的动作a,就决定了奖励Ri是什么。
  • 回报Ut是Rt、Rt+1等等的加权求和,而Ri是由Si和Ai决定的,所以给定st,Ut跟t时刻开始所有的动作At,At+1,At+2,..和状态St+1,St+2,...都有关了

2.9 value function 价值函数

2.9.1 Action-value function Qπ(s, a)

在t时刻,你并不知道Ut是什么。Ut是个随机变量,它依赖于未来所有的动作At,At+1,At+2,...和未来所有的状态St,St+1,St+2,...

Ut未知,那我该怎么评估当前的形势呢?

对Ut求期望,把里面的随机性都用积分积掉,得到一个实数

把Ut当作未来所有动作Ai和所有状态Si的一个函数,未来的动作和状态都有随机性,动作Ai的概率密度函数是policy function π,状态Si的概率密度函数是状态转移函数p,期望就是针对未来Si和Ai求得,出了St和At,其余的随机变量都是积分积掉,被积掉的是At+1,At+2等动作、St+1,St+2等动作,求期望得到的动作价值函数Qπ,其只跟当前动作at、状态st有关。

函数Qπ还与policy function π有关,因为积分时会用到policy函数,π函数不一样,Qπ就会不一样。

Qπ的直观意义:如果用状态价值函数Qπ,那么在当前状态st下做动作at是好还是坏。

已知policy函数π,那么Qπ就会给当前状态下所有动作A打分,然后就知道哪个动作好、哪个动作不好

2.9.2 Optimal action-value function Q*

如何把action-value function中的π去掉呢?

可以对Qπ关于π求最大化意思是我们有无数种policy函数π,但我们应该使用最好的那一种

最好的policy函数就是让Qπ最大化的那个π,得到函数Q*称为optimal action-value function

Q*跟π无关,它的直观意义:Q*可以用来对当前动作at做评价--分数,比如下围棋是,你把棋子放在这个位置胜算有多大,你把棋子放在那个位置胜算有多大。

Q*非常有用,agent可以根据Q*对actions的评价来做决策。

2.9.3 State-value function Vπ

状态价值函数Vπ,它是action-value function动作价值函数Qπ的期望。

Qπ与状态st、动作A有关,可以把A当作随机变量,求期望把它消掉,这样Vπ只跟st和π有关。

Vπ直观意义:Vπ可以告诉我们当前局势好不好,比如下围棋,Vπ可以告诉我们当前胜算有多大,是快赢了还是快输了。

这里的期望是根据A求得,A的概率密度函数是policy function π。根据期望定义,可以把期望写成连加或积分的形式。

 For fixed policy π, Vπ(s) evaluates how good the situation is in state s.

Es[Vπ(S)] evaluates how good the policy π is.

3. How does AI control the agent?

3.1 policy function π

一种方法是学一个策略函数policy π

有了policy 函数π,就可以用来控制agent来做动作

3.2 Q*(s, a)函数

另一种方法是学习optimal action-value function Q*(s, a)函数,它是value based model

假如有了Q*函数,agent可以根据Q*函数来做动作了

        如果处在状态s,那么做动作a是好还是坏。没观测到一个状态st,就把st作为Q*函数的输入,让Q*函数对每一个函数做一个评价,假如up move的q值最大,因为q值是对未来奖励reward总和的期望,所以选up获取以期在未来获得更多奖励。

3.3 Open AI gym

  • 经典控制问题
  • atari game
  • 连续控制问题 continuous control tasks

参考

1. 王树森~强化学习 Reinforcement Learning

2.  https://www.cnblogs.com/pinard/category/1254674.html

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

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

相关文章

利用GPT-3 Fine-tunes训练专属语言模型

利用GPT-3 Fine-tunes训练专属语言模型 文章目录什么是模型微调(fine-tuning)?为什么需要模型微调?微调 vs 重新训练微调 vs 提示设计训练专属模型数据准备清洗数据构建模型微调模型评估模型部署模型总结什么是模型微调&#xff0…

cesium: 绘制线段(008)

第008个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中绘制线段,左键点击开始绘制,右键点击取消绘制 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共139行)相关API参考:专栏目标示例效果 配置方式 1)…

Win11的两个实用技巧系列清理磁盘碎片、设置系统还原点的方法

Win11如何清理磁盘碎片?Win11清理磁盘碎片的方法磁盘碎片过多,会影响电脑的运行速度,所以需要定期清理,这篇文章将以Win11为例,给大家分享的整理磁盘碎片方法相信很多用户都会发现,随着电脑使用时间的增加&#xff0c…

一文了解 requestAnimationFrame

requestAnimationFrame 的基本使用 requestAnimationFrame 是什么 window.requestAnimationFrame() 告诉浏览器——你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画。该方法需要传入一个回调函数作为参数,该回调函数会在浏…

想要实现无人机控制算法二次开发,一定不要错过这个matlab工具包

什么是Matlab工具包 Matlab工具包提供了无人机位置环控制算法、Simulink示例程序,通过Matlab ROS Toolbox建立Matlab(Simulink)与ROS之间的通信链路,Prometheus项目中将提供转为Matlab设计的控制接口,同时将继承Prome…

Scala-特质

特质 特质的混入用法 特质的叠加 特质和抽象类的区别 特质自身类型 特质 Scala 语言中,采用特质 trait(特征)来代替接口的概念,也就是说,多个类具有相同 的特质(特征)时,就可以…

ELK + Kafka 测试

配置file beat输出到 Kafkalogstash服务器从kafka获取数据并输出到es集群在es集群上查看索引kibana界面添加索引查看数据1.配置file beat输出到 Kafka 1.1 Filebeat机器配置数据采集和输出目标 做好域名解析 # vim /usr/local/filebeat/filebeat.yml # 修改输出目标为kafka…

CRM客户管理系统哪个好用?盘点前十名!

CRM客户管理系统排行?盘点前十名! CRM客户管理系统是一种集成多种功能的软件系统,可以帮助企业跟进和管理客户关系、提高销售业绩、优化营销策略等。对于企业来说,选择一款适合自己的CRM系统非常重要,因为它能够直接影…

使用kotlin编写html dsl框架

前排提醒,这个框架就是我写着玩的,如果您已经会使用vue或其他前端框架,这篇文章可能对您没有什么意义。即使您不会如上提到的框架,也不要对该框架报有过高的期待,该框架更多的是,我自己的自娱自乐。 这里还…

新闻格式的演变及其对我们消费新闻方式的影响

这些年来,我们消费新闻的方式发生了翻天覆地的变化,从印刷报纸和广播新闻时代到 24 小时新闻频道和数字新闻平台时代。随着新闻媒体的发展,新闻呈现的格式也发生了变化。今天,新闻格式在新闻如何被受众传播和理解方面起着至关重要…

工程机械焊接件焊接结构件三维扫描检测外观质量控制-CASAIM三维扫描检测仪

焊接已发展为制造业中的一种重要的加工方法,广泛应用于航空、航天、冶金、石油、汽车制造以及国防等领域。工程机械焊接件品种繁多、几何形状复杂,焊接件质量的好坏将直接影响到产品的使用寿命长短。对焊缝表面尺寸测量及评定表面焊缝缺陷时,…

不到3天给公司省下近10万,低代码是真给老板省钱

早上领导开组会提了个似曾相识的需求,客户想要一个点餐系统。需求是用户登录后可以直接享有会员权益,还要提供外卖管理系统、配送系统、数据中台、BI数据分析、系统托管等O2O解决方案。 这是餐饮业典型的业务场景,如果缺乏必要的数字化工具支…

GitLab分支管理规范

GitLab 分支管理规范 本规范用于描述日常研发流程中关于 GitLab 上代码分支使用的规则, 大家共同严格遵守规范, 避免出现分支管理混乱现象, 保证日常的发版上线工作顺利进行。 Workspace: 工作区, 平时我们写代码的地方Index: 暂存区, 写完代码后让它变成的待提交的状态Repos…

《系统架构设计》-05-架构模型(Architecture Model)

文章目录1. 概述1.1 模型1.2 软件设计领域的架构模型2. 领域模型(Domain Model)2.1 概念2.2 示例3. 设计模型(Design Model)3.1 概念3.2 创建过程4. 代码模型4.1 概念4.2 创建过程5. 三种模型的关系1. 概述 1.1 模型 诠释&#…

“华为杯”研究生数学建模竞赛2006年-【华为杯】A题:Ad Hoc 网络中的区域划分和资源分配问题(附获奖论文)

赛题描述 Ad Hoc网络是当前网络和通信技术研究的热点之一,对于诸如军队和在野外作业的大型公司和集团来说,Ad Hoc网络有着无需基站、无需特定交换和路由节点、随机组建、灵活接入、移动方便等特点,因而具有极大的吸引力。 在Ad Hoc网络中,节点之间的通信均通过无线传输来完…

黑马Spring学习笔记(三)——Spring整合MyBatis、Junit

一、Spring整合Mybatis 步骤1:项目中导入整合需要的jar包【pom.xml】<!--Spring操作数据库需要该jar包--> <dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.20</version&g…

前端技术和框架

一、各种技术概述 1.HTML &#x1f9e8;HTML中文称为超文本标记语言&#xff0c;从语义上来说&#xff0c;它只是一种是一种标识性的语言&#xff0c;并不是一种编程语言。 <p>这是一段话</p>通过这个标签可以表示文本的一个段落。而且其中还有还有图片标签、视…

Dvwa及Sqli安装

Dvwa与Sqli安装资源准备Dvwa安装SQLI安装资源准备 链接&#xff1a;https://pan.baidu.com/s/1ZhPTmSgD-VaAevK-JyWtjQ 提取码&#xff1a;2hkd Dvwa安装 首先将Dvwa解压到phpstudy的www目录下&#xff1a; 然后进入到相应的config文件下&#xff0c;会发现一个dist结尾的文…

第三节 流程控制语句

流程控制语句 顺序结构 分支结构 if分支结构&#xff1a; 格式1: if(条件表达式){ 代码 } 格式2&#xff1a; if(条件表达式){ 代码 }else{ 代码 } 格式3&#xff1a; if(条件表达式){ 代码 }else if&#xff08;&#xff09;{ 代码 }else if&#xff08;&#xff09;{ 代码…

SpringCloud(五)MQ消息队列

MQ概念常见消息模型helloworld案例实现实现spring AMQP发送消息实现spring AMQP接收消息工作消息队列实现发布订阅模型Fanout Exchange实现DirectExchange实现TopicExchange实现DirectExchange 和FanoutExchange的差异DirectExchange 和TopicExchange的差异基于RabbitListener注…