强化学习概览
强化学习的目标
智能体(Agent)通过与环境(Environment)交互,学习最大化累积奖励(Cumulative Reward)的策略。
数学抽象 马尔科夫决策过程(MDP)
收益
由于马尔科夫决策过程是一个序列决策过程,每一时刻的动作不仅会影响当前状态,还会对后续的环境状态产生影响。也就是说,当前时刻能够获得较多奖励的动作从长远来看也许并不是最佳的,而短期来看不太好的动作却也许能在未来带给智能体更多的奖励。因此智能体在决策时不能单单考虑这一时刻的奖励,而应该考虑到动作对未来的长期影响。为此,我们需要在奖励的基础上定义另一个评价指标来度量智能体所能获得的长远利益。在强化学习中,这一评价指标被称为收益
折扣因子
我们需要对未来每一时刻的奖励乘上一个折扣因子,并且越往后,衰减越大。为什么要这样做呢?直觉上来看,时间上越远,存在的不确定越多,对当前时刻的贡献也就越小,因此需要用一个折扣因子来描述不同时刻奖励对当前时刻的贡献程度。
价值
价值实际上也就对应着强化学习中经常提到的Q值。
最终智能体的目标就是学习到一个最优策略,使得智能体在任意状态下的价值最优,定义最佳策略下的动作价值函数为最优价值函数,也就是最优Q值。很显然,当我们已知了最优Q值时,每一状态下对应Q值最大的动作就是最佳动作。
因此,我们可以得出这样一个结论:求解最优策略也就等价于求解最优Q值。
强化学习算法分类
基于价值估计的算法
基于价值估计的算法是对最优Q值进行估计
基于策略优化的强化学习算法
直接对最优策略进行估计
随机性策略:对状态到最优动作概率分布之间的映射进行估计,然后从该概率分布中进行采样得到输出动作。
确定性策略:直接对状态到最优动作之间的映射进行估计。定义一个策略的性能函数作为优化目标,在强化学习中,这个性能函数通常被定义为一定策略下的平均收益。然后我们只需要依据优化目标对策略函数进行梯度上升,最终就可以得到最优策略。策略优化算法的特点是,神经网络的输出即为最优动作,因此这里的动作空间既可以是离散的也可以是连续的。在优化过程中,这里的性能函数通常通过一定的估计方法得到。
策略梯度算法
TRPO(trust region policy optimization, 信任域策略优化))
PPO(proximal policy optimization,邻近策略优化)
算法的训练在 与环境交互采样数据 以及 利用随机梯度上升优化一个替代(surrogate)目标函数 之间交替进行。相较于标准梯度策略算法每次数据采样只能进行一次梯度更新,TRPO与PPO 所使用的目标函数能够利用同一批次数据进行多次梯度更新。PPO 比 TRPO(trust region policy optimization, 信任域策略优化)更为简单。
基于演员-评论家的强化学习算法
结合了价值估计方法与策略优化方法的特点,同时对最优Q值以及最优策略进行学习,最终策略网络的输出即为最优动作。
Actor网络就像是一个执行者,用来输出动作,而Critic网络则对Actor输出的动作进行评价,然后Actor再根据Critic的评价不断地修正自己的策略,Critic则通过贝尔曼方程对自身网络进行迭代更新,最终我们就可以得到一个较好的Actor网络作为智能体最终的策略。
多智能体
首先,之前我们提到马尔科夫决策过程最重要的特征就是环境下一时刻的状态只取决于当前时刻的状态和动作,也就是说环境的状态转移概率是一个确定的值,它保证了环境的平稳变化,使得智能体能够学习出环境的变化规律,从而推理出状态的变化过程。而在多智能体系统中,每个智能体所对应的环境包含了其他智能体的策略,此时智能体状态的改变不再只取决于自身的动作和状态,还会取决于其他智能体的策略,而这些策略在智能体学习的过程中会不断地发生变化,这也就导致了每个智能体的状态转移概率随着时间发生变化,使得环境非平稳变化,马尔科夫特性不再满足,给智能体策略的学习带来了困难。
而在更加实际的情况中,每个智能体只能观测到部分环境状态信息,进一步恶化智能体的学习性能。
一种最直接的解决环境非平稳性和局部可观性的方法就是对所有的智能体采取集中式学习的方法,将它们当做是一个智能体,直接学习所有智能体状态到所有智能体动作之间的映射,但是一方面这种方法需要一个集中式控制中心与智能体之间进行大量的信息交互,另一方面神经网络的输入输出维度会随智能体数目指数增大,难以收敛。
参考
https://zhuanlan.zhihu.com/p/439629465
https://www.zhihu.com/column/c_1440728531004870656
https://zhuanlan.zhihu.com/p/546276372
https://zhuanlan.zhihu.com/p/440451849
相关文章:
强化学习概览
强化学习的目标 智能体(Agent)通过与环境(Environment)交互,学习最大化累积奖励(Cumulative Reward)的策略。 数学抽象 马尔科夫决策过程(MDP) 收益 由于马尔科夫决…...
如何在netlify一键部署静态网站
1. 准备你的项目 确保你的静态网站文件(如 HTML、CSS、JavaScript、图片等)都在一个文件夹中。通常,项目结构如下: my-static-site/ ├── index.html ├── styles/ │ └── styles.css └── scripts/└── script.js…...
2024中国信通院“集智”蓝皮书合集(附下载)
【目 录】 1. 数字政府一体化建设蓝皮书(2024年) 2. 数字乡村发展实践蓝皮书(2023年) 3. 中国工业互联网发展成效评估报告(2024年) 4. 云计算蓝皮书(2024年) 5. 具身智能发展报告…...
springboot单机支持1w并发,需要做哪些优化
Spring Boot单机如何支持1万并发,需要做哪些优化。 首先,我得回想一下Spring Boot处理高并发的关键点在哪里。可能涉及到多个层面,比如Web服务器配置、数据库优化、代码层面的调整,还有JVM调优之类的。 首先,用户可能…...
HBuilderx 插件开发变量名称翻译 ,中文转(小驼峰,大驼峰,下划线,常量,CSS类名)
HBuilderx 插件开发变量名称翻译 ,中文转(小驼峰,大驼峰,下划线,常量,CSS类名) 插件开发文档 工具HBuilderx ,创建项目 创建成功后目录 插件需求 开发时 用来将中文转为࿰…...
岳阳市美术馆预约平台(小程序论文源码调试讲解)
第4章 系统设计 一个成功设计的系统在内容上必定是丰富的,在系统外观或系统功能上必定是对用户友好的。所以为了提升系统的价值,吸引更多的访问者访问系统,以及让来访用户可以花费更多时间停留在系统上,则表明该系统设计得比较专…...
C++ | 高级教程 | 文件和流
👻 概念 文件流输出使用标准库 fstream,定义三个新的数据类型: 数据类型描述ofstream输出文件流,用于创建文件并向文件写入信息。ifstream输入文件流,用于从文件读取信息。fstream文件流,且同时具有 ofst…...
Starlink卫星动力学系统仿真建模第九讲-滑模(SMC)控制算法原理简介及卫星控制应用
滑模控制(Sliding Mode Control)算法详解 一、基本原理 滑模控制(Sliding Mode Control, SMC)是一种变结构控制方法,通过设计一个滑模面(Sliding Surface),迫使系统状态在有限时间内…...
JVM相关面试题
1. 类加载与双亲委派机制 聊一下你对类加载器的理解。 类加载器是JVM用来加载类文件到内存的组件。它负责将字节码文件解析为java.lang.Class实例,并存储到运行时数据区的方法区中。类加载器分为Bootstrap ClassLoader、Extension ClassLoader和Application ClassLo…...
WiFi定位:宠物安全的“秘密武器”
从「全网寻狗」到「实时掌控」的进化史 凌晨三点收到邻居转发的「寻狗启事」,配图里的金毛犬项圈上赫然挂着某品牌定位器 —— 这样的魔幻场景在养宠圈并不罕见。随着宠物经济突破 3000 亿规模,智能定位器早已从「小众玩具」变成「刚需装备」。但你知道…...
【git】【reset全解】Git 回到上次提交并处理提交内容的不同方式
Git 回到上次提交并处理提交内容的不同方式 在 Git 中,若要回到上次提交并对提交内容进行不同处理,可使用 git reset 命令搭配不同选项来实现。以下为你详细介绍操作步骤及各选项的作用。 1. 查看提交历史 在操作之前,可通过以下命令查看提…...
【leetcode hot 100 11】移动零
一、暴力解法:两个 for 循环,外层循环遍历所有可能的左边界,内层循环遍历所有可能的右边界 class Solution {public int maxArea(int[] height) {int max_area0;for(int i0; i<height.length; i){for(int ji1; j<height.length; j){in…...
DeepSeek 部署实战:Ollama + 多客户端 + RAG
DeepSeek 部署实战:Ollama 多客户端 RAG 一、前置条件 (一)硬件要求 GPU:强烈建议使用 NVIDIA RTX 3090 或更高型号,显存至少 24GB。小显存跑大模型会遇到诸多问题,本人亲测 2080Ti 跑模型体验不佳。内…...
Linux通过设备名称如何定位故障硬盘
因为ceph集群的服务器硬盘都是直通的,当我们发现有硬盘存储坏道需要更换硬盘,但是因为盘序可能不是连续的,无法定位服务器上那块硬盘是故障的,如果冒然测试可能把正常的硬盘拔出,得不偿失,所以就写一下我定…...
大模型基础概念之神经网络宽度
在大模型中,神经网络宽度是提升模型容量的核心手段之一,与深度、数据规模共同构成性能的三大支柱。合理增加宽度可显著增强模型表达能力,但需结合正则化、硬件优化和结构设计进行平衡。未来趋势可能包括动态宽度调整、稀疏化宽度设计(如MoE)以及更高效宽度-深度复合缩放策…...
数据开发的简历及面试
简历 个人信息: 邮箱别写QQ邮箱, 写126邮箱/189邮箱等 学历>>本科及以上写,大专及以下不写 专业>>非计算机专业不写 政治面貌>>党员写, 群众不用写 掌握的技能: 精通 > 熟悉 > 了解 专业工具: 大数据相关的 公司: 如果没有可以写的>>金融服…...
数据存储:一文掌握存储数据到ElasticSearch详解
文章目录 一、Elasticsearch简介二、Python与Elasticsearch交互2.1 安装必要的库2.2 连接到Elasticsearch服务器 三、数据准备四、创建索引(可选)五、存储数据5.1 单个文档索引5.2 批量索引 六、查询数据七、更新和删除数据7.1 更新文档7.2 删除文档 八、…...
Pytorch使用手册--将 PyTorch 模型导出为 ONNX(专题二十六)
注意 截至 PyTorch 2.1,ONNX 导出器有两个版本。 torch.onnx.dynamo_export 是最新的(仍处于测试阶段)导出器,基于 PyTorch 2.0 发布的 TorchDynamo 技术。 torch.onnx.export 基于 TorchScript 后端,自 PyTorch 1.2.0 起可用。 一、torch.onnx.dynamo_export使用 在 60 …...
Vue2+Element实现Excel文件上传下载预览
目录 一、需求背景 二、落地实现 1.文件上传 图片示例 HTML代码 业务代码 2.文件下载 图片示例 方式一:代码 方式二:代码 3.文件预览 图片示例 方式一:代码 方式二:代码 一、需求背景 在一个愉快的年后ÿ…...
物联网平台建设方案一
系统概述 构建物联网全域支撑服务能力,为实现学院涵盖物联网设备的全面感知、全域互联、全程智控、全域数字基底、全过程统筹管理奠定基础,为打造智能化提供坚实后台基石。 物联网平台向下接入各种传感器、终端和网关,向上通过开放的实施分…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...
