当前位置: 首页 > article >正文

RL--2

强化学习当中最难的两个点是:
1.reward delay;
2.agent的行为会影响到之后看到的东西,所以agent要学会探索世界;

关于强化学习的不同类型,可以分为以下三种:
一种是policy based:可以理解为它是去学习一个很强的actor,由actor去指导下一步的行动;
一种是value-based:学习一个好的critic,这个critic其实就是价值函数,由价值函数去指导做下一步的行动;
还有一种是当下最流行的二者结合的方法叫actor+critic,也是PPO 用的方法;
在这里插入图片描述

policy based

在这里插入图片描述
首先我们用神经网络去学习一个actor,他需要根据环境观察到的state(obervation)去得到action的output;
加下来,我们要判断这个action好不好,靠的是环境反馈的reward;
对于一次的游戏体验而已,reward是每次action累计的return的总和;
在这里插入图片描述
但是,我们知道游戏具有随机性,每次的整个游戏过程我们记录为T(s1,a1,r1…);
哪怕我们使用同一个actor,由于游戏本身的随机性T也是不一样的;
但是不同的actor得到的T的概率和倾向性肯定是不一样的;
比如说如果你的actor是见到敌人就呆住,那么你的T大概率就是敌人一出现你就挂了;
所以我们不能拿单次游戏的reward作为此actor的reward,我们要进行多次游戏,这就好比在T的分布中进行采样;N次采样取平均作为这个actor的reward;
在这里插入图片描述
接下来我们的目标是优化actor的参数去最大化游戏反馈的reward;
在这里插入图片描述
注意Trajactery对应得reward跟待优化的参数没关系,他是环境的反馈,所以可不可导无所谓;
在这里插入图片描述
在这里插入图片描述
这里要注意R(T)是某个trajactory完成后的reward,而不是某个action的reward,这个也很好理解;
在这里插入图片描述
关于这里为什么要取log的解释是,不同的action采样到的频次不一样,模型会提升采样到的多的action的概率,哪怕reward没有很高,所以要除以概率本身,这样子本来比较高概率的action的grad就会变小
在这里插入图片描述
注意R(T)如果都是正值应该不会有问题,也就意味着每个action都会被激励,只是激励有大有小,但是如果说采样过程中有个action没有采样到,不知道action a的reward是多少,这就会导致action a的概率比较低,所以最好给reward减去一个bias,这个bias是我们自己设计的。这样reward有正有负之后,可以去掉采样不均匀带来的一些影响
在这里插入图片描述
所以整个policy based RL的整体流程就是:现有一个初始化参数的actor,然后去sample(其实就是跟环境交互的过程)获取路径、行动、反馈,再拿上面三个去训练model,更新参数,其实log后面那部分和我们正常的深度学习网络一样的,(input就是s,label就是action a)只是前面会乘以整个路径的reward的系数,也就是把reward作用在这个actor上;
在这里插入图片描述
在这里插入图片描述
如果我们的enviroments和reward是model的话,可以直接训练;但如果不是,不能微分的话,就用policy gradient硬train一发;
在这里插入图片描述
这里的critic其实就是价值函数;
在这里插入图片描述
如何衡量价值函数好不好?很简单,价值函数的衡量越接近实际的reward越好;
在这里插入图片描述
我们需要给每一个action合理的reward;上述的同一个trajectory里面的每个action都是相同reward显然不合理,一个action的reward首先跟以往历史的action的reward无关,其次随时间会递减reward的影响;下图中的advantage function是相对于其他action,在当前actor采用本action的credit;
在这里插入图片描述
关于on policy,也就是采样数据=》更新model=>采样数据=》更新model的循环;
因为我们每次要根据trajectory最终的reward去计算每个action的credit,所以要等到一批数据采集完才能更新,当前的数据一旦更新完model就不能在用了,因为它只适用于当前的policy model,更新后policy model就变了;所以这个过程很繁琐耗时间;
off policy的意思就是我们训练的model和我们采集数据的model不是同一个model,我们可以随意选取一个actor去采集数据(大量数据),分布的事情可以靠分布之间的变换解决(关于这个变换后面的视频没有具体看,下次可以补上)
在这里插入图片描述
我们观察数据的actor的分布和实际train的actor的分布不能差太多,差太多以下近似公式会不成立
在这里插入图片描述
上图最后一项是待优化的函数:顾名思义:当前actor根据s采取的action的概率乘以对应的credit,我们希望其越大越好;

