validateEnvironment

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

Синтаксис

Описание

пример

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

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

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

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

Примеры

свернуть все

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

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

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

Введенный в R2019a