exponenta event banner

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';

Назначьте информацию о пути блока агента и создайте среду обучения армированию для модели 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