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

深度强化学习之 PPO 算法

深度强化学习之 PPO 算法

    • 强化学习原理
    • 学习策略 = 基于行为价值 & 基于行为概率
    • 策略梯度算法:计算状态下所有行为的概率
    • 演员 - 评论家算法:一半基于行为价值,一半基于行为概率
      • DQN 算法(深度Q网络)
        • Q-Learning(Q 值)
    • PPO 算法 = DQN算法 + 演员-评论家算法 + 策略梯度算法

强化学习原理

机器学习是把带标签的数据训练模型,使得预测值尽可能接近真实值。

强化学习是通过和环境交互,奖励来训练模型,使得最后获取的奖励最大期望值。

在强化学习中,机器基于环境做出行为,正确的行为能够获得奖励。以获得更多奖励为目标,实现机器与环境的最优互动。

如教狗子握手的时候,如果狗子正确握手,就能得到骨头奖励,不握手就没有。如果咬了主人一口,还会受到惩罚。

长此以往,狗子为了得到更多骨头,就能学会握手这个技能。

  • 编程开发三要素:数据结构 + 传统算法 = 程序
  • 机器学习三要素:数据 + 学习算法 = 模型
  • 强化学习六要素:环境、决策模型、状态、行为、奖励、评论家

如在对弈的环境中,决策模型根据棋盘上的状态,做出落子行为,然后每盘棋的胜负获得奖励。模拟足够多棋局后,评论家就可以通过计算预测出每步棋对整盘棋的价值,为其打分。

通过不断训练,机器以赢更多局棋为目标,不断更新优化,成为一个围棋大师。

可以将学习的场景分为两类:

  • 离散场景:机器行为的有限的,如动作类游戏。只有向上、向下、向左、向右这 4 个动作,移动也只能一格一格地走。

    可以把每个状态下的所有行为列举出来,用评论家为每个行为打分,通过选择最高分的行为实现最优互动。

    因为需要评估每个行为的价值,所以这种学习方法被称为基于行为价值的方法

  • 连续场景:机器的行为是连贯的,如赛车的方向盘转动角度可以在一定区间内任意取值,角度之间可以无限分割。

    还有基于行为概率的方法,无需根据每个行为的价值来打分,可以很好地胜任连续场景。
     


学习策略 = 基于行为价值 & 基于行为概率

基于值的方法需要根据每个行为的价值进行打分,选出价值最高的行为。由于要穷举出所有行为,因此它只适用于离散场景。

  • Q-Learning 和 DQN 算法,都属于基于值的强化学习方法。

基于价值的方法无法应对连续场景。只能应用在不连续的、离散的环境下(如围棋或动作类游戏)。

对于动作集合规模庞大、动作连续的场景(如机器人控制领域),其很难学习到较好的结果。

基于价值(Value-Based)的思路是:通过计算行为的价值(Value)来训练模型。

棋盘上一共只有 361 个点位,基于值的方法可以计算出棋子落在每个点位的价值,并进行打分,帮助机器选出最优点位。

好处:基于值的方法能实时反馈。可以根据每个行为的价值进行打分,这个分数就相当于每个行为的实时反馈。但不能应用连续场景上。

而基于策略(Policy-Based)的方法并不需要考虑行为的价值,而是反应调整。

机器会在训练过程中随机抽取一些行为,与环境互动。如果行为获得了奖励,就会提高选择它的概率。以后遇到同样的状态时,有更高的概率再次做出这个行为。

相反,如果未获得奖励,或者受到了惩罚,就保持或者降低该行为的概率。

经过大量训练,最终会得出连续行为的概率分布。

基于这样的原理,一个行为能获得越多奖励,被选择的概率就越大,从而实现机器和环境的最优化互动。

好处:基于策略的方法能应用连续场景上。但不能实时反馈。

策略梯度算法:计算状态下所有行为的概率

基于策略的方法,它的原理是根据行为的概率来训练模型。

实现方式:策略梯度算法引入了一个神经网络,输入层是状态(s),经过隐藏层的分析和计算,输出该状态下每个行为的概率.

策略梯度算法在训练过程中经常遇到一个难题:机器在与环境互动时,难以得到实时反馈,往往要在整个回合结束后才能获得奖励。

如赢一盘棋是正向奖励,输一盘棋是负面奖励,但棋局中某一颗棋子的价值很难即时评估。

想要提高学习效率,就必须想办法提供实时反馈。

有没有办法可以将基于策略在应对连续场景上的优点,和基于值在实时反馈上的优点进行结合呢?

那就是演员-评论家算法。

 


演员 - 评论家算法:一半基于行为价值,一半基于行为概率

演员-评论家算法就是将基于策略和基于值两个方法相结合的产物。

