强化学习概览
强化学习的目标
智能体(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.文件预览 图片示例 方式一:代码 方式二:代码 一、需求背景 在一个愉快的年后ÿ…...

物联网平台建设方案一
系统概述 构建物联网全域支撑服务能力,为实现学院涵盖物联网设备的全面感知、全域互联、全程智控、全域数字基底、全过程统筹管理奠定基础,为打造智能化提供坚实后台基石。 物联网平台向下接入各种传感器、终端和网关,向上通过开放的实施分…...

大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...

如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...

Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...

Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...

java高级——高阶函数、如何定义一个函数式接口类似stream流的filter
java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用(Math::max) 2 函数接口…...

【若依】框架项目部署笔记
参考【SpringBoot】【Vue】项目部署_no main manifest attribute, in springboot-0.0.1-sn-CSDN博客 多一个redis安装 准备工作: 压缩包下载:http://download.redis.io/releases 1. 上传压缩包,并进入压缩包所在目录,解压到目标…...