【机器学习11】强化学习

news2025/1/11 15:09:04

1 基本概念

一个机器人在环境中会做各种动作, 环境会接收动作, 并引起自身状态的变迁, 同时给机器人以奖励。 机器人的目标就是使用一些策略, 做合适的动作, 最大化自身的收益。
在这里插入图片描述
整个场景一般可以描述为一个马尔可夫决策过程:
动作: 所有可能做出的动作的集合, 记作A(可能是无限的) 。
状态: 所有状态的集合, 记作S。
奖励: 机器人可能收到的奖励, 一般是一个实数, 记作r。
时间(t=1,2,3…) : 在每个时间点t, 机器人会发出一个动作at, 收到环境给出的收益rt, 同时环境进入到一个新的状态st。
状态转移: S×A→S满足在这里插入图片描述从当前状态到下一状态的转移, 只与当前状态以及当前所采取的动作有关。

累积收益: 从当前时刻0开始累积收益的计算方法是:在这里插入图片描述
强化学习的核心任务是, 学习一个从状态空间S到动作空间A的映射, 最大化累积受益。 常用的强化学习算法有Q-Learning、 策略梯度, 以及演员评判家算法(Actor-Critic) 等。

2 价值迭代和策略迭代

价值迭代:

在这里插入图片描述
上面的迭代过程实际上运用了贝尔曼方程(Bellman Equation) , 来对每个位置的价值进行更新:
在这里插入图片描述

价值V(s)由两部分组成:

在这里插入图片描述

策略迭代:

策略就是根据当前状态决定该采取什么动作。
如何衡量策略的好坏? 这就需要介绍策略评估(Policy Evaluation) 。 给定一个策略π, 我们可以计算出每个状态的期望价值 V(s)。 策略迭代可以帮助我们找到更好的策略, 即期望价值更高的策略, 具体步骤如下:

在这里插入图片描述

3 Q-learning和与Deep Q-learning

Qlearning的本质是, 当前状态sj、 回馈aj、 奖励rj, 以及Q函数之间存在关系:
在这里插入图片描述
依据平方差距, 可以对Q函数的取值做迭代改进。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4 策略梯度

包括深度Q-learning在内的大多数强化学习算法, 都没有收敛性的保证, 而策略梯度(Policy Gradient) 则没有这些问题, 它可以无差别地处理连续和离散状态空间,同时保证至少收敛到一个局部最优解。
策略梯度的基本思想就是, 直接用梯度方法来优化R(θ)。 和Q-learning不同的是, 策略梯度并不估算Q函数本身, 而是利用当前状态直接生成动作at。
设τ为某一次0到T时间所有状态及行动的集合(称作一条轨迹) , 则R(θ)=E(r(τ)), 其中函数r计算了轨迹τ的得分。

在这里插入图片描述
一个简单的算法描述如图:

在这里插入图片描述

∇θR(θ)实际上是一个随机变量g(τ)的期望。 我们对g(τ)进行若干次独立采样, 可以获得对其期望的一个估计。

如果能在不改变期望的前提下减少g(τ)的方差, 则能有效提高对其期望估计的效率。 由于所有可能的状态和动作序列构成了整个轨迹空间,概率密度在整个轨迹空间中的总和必须等于 1。这是因为所有可能事件的总概率应该等于 1。即
在这里插入图片描述

对g(τ)求期望可得:

在这里插入图片描述

对于任一个常量b, 我们定义一个强化梯度:

在这里插入图片描述

因为b是常数,增加前后期望值都不变,但是改变后的方差更小。

在这里插入图片描述

经过计算可以得到最优的b为:

在这里插入图片描述

因此改良后的策略梯度为:
在这里插入图片描述

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

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

相关文章

C++初阶:STL之string类

一.为什么学习string类? 在C语言中没有字符串这一数据类型,都是用字符数组来处理字符串,C也支持这种C风格的字符串。除此之外,C还提供了一种自定义数据类型--string,string是C标准模板库(STL)中的一个字符串类&#x…

爱上C语言:操作符详解(下)

🚀 作者:阿辉不一般 🚀 你说呢:生活本来沉闷,但跑起来就有风 🚀 专栏:爱上C语言 🚀作图工具:draw.io(免费开源的作图网站) 如果觉得文章对你有帮助的话,还请…

腾讯云服务器收费标准是多少?腾讯云服务器收费标准表

你是否曾被繁琐复杂的服务器租赁费用搞得头昏脑胀?看着一堆参数和计费方式却毫无头绪?别担心,这篇文章就来帮你解决这个问题!我们今天就来揭秘一下腾讯云服务器的收费标准,让大家轻松明白地知道如何租用腾讯云服务器。…

Linux(2):初探

Linux 是什么 Linux 就是一套操作系统。Linux 就是核心与系统呼叫接口那两层。 应用程序不算 Linux。 Linux 提供了一个完整的操作系统当中最底层的硬件控制与资源管理的完整架构, 这个架构是沿袭Unix 良好的传统来的,相当的稳定而功能强大。 在 Lin…

Kafka学习笔记(二)

目录 第3章 Kafka架构深入3.3 Kafka消费者3.3.1 消费方式3.3.2 分区分配策略3.3.3 offset的维护 3.4 Kafka高效读写数据3.5 Zookeeper在Kafka中的作用3.6 Kafka事务3.6.1 Producer事务3.6.2 Consumer事务(精准一次性消费) 第4章 Kafka API4.1 Producer A…

