当前位置: 首页 > 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;现在&#…...

【ringbuff share mem】

ringbuff 和share mem 结合实现PV操作 参考链接 https://juejin.cn/post/7113550346835722276 https://zhuanlan.zhihu.com/p/147826545 代码如下&#xff1a; #include "rb.h"int g_shmid 0;shm_buff * create_shm(int *smid) {int id;shm_buff *share_mem NU…...

【Zookeeper专题】Zookeeper经典应用场景实战(一)

目录 前置知识课程内容一、Zookeeper Java客户端实战1.1 Zookeeper 原生Java客户端使用1.2 Curator开源客户端使用快速开始使用示例 二、Zookeeper在分布式命名服务中的实战2.1 分布式API目录2.2 分布式节点的命名2.3 分布式的ID生成器 三、zookeeper实现分布式队列3.1 设计思路…...

【数据库——MySQL】(15)存储过程、存储函数和事务处理习题及讲解

目录 1. 题目1.1 存储过程1.2 存储函数1.3 事务处理 2. 解答2.1 存储过程2.2 存储函数2.3 事务处理 1. 题目 1.1 存储过程 创建表 RandNumber &#xff1a;字段&#xff1a;id 自增长&#xff0c; data int&#xff1b; 创建存储过程向表中插入指定个数的随机数&#xff08;1-…...

FFmpeg:打印音/视频信息(Meta信息)

多媒体文件基本概念 多媒体文件其实是个容器在容器里面有很多流(Stream/Track)每种流是由不同的编码器编码的从流中读出的数据称为包在一个包中包含着一个或多个帧 几个重要的结构体 AVFormatContextAVStreamAVPacket FFmpeg操作流数据的基本步骤 打印音/视频信息(Meta信息…...

1.Linux入门基本指令

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 01.ls指令 02.pwd指令 03.cd指令 04.touch指令 05.mkdir指令(重要) 06.rmdir&&rm指令(重要) 07.man指令(重要) 08.cp指令(重要) 09.mv指令(重要) 10.cat指令 nano指令 echo指令 输出重定向 追加重…...

2023腾讯云服务器优惠代金券领取、查询及使用说明

腾讯云代金券领取渠道有哪些&#xff1f;腾讯云官网可以领取、官方媒体账号可以领取代金券、完成任务可以领取代金券&#xff0c;大家也可以在腾讯云百科蹲守代金券&#xff0c;因为腾讯云代金券领取渠道比较分散&#xff0c;腾讯云百科txybk.com专注汇总优惠代金券领取页面&am…...

大华智慧园区管理平台任意密码读取漏洞 复现

文章目录 大华智慧园区管理平台任意密码读取漏洞 复现0x01 前言0x02 漏洞描述0x03 影响平台0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 大华智慧园区管理平台任意密码读取漏洞 复现 0x01 前言 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&…...

【C++ 学习 ㉖】- 位图详解(哈希扩展)

目录 一、位图的概念 二、位图的实现 2.1 - bitset.h 2.2 - test.cpp 三、位图的应用 3.1 - 例题一 3.2 - 例题二 一、位图的概念 假设有这样一个需求&#xff1a;在 100 亿个整型数字中快速查询某个数是否存在其中&#xff0c;并假设是 32 位操作系统&#xff0c;4 GB…...

天启科技联创郭志强:趟遍教育行业信数化沟坎,创业智能赛道重塑行业生态

郭志强 天启科技联合创始人 近20年互联网、企业信息化、数字化实施、管理及培训经验。对于集团型企业及初创企业、传统企业及互联网企业的信息化、数字化转型有自己独到的见解和实操经验。具备跨区域、集团化信息规划、解决方案、系统架构及企业流程搭建、优化和技术团队管理能…...

Cuckoo沙箱各Ubuntu版本安装及使用

1.沙箱简介 1.1 沙箱 沙箱是一个虚拟系统程序&#xff0c;允许你在沙箱环境中运行浏览器或其他程序&#xff0c;因此运行所产生的变化可以随后删除。它创造了一个类似沙盒的独立作业环境&#xff0c;在其内部运行的程序并不能对硬盘产生永久性的影响。 在网络安全中&#xff…...

最好看的免费网站源码/网站排名软件

2019独角兽企业重金招聘Python工程师标准>>> 本文前戏较多&#xff0c;务实的同学可以直接跳到文末的结论。 由「钢的琴」网友脑洞大开延伸出了吉的他二的胡琵的琶&#xff0c;以及后来许嵩的「苏格拉没有底」&#xff0c;是否可以再拓展一下&#xff0c;得到哥本不…...

怎么给网站在百度地图上做爬虫/国产系统2345

本文实例为大家分享了Java遍历文件夹下所有文件并重命名的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下项目中需要将一批文件全部重新命名&#xff0c;文件实在太多就写了这个工具类这个工具类是将路径下的文件全部重新命名&#xff0c;且名字为同一个package com.…...

济南建设主管部门网站/宁波网站快速优化

近日&#xff0c;IBM宣布筹建中的认知计算系统研究中心&#xff08;C3SR&#xff09;将安家于美国伊利诺伊大学厄巴纳分校的工程学院。 C3SR计划在今年夏季正式启动&#xff0c;将构建以IBM Watson技术为基础的综合认知计算系统&#xff0c;对包括视频、讲稿、作业和教材等大量…...

wordpress option/东莞seo网站排名优化

项目简述&#xff1a;基于开源Hadoop2.0架构的集群网络&#xff0c;进行海量数据的分布式计算。由于Hadoop集群规模不断扩大&#xff0c;而搭建一个同等规模的测试集群需要一笔昂贵的开销。目前有100台左右物料&#xff0c;期望预测计算节点1500的集群网络性能&#xff0c;目前…...

做策划的人经常浏览的网站/seo关键词首页排名代发

小白机器学习基础算法学习必经之路作者简介&#xff1a;武博士&#xff0c;人工智能方向博士&#xff0c;中国移动集团IT架构师。 科研方向&#xff1a;自然语言处理、计算机视觉、强化学习。 已经发表SCI文章3篇。 CSDN专栏文章60篇。&#xff08;机器学习专栏、深度学习专栏、…...

广安市邻水建设局网站/谷歌应用商店下载

board目录中&#xff0c;主要的代码结构分为了src,include两个子目录。分别存放源代码文件。 [objc] view plaincopy#CCarm-linux-gcc CCgcc CFLAGS-lpthread INCPATH-I ../../include OBJ log.o init.o serial.o thread.o socket.o socket_dev.o systeminfo.o main.o …...