上面说到,我们不希望采样数据的分布和训练的actor分布差别太大,那么就需要用到限制,TRPO是额外加出来的限制,不好训练,用的少,PPO就是把限制加入到优化函数里面去了;然后关于beta的值是个动态调整的值,我们会自己设一个LKL最大最小值,超过最大值,就调小beta,反之亦然;这里要注意的是,KL计算的不是参数之间的距离,而是behaivor之间的距离;通用采样数据的s和a就可以计算;

在这里插入图片描述
PPO
在这里插入图片描述
PPO2的加了个clip来做,意思就是看图:如果A>0是正激励,就希望P越大越好,但是也不要太大,如果A<0是负激励,就希望P越小越好,但是也不要太小;
在这里插入图片描述
PPO就是紫色的线,可以看到PPO算法在RL中算是非常稳定和性能好的;
在这里插入图片描述

相关文章:

RL--2

强化学习当中最难的两个点是&#xff1a; 1.reward delay&#xff1b; 2.agent的行为会影响到之后看到的东西&#xff0c;所以agent要学会探索世界&#xff1b; 关于强化学习的不同类型&#xff0c;可以分为以下三种&#xff1a; 一种是policy based&#xff1a;可以理解为它是…...

SpringMVC新版本踩坑[已解决]

问题&#xff1a; 在使用最新版本springMVC做项目部署时&#xff0c;浏览器反复500&#xff0c;如下图&#xff1a; 异常描述&#xff1a; 类型异常报告 消息Request processing failed: java.lang.IllegalArgumentException: Name for argument of type [int] not specifie…...

2025 pwn_A_childs_dream

文章目录 fc/sfc mesen下载和使用推荐 fc/sfc https://www.mesen.ca/docs/ mesen2安装&#xff0c;vscode安装zg 任天堂yyds w d 左右移动 u结束游戏 i崩溃或者卡死了 L暂停 D658地方有个flag 发现DEEE会使用他。且只有这个地方&#xff0c;maybe会输出flag&#xff0c;应…...

pandas(11 分类数据和数据可视化)

前面内容&#xff1a;pandas(10 日期和Timedelta) 目录 一、Python Pandas 分类数据 1.1 pd.Categorical() 1.2 describe() 1.3 获取类别的属性 1.4 分类操作 1.5 分类数据的比较 二、Python Pandas 数据可视化 2.1 基础绘图&#xff1a;plot 2.2 条形图 2.3 直方…...

Redis 03章——10大数据类型概述

一、which10 &#xff08;1&#xff09;一图 &#xff08;2&#xff09;提前声明 这里说的数据类型是value的数据类型&#xff0c;key的类型都是字符串 官网&#xff1a;Understand Redis data types | Docs &#xff08;3&#xff09;分别是 1.3.1redis字符串&#xff0…...

bps是什么意思

本文来自DeepSeek "bps" 是 "bits per second" 的缩写&#xff0c;表示每秒传输的比特数&#xff0c;用于衡量数据传输速率。1 bps 即每秒传输 1 比特。 常见单位 bps&#xff1a;比特每秒 Kbps&#xff1a;千比特每秒&#xff08;1 Kbps 1,000 bps&am…...

撕碎QT面具(1):Tab Widget转到某个Tab页

笔者未系统学过C语法&#xff0c;仅有Java基础&#xff0c;具体写法仿照于大模型以及其它博客。自我感觉&#xff0c;如果会一门对象语言&#xff0c;没必要先刻意学C&#xff0c;因为自己具有对象语言的基础&#xff0c;等需要用什么再学也不迟。毕竟不是专门学C去搞算法。 1…...

PCL源码分析:点云数学形态学操作

文章目录 一、简介二、源码分析三、实现效果参考资料一、简介 基本原理:使用结构元素(通常为滤波的窗口)的窗口模板作为处理单元,利用形态学中的膨胀与腐蚀相组合即可达到滤波的效果。 点云数据中的数学形态学运算其实和二维图像上的运算非常相似,图像上像素有x,y和亮度值…...

项目版本号生成

需求 项目想要生成一个更新版本号&#xff0c;格式为v2.0.20250101。 其中v2.0为版本号&#xff0c;更新时进行配置&#xff1b;20250101为更新日期&#xff0c;版本更新时自动生成。 实现思路 创建一个配置文件version.properties&#xff0c;在其中配置版本号&#xff1b…...