这个算法分成两半,一半是演员,另一半是评论家。

  • 演员:这一半基于策略,策略梯度算法。它有一个神经网络,可以根据行为的概率,选出行为。
  • 评论家:这一半基于价值,DQN 算法。它有一个神经网络,可以根据行为的价值进行打分。

将基于策略和基于值的方法相结合,由基于策略的策略网络在连续场景中选出行为,由基于值的价值网络给行为提供实时反馈。

策略网络就像写作业的学生,价值网络就像批改作业的老师。二者结合,反复地写作业、改作业,对比方法,找出最好的方法。
 


DQN 算法(深度Q网络)

DQN 算法全称 深度Q网络,以 Q-Learning 算法为基础,融合了神经网络

Q-Learning(Q 值)

Q-Learning 有一个 Q 值(评论家),一个行为的 Q 值越高,表示该行为能带来的奖励越多,越应该被选择。

Q-learning 算法需要知道每个状态下,所有行为Q 值

机器在每个状态下都能做出 Q 值最大的行为(a)。

因为计算每一个Q值,需要同时记录同一个状态下所有行为。

而当状态和行为的数量非常庞大时,储存所有数据会占用非常多的资源。

使用神经网络可以直接学习状态、行为、Q值的关系,输入状态,就能得到每个行为的Q值。

神经网络在这的功能:从存储 3 个值的排列组合,到只存储状态。
 


PPO 算法 = DQN算法 + 演员-评论家算法 + 策略梯度算法

PPO 算法沿用了 AC 算法的整体框架。

就是调整学习率。学习率表示向前的步长。

步长太大,尽管学得快,但会导致后期无法收敛于最优解;步长太小,则会导致学得很慢,学到黄花菜都凉了。

在训练过程中,当模型的更新幅度过大时,会调整更新幅度。

但是进行了这样的调整:机器每向前更新一步,就会与更新前作比较,如果这一步“迈”得太大,就会调整这次更新的幅度。

相关文章:

深度强化学习之 PPO 算法

深度强化学习之 PPO 算法 强化学习原理学习策略 基于行为价值 & 基于行为概率策略梯度算法:计算状态下所有行为的概率演员 - 评论家算法:一半基于行为价值,一半基于行为概率DQN 算法(深度Q网络)Q-Learning&#x…...

iPhone升级iOS17出现无法连接互联网的错误提示怎么办?

最新的iOS 17系统已经发布了快一个月了,很多人都已升级体验更多全新功能,但有部分用户却在升级过程中遇到一些问题:如无法验证更新,iOS17验证失败,因为您不再连接到互联网、 iPhone无法检查更新等错误问题。明明网络稳…...

Spring:处理@Autowired和@Value注解的BeanPostProcessor

AutowiredAnnotationBeanPostProcessor,它实现了MergedBeanDefinitionPostProcessor,因此会调用postProcessMergedBeanDefinition方法。 它实现了InstantiationAwareBeanPostProcessor,因此在属性注入时会调用postProcessPropertyValues方法 如果Autowired注解按类型找到了大…...

极坐标系下的交换积分次序

极坐标系下的交换积分次序 我把极坐标系下的交换积分次序总结为动静与静动之间的转换,下面通过一个例子感受一下 ρ 1 、 ρ 1 cos ⁡ θ \rho1、\rho1\cos\theta ρ1、ρ1cosθ ∫ 0 π / 2 d θ ∫ 1 1 cos ⁡ θ f ( ρ cos ⁡ θ , ρ sin ⁡ θ ) ρ d…...

MySQL命令行中文乱码问题

MySQL命令行中文乱码问题: 命令行界面默认字符集是gbk,若字符集不匹配会中文乱码或无法插入中文。 解决办法:执行set names gbk; 验证: 执行命令show variables like ‘char%’;查看默认字符集。 创建数据库设置字符集utf8&…...

图论---图的遍历

在图论中,图的遍历一般有两种,分别为DFS(深度优先遍历)、BFS(广度优先遍历),以下是这两种遍历方式的模板: DFS(深度优先搜索) 代码框架: void …...

AM@无穷小和无穷大

文章目录 abstract本文符号说明无穷小无穷小和自变量变化过程无穷小和函数极限的关系定理👺证明 无穷大无穷大不是数极限无穷大的说法证明函数极限为无穷大 无穷大和无穷小见的关系定理无穷小无穷大的运算法则 abstract 无穷小和无穷大的概念和相关性质 本文符号说…...

玄子Share- IDEA 2023 SpringBoot 热部署

玄子Share- IDEA 2023 SpringBoot 热部署 修改 IDEA 部署设置 IDEA 勾选如下选项 新建 SpringBoot 项目 项目构建慢的将 Spring Initializr 服务器 URL 改为阿里云:https://start.aliyun.com/ 在这里直接勾选Spring Boot Devtools插件即可 测试 切出 IDEA 项目文…...