typeof null的结果为什么是Object?

在 JavaScript 第一个版本中,所有值都存储在 32 位的单元中,每个单元包含一个小的 类型标签(1-3 bits) 以及当前要存储值的真实数据。类型标签存储在每个单元的低位中,共有五种数据类型: 如果最低位是 1,则类型标签标志…

2024年山东省职业院校技能大赛中职组“网络安全”赛项竞赛试题-C

2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-C 一、竞赛时间 总计:360分钟 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A、B模块 A-1 登录安全加固 180分钟 200分 A-2 本地安全策略设置 A-3 流量完整性保护 A-4 …

YOLOv5 配置C2模块构造新模型

🍨 本文为[🔗365天深度学习训练营学习记录博客 🍦 参考文章:365天深度学习训练营 🍖 原作者:[K同学啊] 🚀 文章来源:[K同学的学习圈子](https://www.yuque.com/mingtian-fkmxf/zxwb4…

【Kingbase FlySync】界面化管控平台:1.安装部署与用户创建

同步软件安装部署与用户创建 概述准备环境目标资源1.测试虚拟机下载地址包含node1,node22.KFS管控平台工具下载地址3.临时授权下载地址 实操:同步软件安装部署1.node1准备安装环境(1)增加flysync 用户并设置密码(2)调整flysync的最大文件句柄数(open fil…

蓝牙耳机仓设计的单芯片解决方案

对于一款优秀的TWS耳机来说,除了耳机本身的音频配置,充电仓也是极为重要的一环。因为与传统有线耳机由设备电池供电不同,缺少了耳机仓,TWS耳机就完全的失去了充电的途径,设备在耗尽电量基本就告别使用了,因…

使用Sqoop命令从Oracle同步数据到Hive,修复数据乱码 %0A的问题

一、创建一张Hive测试表 create table test_oracle_hive(id_code string,phone_code string,status string,create_time string ) partitioned by(partition_date string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ,; 创建分区字段partition_date&#xff0c…

【Qt之QStandardItemModel】使用,tableview、listview、treeview设置模型

1. 引入 QStandardItemModel类提供了一个通用的模型,用于存储自定义数据。 以下是其用法:该类属于gui模块,因此在.pro中,需添加QT gui,如果已存在,则无需重复添加。 首先,引入头文件&#xff…

Python---练习:编写一段Python代码,生成一个随机的4位验证码

案例:编写一段Python代码,生成一个随机的4位验证码 提前:定义一个字符串 str1 "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ" 编写Python代码: ① 思考:如果只生成4个字符的验证码&…

go语言 | 图解字节青训营抖音(一)

前言 本文大致介绍了本人及本人所在小组为第五届字节跳动青训营后端专场大项目需求 —— 「实现一个极简版抖音」的部分实现细节。 需求 本届后端青训营大项目要求实现一个极简版抖音的后端服务,该后端服务通过 HTTP 协议向已被设计好的前端 App 传递数据&#xf…

在listener.ora配置文件中配置listener 1527的监听并且使用tnsnames连接测试

文章目录 前言:一、命令语句实现1、监听介绍2、编辑 listener.ora 文件:寻找配置文件对配置文件进行配置 3、重启监听4、配置TNS 二、图形化界面实现1、listener.ora文件配置2、tnsnames.ora文件配置 三、测试连接 前言: 命令实现和图形化实…

网站页头被挂马状态及新增了index.html文件解决思路

今天网站刚新增了篇了文章《从nginx层阻断可执行的php 防止宝塔站点挂马》,整体测试下来还是不靠谱,设置后导致所有PHP文件都打不开了。 经过不断的查看日志和搜索办法总算告一段落,后续待观察。原因如下,多个网站目录新增了index.html文件,看时间是近两天上传的。 网站代…

超级微同城源码系统 轻松制作本地生活服务平台 源码完全开源可二次开发 带完整的搭建教程

现如今,越来越多的人开始依赖网络进行日常生活。各种生活服务平台如雨后春笋般涌现,为人们提供了方便快捷的服务。然而,对于很多传统企业来说,如何将线下业务转移到线上,如何提高服务质量等问题成为了他们面临的重要挑…

YOLO目标检测——机油泄露检测数据集下载分享【含对应voc、coco和yolo三种格式标签】

实际项目应用:机械设备维护、工业生产监控、环保监管等数据集说明:机油泄露检测数据集,真实场景的高质量图片数据,数据场景丰富标签说明:使用lableimg标注软件标注,标注框质量高,含voc(xml)、co…

搭建大型分布式服务(三十六)SpringBoot 零代码方式整合多个kafka数据源

系列文章目录 文章目录 系列文章目录前言一、本文要点二、开发环境三、创建项目四、测试一下五、小结 前言 让我们来看一下网上是怎样使用SpringBoot整合kafka数据源的,都存在哪些痛点? 痛点一: 手撸kafka配置代码,各种硬编码&a…

cocos3.4.2 2d射线检测 和 animation动画

2D的射线检测 ,注:目标必须有2d刚体和2d碰撞器 ,且项目设置内必须是这个物理系统 //起点位置let objs new Vec2(this.node.getWorldPosition().x, this.node.getWorldPosition().y);// 终点 let obje new Vec2(objs.x 100, objs.y);// 射线检测let results PhysicsSystem2…