rtsp rtmp 跟 http 区别

一 会话管理 与SDP 1. RTSP&#xff08;Real Time Streaming Protocol&#xff09; (1) 是否需要建立会话&#xff1f; 需要显式会话。 RTSP 是基于会话的协议&#xff0c;客户端与服务端通过 SETUP、PLAY、TEARDOWN 等命令明确控制会话生命周期。 会话标识&#xff1a;通过…...

善筹网设计与实现(代码+数据库+LW)

摘 要 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#xff0c;还是安全性&#xff0c;还是可操作性等各个方面来讲&#xff0c;遇到了互联网时代才发现能补上自…...

SQL SERVER的PARTITION BY应用场景

SQL SERVER的PARTITION BY关键字说明介绍 PARTITION BY关键字介绍具体使用场景排名计算累计求和分组求最值分组内百分比计算分组内移动平均计算分组内数据分布统计分组内数据偏移计算 总结 PARTITION BY关键字介绍 在SQL SERVER中&#xff0c;关键字PARTITION BY主要用于窗口函…...

使用 MindSpore 训练 DeepSeek-V3 模型

MindeSpore 已经适配 DeepSeek-V3 的训练推理啦&#xff0c;下面是使用 MindSpore 对DeepSeek-V3做训练的过程。 一、环境确认 这里呢我使用的是 8张 910B2 的显卡&#xff1a; 其中 MindSpore Transformers 的环境依赖如下&#xff1a; PythonMindSporeCANN固件与驱动3.1…...

生成对抗网络(GAN)的“对抗“过程解析:从图像合成到药物发现的跨领域应用

技术原理&#xff08;数学公式示意图&#xff09; 核心对抗公式 min ⁡ G max ⁡ D V ( D , G ) E x ∼ p d a t a [ log ⁡ D ( x ) ] E z ∼ p z [ log ⁡ ( 1 − D ( G ( z ) ) ) ] \min_G \max_D V(D,G) \mathbb{E}_{x\sim p_{data}}[\log D(x)] \mathbb{E}_{z\sim p_…...

DeepSeek R1完全本地部署实战教程01-课程大纲

一、课程体系 二、学习目标: 了解基础知识掌握安装部署学会搭建可视化界面能力水平进阶三、课程特点: 案例驱动工程实战完整体系四、课程大纲 1.DeepSeek R1 项目运行演示 【视频课程】 (1)可视化交互 (2)联网搜索 (3)本地知识库 2.环境安装部署 【视频课程】 (1)软…...

redis cluster测试

集群节点信息这时候停掉一个master 172.30.60.31 从集群信息集中我们可以看到172.30.60.31的slave是172.30.60.41&#xff0c;查看41的日志&#xff0c;发现他成为了新的master 这时候我们在将172.30.60.41也杀死&#xff0c;会发现集群异常了 尝试把172.30.60.31启动&#xff…...

跨平台AES/DES加密解密算法【超全】

算法说明 要实现在 WinForm、Android、iOS、Vue3 中使用 相同的算法,确保各平台加密结果互通 一、统一加密参数 算法: AES-256-CBC 密钥: 32字节(示例中使用固定字符串生成) IV: 16字节 填充模式: PKCS7 字符编码: UTF-8 输出格式: Base64二、各平台实现代码...

关于前后端分离跨域问题——使用DeepSeek分析查错

我前端使用ant design vue pro框架&#xff0c;后端使用kratos框架开发。因为之前也解决过跨域问题&#xff0c;正常是在后端的http请求中加入中间件&#xff0c;设置跨域需要通过的字段即可&#xff0c;代码如下所示&#xff1a; func NewHTTPServer(c *conf.Server, s *conf…...

数据恢复-01-机械硬盘的物理与逻辑结构

磁盘存储原理 磁盘存储数据的原理&#xff1a; 磁盘存储数据的原理是利用磁性材料在磁场作用下的磁化性质&#xff0c;通过在磁盘表面上划分成许多小区域&#xff0c;根据不同的磁化方向来表示0和1的二进制数据&#xff0c;通过读写磁头在磁盘上的移动&#xff0c;可以实现数据…...

pytest asyncio 支持插件 pytest-asyncio

