validateEnvironment

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

Синтаксис

Описание

пример

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

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

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

validateEnvironment сбрасывает среду, генерирует начальное наблюдение и действие, и симулирует среду для одного или двух шагов (см. Алгоритмы). Если нет никаких ошибок во время этих операций, валидация успешна, и validateEnvironment не возвращает результата. Если ошибки происходят, эти ошибки появляются в командном окне MATLAB®. Используйте ошибки определить, что измениться в вашей спецификации наблюдения, спецификации действия, пользовательских функциях или модели 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);

Создайте среду из модели. Затем используйте validateEnvironment проверять, сконфигурирована ли модель правильно.

env = rlSimulinkEnv('rlwatertank','rlwatertank/RL Agent',obsInfo,actInfo);
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. Таким образом функция возвращает ошибку при указании на проблему.

Создайте соответствующего агента для этой системы с помощью команд, детализированных в Создать окружении Simulink, и Обучите Агента. Затем запуск validateEnvironment снова.

validateEnvironment(env)

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

Входные параметры

свернуть все

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

  • Пользовательская среда 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 выполняет эти шаги без dirtying модель и оставляет все параметры модели в состоянии, они были в том, когда вы вызвали функцию.

Введенный в R2019a