exponenta event banner

validateEnvironment

Проверка пользовательской среды обучения армированию

Синтаксис

Описание

пример

validateEnvironment(env) проверяет среду обучения для усиления. Эта функция полезна в следующих случаях:

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

  • Используется среда, созданная на основе модели Simulink ® rlSimulinkEnv.

validateEnvironment сбрасывает среду, генерирует начальное наблюдение и действие и моделирует среду для одного или двух шагов (см. Алгоритмы). Если во время этих операций ошибок нет, проверка выполняется успешно, и validateEnvironment не возвращает результата. При возникновении ошибок эти ошибки появляются в окне команд MATLAB ®. Используйте ошибки, чтобы определить, что нужно изменить в спецификации наблюдения, спецификации действия, пользовательских функциях или модели Simulink.

Примеры

свернуть все

В этом примере показано, как проверить среду Simulink.

Создание и проверка и среда для rlwatertank модель, представляющая собой систему управления, содержащую агент обучения усилению (подробные сведения об этой модели см. в разделе Создание среды Simulink и агента обучения.)

open_system('rlwatertank')

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

obsInfo = rlNumericSpec([3 1],...
    'LowerLimit',[-inf -inf 0  ]',...
    'UpperLimit',[ inf  inf inf]');
obsInfo.Name = 'observations';
obsInfo.Description = 'integrated error, error, and measured height';
numObservations = obsInfo.Dimension(1);

actInfo = rlNumericSpec([1 1]);
actInfo.Name = 'flow';
numActions = numel(actInfo);

Создайте среду на основе модели.

env = rlSimulinkEnv('rlwatertank','rlwatertank/RL Agent',obsInfo,actInfo);

Теперь вы используете validateEnvironment для проверки правильности конфигурации модели.

validateEnvironment(env)

Error using rl.env.SimulinkEnvWithAgent/validateEnvironment (line 187) 
Simulink environment validation requires an agent in the MATLAB base workspace 
or in a data dictionary linked to the model. Specify the agent in the Simulink model. 

validateEnvironment пытается скомпилировать модель, инициализировать среду и агента и смоделировать модель. В этом случае блок агента RL настроен на использование агента с именем agent, но такой переменной в рабочей области MATLAB ® не существует. Таким образом, функция возвращает ошибку, указывающую на проблему .

Создайте соответствующий агент для этой системы с помощью команд, описанных в примере Создание среды Simulink и агента Train. В этом случае загрузите агент из rlWaterTankDDPGAgent.mat файл.

load rlWaterTankDDPGAgent

Теперь, беги validateEnvironment снова.

validateEnvironment(env)

Входные аргументы

свернуть все

Среда для проверки, заданная как объект среды обучения усиления, например:

  • Пользовательская среда MATLAB, создаваемая с помощью rlCreateEnvTemplate. В этом случае validateEnvironment проверяет, что наблюдения и действия, созданные во время моделирования среды, согласуются по размеру, типу данных и диапазону значений со спецификацией наблюдения и спецификацией действия. Он также проверяет, что ваш пользовательский step и reset функции выполняются без ошибок. (При создании пользовательской среды с помощью rlFunctionEnv, программное обеспечение работает validateEnvironment автоматически

  • Пользовательская среда Simulink, создаваемая с помощью rlSimulinkEnv. При использовании среды Simulink в модели также должен быть определен агент, связанный с блоком RL Agent. Для модели Simulink: validateEnvironment проверяет, что модель компилируется и выполняется без ошибок. Функция не загрязняет модель.

Дополнительные сведения о создании и настройке сред см. в разделе:

Алгоритмы

свернуть все

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

Среды MATLAB

Для сред MATLAB проверка включает следующие шаги.

  1. Сброс среды с помощью reset функция, связанная с окружающей средой.

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

  3. Создание тестового действия на основе измерения, типа данных и диапазона значений в спецификации действия.

  4. Моделирование среды для одного шага с использованием созданного действия и step функция, связанная с окружающей средой.

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

Если какая-либо из этих операций приводит к ошибке, validateEnvironment возвращает ошибку. Если validateEnvironment не возвращает результата, проверка выполнена успешно.

Среды Simulink

Для сред Simulink проверка включает следующие шаги.

  1. Сбросьте среду.

  2. Моделирование модели в течение двух временных шагов.

Если какая-либо из этих операций приводит к ошибке, validateEnvironment возвращает ошибку. Если validateEnvironment не возвращает результата, проверка выполнена успешно.

validateEnvironment выполняет эти шаги без загрязнения модели и оставляет все параметры модели в том состоянии, в котором они находились при вызове функции.

Представлен в R2019a