rlNumericSpec

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

Описание

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

Создание

Описание

пример

spec = rlNumericSpec(dimension) создает спецификацию данных для непрерывных действий или наблюдений и устанавливает свойство 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