主要内容

RL代理

强化学习代理

  • 库:
  • 强化学习工具箱

  • RL代理块

描述

使用RL代理块在Simulink中模拟和训练强化学习代理®.您将块与存储在MATLAB中的代理关联起来®工作区或数据字典,例如rlACAgentrlDDPGAgent对象。你连接砖块,这样它就会收到观察结果和计算奖励。例如,考虑下面的方框图rlSimplePendulumModel模型。

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

方块使用代理基于你所提供的观察和奖励而生成行动。连接行动输出端口到您系统的适当输入。例如,在rlSimplePendulumModel,行动输出端是施加到摆系统上的力矩。有关此模型的更多信息,请参见训练DQN代理上摆和平衡摆

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

港口

输入

全部展开

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

此端口接收奖励信号,根据观测数据计算奖励信号。在训练过程中,利用奖励信号实现对长期奖励的期望最大化。

使用此信号指定终止训练集的条件。您必须配置适合您的系统的逻辑,以确定事件终止的条件。其中一个应用是终止一集显然进展顺利或不顺利的节目。例如,如果代理达到了它的目标或无法恢复地远离了它的目标,您可以终止一集。

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

依赖关系

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

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

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

请注意

最后的动作Port应该只与非策略代理一起使用,否则训练会产生意想不到的结果。

依赖关系

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

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

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

的值时使用外部行动信号是0块没有通过对外行动向环境发送信号,而不使用外部操作更新策略。相反,来自块的操作使用来自代理策略的操作。

依赖关系

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

输出

全部展开

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

请注意

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

模拟过程中奖励信号的累积和。观察或记录这个信号,以跟踪累积奖励是如何随时间演变的。

依赖关系

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

参数

全部展开

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

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

编程使用

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

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

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

启用对外行动而且使用外部行动通过选择此参数来阻塞输入端口。

编程使用

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

启用最后的动作通过选择此参数来阻塞输入端口。

编程使用

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

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

编程使用

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

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

强制执行严格的数据类型:

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

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

编程使用

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

版本历史

介绍了R2019a

Baidu
map