pytest 是 Python 测试框架&#xff0c;但其不支持基于 asyncio 的异步程序&#xff08;例如&#xff0c;测试 FastAPI 异步代码&#xff09;&#xff0c;pytest-asyncio 是一个 pytest 插件&#xff0c;该插件赋予 pytest 可以测试使用 asyncio 库代码的能力。 https://github…...

网络工程师 (35)以太网通道

一、概念与原理 以太网通道&#xff0c;也称为以太端口捆绑、端口聚集或以太链路聚集&#xff0c;是一种将多个物理以太网端口组合成一个逻辑通道的技术。这一技术使得多个端口能够并行工作&#xff0c;共同承担数据传输任务&#xff0c;从而提高了网络的传输能力和可靠性。 二…...

USB2.03.0摄像头区分UVC相机在linux中的常用命令

这里是引用 一. USB2.0 & 3.0接口支持区分 1.1. 颜色判断 USB接口的颜色并不是判断版本的可靠标准&#xff0c;但根据行业常见规范分析如下&#xff1a; USB接口颜色与版本对照表&#xff1a; 接口颜色常见版本内部触点数量传输速度黑色USB2.04触点480 Mbps (60 MB/s)白…...

【推理llm论文精度】DeepSeek-R1:强化学习驱动LLM推理能力飞跃

最近deepseek R1模型大火&#xff0c;正好复习一下他家的技惊四座的论文https://arxiv.org/pdf/2501.12948 近年来&#xff0c;大型语言模型&#xff08;LLM&#xff09;在推理能力上取得了显著进展&#xff0c;但如何进一步有效提升仍然是研究热点。DeepSeek-AI发布了 DeepS…...

从零搭建SpringBoot3+Vue3前后端分离项目基座,中小项目可用

文章目录 1. 后端项目搭建 1.1 环境准备1.2 数据表准备1.3 SpringBoot3项目创建1.4 MySql环境整合&#xff0c;使用druid连接池1.5 整合mybatis-plus 1.5.1 引入mybatis-plus1.5.2 配置代码生成器1.5.3 配置分页插件 1.6 整合swagger3&#xff08;knife4j&#xff09; 1.6.1 整…...

使用 Python 爬虫和 FFmpeg 爬取 B 站高清视频

以下是一个完整的 Python 爬虫代码示例&#xff0c;用于爬取 B 站视频并使用 FFmpeg 合成高清视频。 1. 准备工作 确保安装了以下 Python 库和工具&#xff1a; bash复制 pip install requests moviepy2. 爬取视频和音频文件 B 站的视频和音频文件通常是分开存储的&#x…...

学习数据结构(9)栈和队列上

1.栈的概念 栈是一种特殊的线性表&#xff0c;只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作 的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出&#xff08;先进先出&#xff09;的原则 栈的插入操作叫做进栈/压栈/入栈&#xff…...

【ESP32】ESP-IDF开发 | WiFi开发 | HTTP服务器

1. 简介 1.1 HTTP HTTP&#xff08;Hyper Text Transfer Protocol&#xff09;&#xff0c;全称超文本传输协议&#xff0c;用于从网络服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效&#xff0c;使网络传输减少。它不仅保证计算机正确快速地传输超文本文档…...

hbase合并队列超长问题分析

问题现象 hbase集群合并队列超长,有节点上合并任务已经运行超过1天未结束,合并队列总长不断增加。 问题分析 参数配置: 配置参数默认值含义hbase.hregion.memstore.flush.size128MMemStore达到该值会Flush成StoreFilehbase.hregion.memstore.block.multiplier4当region中…...

【YOLOv11改进- 主干网络】YOLOv11+CSWinTransformer: 交叉窗口注意力Transformer助力YOLOv11有效涨点;

YOLOV11目标检测改进实例与创新改进专栏 专栏地址:YOLOv11目标检测改进专栏,包括backbone、neck、loss、分配策略、组合改进、原创改进等 本文介绍 发paper,毕业皆可使用。 本文给大家带来的改进内容是在YOLOv11中更换主干网络为CSWinTransformer,助力YOLOv11有效涨点,…...

滚动弹幕案例

滚动弹幕案例 一、需求 1.页面上漂浮字体大小不一、颜色不一&#xff0c;从左向右滚动的弹幕&#xff1b; 2.底部中间有一个发送功能&#xff0c;可以发送新的弹幕&#xff1b; 3.底部的发送部分可以向下收起和弹出。 二、html <div class"container"><…...