主要内容

RL代理

强化学习剂

  • 库:
  • 强化学习工具箱

  • RL代理块

描述

使用RL代理块在Simulink中模拟和训练一个强化学习代理金宝app®.将块与存储在MATLAB中的代理关联起来®工作区或数据字典,例如rlACAgentrlDDPGAgent对象。你连接块,以便它接收观察和计算奖励。例如,考虑下面的rlSimplePendulumModel模型。

观察接口输入端口RL代理Block接收到的信号是由瞬时角度和角速度的摆。的奖励端口收到由相同的两个值和应用的操作计算的奖励。您可以配置适合您的系统的观察和奖励计算。

该块使用代理根据您提供的观察和奖励生成操作。连接行动输出端口到您的系统的适当输入。例如,在rlSimplePendulumModel,行动输出端口是施加到摆系统上的扭矩。有关此模型的详细信息,请参见训练DQN代理人摆动和平衡摆

要在Simulink中训练强化学习代理,您需要从Simulink模型生成一个环境。金宝app然后创建并配置代理,以便针对该环境进行培训。有关更多信息,请参见创建Simul金宝appink强化学习环境.当你打电话时火车利用环境,火车模拟模型并更新与块关联的代理。

港口

输入

全部展开

该端口接收来自环境的观测信号。观测信号表示测量或其他瞬时系统数据。如果你有多个观测值,你可以用Mux块将它们组合成一个矢量信号。若要使用非虚拟总线信号,请使用bus2RLSpec

该端口接收奖励信号,您可以根据观察数据计算奖励信号。奖励信号用于智能体训练过程中,以最大化对长期奖励的期望。

使用此信号指定在何种条件下终止训练集。您必须配置适合您的系统的逻辑,以确定事件终止的条件。其中一种应用是终止一个明显进展顺利或不顺利的剧集。例如,如果代理达到了它的目标,或者无法挽回地偏离了它的目标,您就可以终止一个情节。

使用此信号为块提供一个外部动作。该信号可以是来自人类专家的控制动作,可用于安全或模仿学习应用。时的值利用外部行动信号是1,通过对外行动信号通过信号传递给环境行动块的输出。该块还使用外部操作来根据结果观察和奖励更新代理策略。

依赖关系

要启用此端口,请选择外部动作输入参数。

控件输出的操作可能与应用于环境的操作不同RL代理块。例如,Simulink模型可以在动金宝app作输出信号上包含一个饱和块。

在这种情况下,为了提高学习效果,可以启用该输入端口,并连接应用到环境中的实际动作信号。

请注意

最后的动作Port应该只用于非策略代理,否则培训可能产生意想不到的结果。

依赖关系

要启用此端口,请选择最后一个动作输入参数。

用这个信号通过对外行动向环境发出信号。

时的值利用外部行动信号是1方块通过对外行动向环境发出信号。该块还使用外部操作来更新代理策略。

时的值利用外部行动信号是0块未通过对外行动信号传递给环境,并且不使用外部操作更新策略。相反,来自块的操作使用来自代理策略的操作。

依赖关系

要启用此端口,请选择外部动作输入参数。

输出

全部展开

智能体根据观察和奖励输入计算出的动作。将此端口连接到系统的输入端。若要使用非虚拟总线信号,请使用bus2RLSpec

请注意

连续的行动空间代理,如rlACAgentrlPGAgent,或rlPPOAgent(使用anrlContinuousGaussianActor对象),不强制操作规范设置的约束。在这些情况下,必须在环境中强制执行操作空间约束。

模拟过程中奖励信号的累积和。观察或记录这一信号,追踪累积奖励如何随着时间的推移而演变。

依赖关系

要启用此端口,请选择累积奖励输出参数。

参数

全部展开

输入存储在MATLAB工作区或数据字典中的代理对象的名称,例如rlACAgentrlDDPGAgent对象。有关代理对象的信息,请参见强化学习代理

如果RL代理块在有条件执行的子系统中,例如触发子系统(金宝app模型)或者一个函数调用子系统(金宝app模型)时,必须指定代理对象的采样时间为-1这样,该块就可以继承其父子系统的采样时间。

编程使用

块参数:代理
类型:字符串,字符向量
默认值:“agentObj”

生成一个政策中指定的代理实现贪婪策略的块代理对象通过调用generatePolicyBlock块功能。为了生成贪婪策略,块设置UseExplorationPolicy属性的代理在生成策略块之前..

生成的块被添加到新的Simulink模型中,策略数据保存在当前工作文件夹中的金宝appmat文件中。

启用对外行动而且利用外部行动选择该参数,阻断输入端口。

编程使用

块参数:ExternalActionAsInput
类型:字符串,字符向量
价值观:“关闭”|“上”
默认值:“关闭”

启用最后的动作选择该参数,阻断输入端口。

编程使用

块参数:ProvideLastAction
类型:字符串,字符向量
价值观:“关闭”|“上”
默认值:“关闭”

启用累积奖励通过选择此参数阻止输出。

编程使用

块参数:ProvideCumRwd
类型:字符串,字符向量
价值观:“关闭”|“上”
默认值:“关闭”

选择此参数可强制观测数据类型。在这种情况下,如果数据类型的信号连接观察属性中的数据类型不匹配ObservationInfo属性时,块会尝试将信号强制转换为正确的数据类型。如果不能强制转换数据类型,则块生成一个错误。

执行严格的数据类型:

  • 让您验证块正在获得正确的数据类型。

  • 控件的数据类型中继承其他块的数据类型观察端口。

编程使用

块参数:UseStrictObservationDataTypes
类型:字符串,字符向量
价值观:“关闭”|“上”
默认值:“关闭”

版本历史

在R2019a中引入