rlNumericSpec

Создайте непрерывные спецификации данных о действии или наблюдении для сред обучения с подкреплением

Описание

rlNumericSpec объект задает непрерывные спецификации данных о действии или наблюдении для сред обучения с подкреплением.

Создание

Описание

пример

spec = rlNumericSpec(dimension) создает спецификацию данных для непрерывных действий или наблюдений и устанавливает Свойство измерения.

spec = rlNumericSpec(dimension,Name,Value) аргументы пары "имя-значение" использования Свойств наборов.

Свойства

развернуть все

Нижний предел пространства данных, заданного как скаляр или матрица одного размера с пространством данных. Когда LowerLimit задан как скаляр, rlNumericSpec применяет его ко всем записям в пространстве данных.

Верхний предел пространства данных, заданного как скаляр или матрица одного размера с пространством данных. Когда UpperLimit задан как скаляр, rlNumericSpec применяет его ко всем записям в пространстве данных.

Имя rlNumericSpec объект, заданный как строка.

Описание rlNumericSpec объект, заданный как строка.

Это свойство доступно только для чтения.

Размерность пространства данных, заданного как числовой вектор.

Это свойство доступно только для чтения.

Информация о типе данных, заданных как строка.

Функции объекта

rlSimulinkEnvСоздайте среду обучения с подкреплением с помощью динамической модели, реализованной в Simulink
rlFunctionEnvЗадайте пользовательскую динамику среды обучения с подкреплением с помощью функций
rlRepresentationПредставление модели для агентов обучения с подкреплением

Примеры

свернуть все

В данном примере рассмотрите rlSimplePendulumModel Модель Simulink. Модель является простым лишенным трения маятником, который первоначально зависает в нисходящем положении.

Откройте модель.

mdl = 'rlSimplePendulumModel';
open_system(mdl)

Присвойте информацию о блоке path агента и создайте rlNumericSpec и rlFiniteSetSpec объекты для получения информации о наблюдении и действии. Можно использовать запись через точку, чтобы присвоить значения свойств rlNumericSpec и rlFiniteSetSpec объекты.

agentBlk = [mdl '/RL Agent'];
obsInfo = rlNumericSpec([3 1])
obsInfo = 
  rlNumericSpec with properties:

     LowerLimit: -Inf
     UpperLimit: Inf
           Name: [0x0 string]
    Description: [0x0 string]
      Dimension: [3 1]
       DataType: "double"

actInfo = rlFiniteSetSpec([2 1])
actInfo = 
  rlFiniteSetSpec with properties:

       Elements: [2x1 double]
           Name: [0x0 string]
    Description: [0x0 string]
      Dimension: [1 1]
       DataType: "double"

obsInfo.Name = 'observations';
actInfo.Name = 'torque';

Создайте среду обучения с подкреплением для модели Simulink с помощью информации, извлеченной на предыдущих шагах.

env = rlSimulinkEnv(mdl,agentBlk,obsInfo,actInfo)
env = 
  SimulinkEnvWithAgent with properties:

             Model: "rlSimplePendulumModel"
        AgentBlock: "rlSimplePendulumModel/RL Agent"
          ResetFcn: []
    UseFastRestart: 'on'

Можно также включать функцию сброса, использующую запись через точку. В данном примере рассмотрите случайным образом инициализирующий theta0 в рабочем пространстве модели.

env.ResetFcn = @(in) setVariable(in,'theta0',randn,'Workspace',mdl)
env = 
  SimulinkEnvWithAgent with properties:

             Model: "rlSimplePendulumModel"
        AgentBlock: "rlSimplePendulumModel/RL Agent"
          ResetFcn: @(in)setVariable(in,'theta0',randn,'Workspace',mdl)
    UseFastRestart: 'on'

Введенный в R2019a