validateEnvironment

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

Синтаксис

Описание

пример

validateEnvironment(env) проверяет окружение обучения с подкреплением. Эта функция полезна, когда:

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

  • Вы используете окружение, созданную из Simulink® модель с использованием rlSimulinkEnv.

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

Примеры

свернуть все

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

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

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 сконфигурирован для использования агента, вызываемого agent, но такая переменная не существует в рабочей области MATLAB ®. Таким образом, функция возвращает ошибку, указывающую на проблему .

Создайте соответствующий агент для этой системы с помощью команд, подробно описанных в примерах Create Simulink Environment и Train Agent. В этом случае загружает агента из 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