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