主要内容

sim卡

模拟训练强化学习代理在指定的环境中

自从R2019a

描述

例子

经验= sim卡(env,代理)模拟一个或多个强化学习代理在一个环境中,模拟使用默认选项。

经验= sim卡(代理,env)执行相同的仿真之前的语法。

env= sim卡(___,simOpts)使用模拟对象的选择simOpts。使用模拟选项来指定参数如每个仿真的步骤数量或数量的模拟运行。使用这个语法的任何输入参数后以前的语法。

例子

全部折叠

模拟强化学习环境的代理配置为环境。对于这个示例,加载一个环境和代理已经配置。环境是一个离散cart-pole环境创建rlPredefinedEnv。代理是一个策略梯度(rlPGAgent)代理。更多信息在本例中,使用的环境和代理火车PG代理Cart-Pole平衡系统

rng (0)%的再现性负载RLSimExample.matenv
env = CartPoleDiscreteAction属性:重力:9.8000 MassCart: 1 MassPole: 0.1000长度:0.5000 MaxForce: 10 Ts: 0.0200 ThetaThresholdRadians: 0.2094 XThreshold: 2.4000 RewardForNotFalling: 1 PenaltyForFalling: 5状态:[4 x1双)
代理
代理= rlPGAgent属性:AgentOptions: [1 x1 rl.option。rlPGAgentOptions] UseExplorationPolicy: 1 ObservationInfo: [1x1 rl.util.rlNumericSpec] ActionInfo: [1x1 rl.util.rlFiniteSetSpec] SampleTime: 0.1000

通常,您培训代理使用火车和模拟环境测试培训代理的性能。对于这个示例,使用代理你加载的模拟环境。配置模拟选项,指定的模拟运行100步。

simOpts = rlSimulationOptions (MaxSteps = 100);

在本例中为预定义的cart-pole环境使用。您可以使用情节生成一个cart-pole系统的可视化。当你模拟环境,这个情节自动更新,这样您就可以看系统仿真中发展。

情节(env)

图车杆可视化工具包含一个坐标轴对象。坐标轴对象包含6行类型的对象,多边形。

模拟环境。

经验= sim (env,代理simOpts)

图车杆可视化工具包含一个坐标轴对象。坐标轴对象包含6行类型的对象,多边形。

经验=结构体字段:观察:[1 x1 struct]行动:[1 x1 struct]奖赏:[1 x1 timeseries]结束:[1 x1 timeseries] SimulationInfo: [1 x1 struct]

输出结构经验记录从环境中收集的观察、操作和奖励,在模拟和其他数据收集。每个字段包含一个timeseries物体或结构timeseries数据对象。例如,experience.Action是一个timeseries包含行动对cart-pole系统代理每一步的模拟。

experience.Action
ans =结构体字段:CartPoleAction (1 x1 timeseries):

模拟一个环境为模型创建®模型中使用的例子金宝app训练多个代理执行协作任务在这个例子中,使用代理培训。

加载代理的MATLAB®工作区。

负载rlCollaborativeTaskAgents

创建一个环境rlCollaborativeTask金宝app仿真软件®模型,它有两个代理模块。自两块(使用的代理agentAagentB)已经在工作区中,您不需要通过观察和操作规范来创建环境。

env = rl金宝appSimulinkEnv (“rlCollaborativeTask”,(“rlCollaborativeTask /代理”,“B rlCollaborativeTask /代理”]);

加载所需的参数rlCollaborativeTask金宝app仿真软件®运行模型。

rlCollaborativeTaskParams

模拟代理对环境、节约的经验xpr

xpr = sim (env, [agentA agentB]);

阴谋行动的代理。

次要情节(2,1,1);情节(xpr (1) .Action.forces)次要情节(2,1,2);情节(xpr (2) .Action.forces)

图包含2轴对象。坐标轴对象与时间序列图标题1:力量,包含时间(秒),ylabel部队包含2楼梯类型的对象。坐标轴对象与时间序列图标题2:力量,包含时间(秒),ylabel部队包含2楼梯类型的对象。

输入参数

全部折叠

环境代理行为,指定为以下类型之一,强化学习环境对象:

  • 一个预定义的MATLAB®或仿真金宝app软件®所创造的环境中使用rlPredefinedEnv。这种环境不支持同时多个代理培训。金宝app

  • 一个定制的MATLAB环境下创建等功能rlFunctionEnvrlCreateEnvTemplate。这种环境不支持同时多个代理培训。金宝app

  • 自定义创建使用仿真金宝app软件环境rl金宝appSimulinkEnv。这种环境下多个代理同时支持培训。金宝app

有关创建和配置环境的更多信息,请参见:

env是一个仿真金宝app软件环境,调用sim卡编译和模拟模型与环境有关。

指定的代理来模拟,为强化学习代理对象,如rlACAgentrlDDPGAgent,或者是一个这样的对象数组。

如果env是一个多代理环境创建rl金宝appSimulinkEnv作为数组,指定代理。数组中代理的顺序必须与代理命令用于创建env。多代理仿真不支持MATLAB环境。金宝app

为更多的信息关于如何创建和配置代理强化学习,明白了强化学习代理

模拟选项,指定为一个rlSimulationOptions对象。使用这个参数指定选项,例如:

  • 每个仿真的步骤数

  • 模拟运行

有关详细信息,请参见rlSimulationOptions

输出参数

全部折叠

仿真结果,返回一个结构数组或结构。数组中的行数等于指定的模拟的数量NumSimulations选择rlSimulationOptions。数组的列数是代理的数量。每个领域的经验结构如下。

观察收集的环境中,作为结构字段返回对应于观测中指定的环境。每个字段包含一个timeseries的长度N+ 1,N仿真步骤的数目。

获取当前的观测和下一个观察对于一个给定的模拟步骤,使用以下代码,假定的一个领域观察obs1

奥林匹克广播服务公司= getSamples (experience.Observation.obs1, 1: N);NextObs = getSamples (experience.Observation.obs1, 2: N + 1);
这些值可以是有用的,如果你在写你自己的训练算法sim卡生成培训经验。

行动计算代理,作为结构返回字段中指定的行动信号对应的环境。每个字段包含一个timeseries的长度N,在那里N仿真步骤的数目。

奖励在仿真的每一步,作为一个返回timeseries的长度N,在那里N仿真步骤的数目。

国旗表明终止事件,作为一个返回timeseries一个标量逻辑信号。这个标志被设置在每一步的环境,根据事件终止条件指定配置环境。环境这个标志设置为1时,仿真终止。

模拟过程中收集的信息,返回以下之一:

  • 对于MATLAB环境,包含字段的结构SimulationError。这个结构包含模拟期间发生的任何错误。

  • 对于仿真金宝app软件环境,金宝appSimulink.SimulationOutput对象包含仿真数据。记录数据包括任何信号和状态日志配置的模型,模拟的元数据,以及可能出现的任何错误。

版本历史

介绍了R2019a