kafka集群工作机制

一、kafka在zookeeper上的元数据解释 kafka中的broker要选举Controller角色来管理整个kafka集群中的分区和副本状态。一个Topic下多个partition要选举Leader角色和客户端进行交互数据 Zookeeper客户端工具: prettyZoo。 下载地址:https://github.com/vr…...

JVM上篇之虚拟机与java虚拟机介绍

目录 虚拟机 java虚拟机 简介 特点 作用 位置 整体结构 类装载子系统 运行时数据区 java执行引擎 Java代码执行流程 jvm架构模型 基于栈式架构 基于寄存器架构 总结 jvm的生命周期 1.启动 2.执行 3.退出 JVM的发展历程 虚拟机 所谓虚拟机,指的…...

在公众号上怎么创建微信付费课程功能呢

微信付费课程功能是一项比较受欢迎的在线教育服务,可以帮助教育机构或个人更好地管理和销售课程资源,提高知识分享和变现的效率。下面将介绍如何创建微信付费课程功能。 一、了解微信付费课程功能 在创建微信付费课程功能之前,需要先了解微信…...

HTML5使用html2canvas转化为图片,然后再转为base64.

介绍 场景:今天同事提了个协助,将HTML5文件中的元素转为图片,并且最终转为base64格式传给后端。感觉还挺有意思就记录下。(试例如下) 步骤一:引入html2canvas 的js源码 html2canvas.min.js 下载地址 htt…...

【C++设计模式之原型模式:创建型】分析及示例

简介 原型模式(Prototype Pattern)是一种创建型设计模式,它允许通过复制已有对象来生成新的对象,而无需再次使用构造函数。 描述 原型模式通过复制现有对象来创建新的对象,而无需显式地调用构造函数或暴露对象的创建…...

TDengine OSS 与 qStudio 实现无缝协同,革新数据分析和管理方式

在数字化转型如火如荼的当下,海量爆发的时序数据处理成为转型成功的关键因素之一。为了帮助社区用户更好地进行数据分析和管理,丰富可视化解决方案的多样性,我们将开源的时序数据库(Time Series Database) TDengine OS…...

css的gap设置元素之间的间隔

在felx布局中可以使用gap来设置元素之间的间隔&#xff1b; .box{width: 800px;height: auto;border: 1px solid green;display: flex;flex-wrap: wrap;gap: 100px; } .inner{width: 200px;height: 200px;background-color: skyblue; } <div class"box"><…...

Flask-[项目]-搭建短网址系统:flask实现短网址系统,短网址系统,构建短网址系统

一、项目下载地址 https://gitee.com/liuhaizhang/short-url-systemhttps://gitee.com/liuhaizhang/short-url-system 二、项目搭建 2.1、基本环境安装 1、安装好mysql数据库 2、安装好redis数据 3、安装好python解释器 2.2、项目依赖安装 1、切换到python解释器环境中 …...

【从0开始配置前后端项目】——Docker环境配置

1. 准备一台纯净的服务器 镜像&#xff1a;CentOS 7.9 64位 CPU & 内存&#xff1a;2核2G 系统盘&#xff1a;60GB 峰值带宽&#xff1a;30Mbps 流量包&#xff1a;600GB / 600GB 2. 安装Docker 2.1 卸载旧的版本 $ sudo yum remove docker \docker-client \docker-cl…...

R语言 一种功能强大的数据分析、统计建模 可视化 免费、开源且跨平台 的编程语言

R语言是一种广泛应用于数据分析、统计建模和可视化的编程语言。它由新西兰奥克兰大学的罗斯伊哈卡和罗伯特杰特曼开发&#xff0c;并于1993年首次发布。R语言是一个免费、开源且跨平台的语言&#xff0c;它在统计学和数据科学领域得到了广泛的应用。 R语言具有丰富的数据处理、…...

springmvc-JSR303进行服务端校验分组验证SpringMVC定义Restfull接口异常处理流程RestController异常处理

目录& 1. JSR303 2. JSR303中含有的注解 3. spring中使用JSR303进行服务端校验 3.1 导入依赖包 3.2 添加验证规则 3.3 执行校验 4. 分组验证 4.1 定义分组验证规则 4.2 验证时通过参数指定验证规则 4.3 验证信息的显示 5. SpringMVC定义Restfull接口 5.1 增加s…...

证件照换底色详细教程

说到证件照的底色更改&#xff0c;我想对大部分朋友来说是蛮头疼的事情&#xff0c;由于我们不论是在生活还是学习中&#xff0c;有时候总会要上传一些证件照&#xff0c;而当你手上有证件照准备上传时&#xff0c;发现底色不对&#xff0c;是不是很抓狂&#xff0c;现在&#…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...