news 2026/8/4 12:16:21

用MATLAB实现安全强化学习(Safe RL)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用MATLAB实现安全强化学习(Safe RL)

MATLAB代码:安全 强化学习 关键词:safe RL 仿真平台:MATLAB 主要内容:此代码展示了如何使用 Constraint Enforcement 块来训练强化学习 (RL) 代理。 此块计算最接近受约束和动作边界的代理输出的动作的修改控制动作。 训练强化学习代理需要 Reinforcement Learning Toolbox 。 在此示例中,代理的目标是使绿球尽可能靠近红球不断变化的目标位置。 具体步骤为创建用于收集数据的环境和代理,学习约束函数,使用约束强制训练代理,在没有约束执行的情况下训练代理。

在这篇博文中,咱们来聊聊如何用MATLAB实现安全强化学习(Safe RL)。安全强化学习在如今的很多领域都非常重要,它能确保在学习过程中系统始终保持在安全范围内。

主要代码展示及分析

咱们先来看核心代码,这段代码展示了如何使用Constraint Enforcement块来训练强化学习 (RL) 代理。

% 假设这里已经加载了Reinforcement Learning Toolbox % 创建用于收集数据的环境和代理 env = rlPredefinedEnv('CartPole-Discrete'); agent = rlQAgent(env.ObservationInfo, env.ActionInfo);

在这段代码里,我们首先利用rlPredefinedEnv创建了一个预定义的环境,这里用的是'CartPole-Discrete'环境,就好比是搭建了一个舞台。然后通过rlQAgent创建了一个Q学习代理,这个代理就像是舞台上要表演的演员,它会根据环境的反馈来学习怎么做是最好的。

% 学习约束函数 constraintFunction = @(state,action) state(2) <= 0.5;

这个constraintFunction就是我们的约束函数啦。在这里它表示当状态的第二个元素小于等于0.5时,才满足约束条件。这就像是给演员(代理)设定了一些规则,不能随便乱来。

% 使用约束强制训练代理 trainOpts = rlTrainingOptions(... 'MaxEpisodes',500,... 'MaxStepsPerEpisode',100,... 'ScoreAveragingWindowLength',10); trainResults = train(agent, env, trainOpts,... 'ConstraintFunction', constraintFunction);

在这部分,我们定义了训练选项trainOpts,设定了最大episode数为500,每个episode最大步数为100,分数平均窗口长度为10。然后调用train函数来训练代理,并且传入了我们之前定义的约束函数constraintFunction。这就好比告诉演员(代理),按照这些规则和训练方式去学习,不断提升自己的“演技”。

% 在没有约束执行的情况下训练代理 trainResultsWithoutConstraint = train(agent, env, trainOpts);

最后这部分代码,我们又在没有约束的情况下训练了代理,这样可以对比有约束和无约束时代理的学习效果。就好比看看演员(代理)没了规则的束缚,会有怎样不同的表现。

应用场景说明

在此示例中,代理的目标是使绿球尽可能靠近红球不断变化的目标位置。通过这些步骤,我们就能很好地控制代理的行为,在满足安全约束(这里的约束函数)的前提下,让绿球完成靠近红球的任务。

MATLAB代码:安全 强化学习 关键词:safe RL 仿真平台:MATLAB 主要内容:此代码展示了如何使用 Constraint Enforcement 块来训练强化学习 (RL) 代理。 此块计算最接近受约束和动作边界的代理输出的动作的修改控制动作。 训练强化学习代理需要 Reinforcement Learning Toolbox 。 在此示例中,代理的目标是使绿球尽可能靠近红球不断变化的目标位置。 具体步骤为创建用于收集数据的环境和代理,学习约束函数,使用约束强制训练代理,在没有约束执行的情况下训练代理。

整个过程里,那个Constraint Enforcement块起到了关键作用,它计算最接近受约束和动作边界的代理输出的动作的修改控制动作,就像一个裁判,时刻看着代理的动作,确保不违规。而训练强化学习代理当然是需要Reinforcement Learning Toolbox 啦,这就像是一个必备的工具包,没它可玩不转。

希望通过这篇博文,大家对用MATLAB实现安全强化学习有更清晰的认识。可以自己动手试试,调整调整参数,看看代理的表现会有什么不同哦。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/29 6:15:39

无人机飞行姿态稳不稳?关键看这个MEMS IMU

惯性测量单元&#xff08;IMU&#xff09;是无人机飞控系统的核心感知部件&#xff0c;也是无人机实现稳定飞行、姿态控制与自主导航的基础硬件。无人机依靠 IMU 实时感知自身的运动与姿态状态&#xff0c;再由飞控算法快速输出控制指令&#xff0c;驱动电机与旋翼调整姿态&…

作者头像 李华
网站建设 2026/7/28 5:49:02

机器学习 —— 关联规则

摘要&#xff1a;关联规则挖掘是机器学习中用于发现数据集中项目间关联关系的技术&#xff0c;主要应用于购物篮分析等领域。该方法通过支持度和置信度指标衡量规则强度&#xff0c;其中支持度反映规则普遍性&#xff0c;置信度表示规则可靠性。使用Python的mlxtend库可实现关联…

作者头像 李华
网站建设 2026/7/26 6:38:59

计算机Java毕设实战-基于Java web的酒店管理系统设计与实现在线查询空闲客房、提交预订申请、支付押金【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/7/26 17:37:46

超声波测距设计研究

超声波测距设计研究 一、研究背景与意义 超声波测距凭借非接触式测量、抗干扰能力强、成本低廉等优势&#xff0c;广泛应用于工业液位检测、智能机器人避障、车辆倒车雷达、安防距离监测等领域。传统超声波测距系统存在测量精度低、测距范围窄、受环境因素影响大等问题&#xf…

作者头像 李华
网站建设 2026/7/26 19:18:43

跨境电商必看:Etsy保号防封全攻略(2026)

Etsy作为全球领先的手工艺品和创意商品销售平台&#xff0c;吸引了成千上万的卖家。但当你刚准备大干一场&#xff0c;Etsy新店24小时就封了&#xff1f;上架第一个产品&#xff0c;店直接没了&#xff1f;本文将带你了解常见的封号原因&#xff0c;并提供实操干货&#xff0c;…

作者头像 李华
网站建设 2026/7/28 13:42:29

自动禁用触控板工具支持winxp/win7/win8.1/win10

平时应该有朋友遇到过手不小心碰到触控板非常影响打字的体验&#xff0c;根本用上不&#xff0c;都是用鼠标&#xff0c;这个触控板就很鸡肋&#xff0c;如果要禁用&#xff0c;可以考虑使用这个工具。能禁用大部分的触控板&#xff0c;需要的保存试试。 下载地下载地址&#x…

作者头像 李华