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)

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

obsInfo = rlNumericSpec([3 1]) % vector of 3 observations: sin(theta), cos(theta), d(theta)/dt
obsInfo = 
  rlNumericSpec with properties:

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

actInfo = rlFiniteSetSpec([-2 0 2]) % 3 possible values for torque: -2 Nm, 0 Nm and 2 Nm
actInfo = 
  rlFiniteSetSpec with properties:

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

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

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

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

agentBlk = [mdl '/RL Agent'];
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