主要内容

runEpisode

模拟强化学习环境与政策或代理

自从R2022a

    描述

    输出= runEpisode (env,政策)运行一个仿真环境env反对这个政策政策

    输出= runEpisode (env,代理)运行一个仿真环境env对受托人代理。在仿真过程中,代理的政策评估生产行为但可学的参数不更新。

    例子

    输出= runEpisode (___,名称=值)指定默认的模拟选项使用一个或多个名称参数。

    例子

    全部折叠

    创建一个强化学习环境并提取其观察和操作规范。

    env = rlPredefinedEnv (“CartPole-Discrete”);obsInfo = getObservationInfo (env);actInfo = getActionInfo (env);

    近似核反应能量函数在评论家,使用神经网络。创建一个网络层对象数组。

    网= [featureInputLayer (obsInfo.Dimension (1) fullyConnectedLayer (24) reluLayer fullyConnectedLayer (24) reluLayer fullyConnectedLayer (2) softmaxLayer];

    网络转换为一个dlnetwork对象和显示可学的参数的数量(重量)。

    网= dlnetwork(净);总结(净)
    初始化:可学的真正的数字:770输入:1“输入”4特性

    创建一个离散分类演员使用网络。

    演员= rlDiscreteCategoricalActor(网,obsInfo, actInfo);

    检查你的演员与一个随机观测。

    行动= getAction(演员,{兰德(obsInfo.Dimension)})
    行动=1 x1单元阵列{[-10]}

    创建一个政策对象的演员。

    政策= rlStochasticActorPolicy(演员);

    创建一个缓冲区的经验。

    缓冲= rlReplayMemory (obsInfo actInfo);

    设置运行多个模拟环境。对于这个示例,配置培训记录任何错误,而不向他们发送到命令窗口。

    设置(env, StopOnError =“关闭”)

    使用环境和政策模拟多个事件。每一集后,附加缓冲的经历。在这个例子中,运行100集。

    我= 1:10 0输出= runEpisode (env、政策MaxSteps = 300);追加(缓冲区,output.AgentData.Experiences)结束

    清理环境。

    清理(env)

    样本的mini-batch经历从缓冲。对于这个示例,样品10经验。

    批=样本(缓冲区,10);

    然后您可以从采样经验和更新政策和演员。

    输入参数

    全部折叠

    强化学习环境,指定为以下对象之一。

    政策对象,指定为以下对象之一。

    • rlDeterministicActorPolicy

    • rlAdditiveNoisePolicy

    • rlEpsilonGreedyPolicy

    • rlMaxQPolicy

    • rlStochasticActorPolicy

    如果env多智能体训金宝app练,是一个仿真软件环境配置为指定吗政策作为一个政策对象数组。政策的顺序必须与代理命令用于创建数组env

    在一个政策对象的更多信息,在MATLAB®命令行中,键入帮助其次是政策对象名称。

    强化学习代理、指定为以下对象之一。

    如果env多智能体训金宝app练,是一个仿真软件环境配置为指定吗代理作为一个代理对象数组。数组中代理的顺序必须与代理命令用于创建env

    名称-值参数

    指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

    例子:MaxSteps = 1000

    最大限度的模拟步骤,指定为一个正整数。

    函数处理经验和更新政策或代理基于每个经验发生在仿真,指定为一个函数处理以下签名。

    [updatedPolicy, updatedData] = myFcn(经验、episodeInfo政策,数据)

    在这里:

    • 经验是一个结构,包含一个经验。结构领域的更多信息,请参阅output.Experiences

    • episodeInfo包含有关当前数据集和对应output.EpisodeInfo

    • 政策政策或代理对象被模拟。

    • 数据包含经验处理数据。有关更多信息,请参见ProcessExperienceData

    • updatedPolicy是更新后的政策或代理。

    • updatedData是更新后的数据处理经验,作为吗数据输入在处理下一个经验。

    如果env多智能体训金宝app练,是一个仿真软件环境配置为指定吗ProcessExperienceFcn作为一个处理单元阵列的功能。数组中的函数处理的顺序必须与代理命令用于创建env

    经验处理数据,指定为任何MATLAB数据,比如数组或结构。使用这些数据通过额外的参数或信息处理函数的经验。

    还可以更新这个数据内的经验处理函数时使用不同的参数处理下一个经验。指定当你调用的数据值runEpisode使用过程中的第一个经验模拟。

    如果env多智能体训金宝app练,是一个仿真软件环境配置为指定吗ProcessExperienceData作为一个单元阵列。数组元素的顺序必须与代理命令用于创建env

    选择清理环境仿真后,指定为真正的。当CleanupPostSim真正的,runEpisode调用清理(env)当模拟结束。

    运行多个集没有清理环境,集CleanupPostSim。你可以叫清理(env)在运行模拟。

    如果env是一个金宝appSimulinkEnvWithAgent对象和相关的仿真软件模型配置为使用快速启动,那么模型金宝app模拟之间仍然处于编辑状态CleanUpPostSim

    选择日志为每个政策或代理经验,指定为真正的。当LogExperiences真正的政策或代理的经验,登录output.Experiences

    输出参数

    全部折叠

    模拟输出,作为结构返回的字段AgentDataSimulationInfo

    AgentData字段是一个结构数组中包含的数据为每个代理或政策。每一个AgentData结构有以下字段。

    描述
    经历

    记录的政策或代理的经验,作为一个结构数组返回。每个经验包含以下字段。

    • 观察——观察

    • 行动——采取行动

    • NextObservation——下观察结果

    • 奖励——相应的奖励

    • 结束- - - - - -终止信号

    时间 模拟的经验,作为一个向量返回。
    EpisodeInfo

    集信息,作为结构与以下字段返回。

    • CumulativeReward——总奖励经验

    • StepsTaken——数量的模拟步骤

    • InitialObservation——最初的观察开始时的模拟

    ProcessExperienceData 经验处理数据
    代理 政策或代理用于仿真

    SimulationInfo字段是下列之一:

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

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

    如果env配置上运行模拟并行工人呢输出是一个未来对象,它支持延迟输出环境模拟金宝app运行工人。

    提示

    • 你可以加快集使用并行计算模拟。为此,使用设置功能和设置UseParallel参数真正的

      设置(env UseParallel = true)

    版本历史

    介绍了R2022a