核心内容摘要
Z-Image-Base二次开发指南:插件扩展与工作流定制教程
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)
5;这个constraintFunction就是我们的约束函数啦。
在这里它表示当状态的第二个元素小于等于
5时才满足约束条件。
这就像是给演员代理设定了一些规则不能随便乱来。
% 使用约束强制训练代理 trainOpts rlTrainingOptions(... MaxEpisodes,500,... MaxStepsPerEpisode,100,... ScoreAveragingWindowLength,
; 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实现安全强化学习有更清晰的认识。
可以自己动手试试调整调整参数看看代理的表现会有什么不同哦。