exponenta event banner

rlFunctionEnv

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

Описание

Использовать rlFunctionEnv для определения пользовательской среды обучения армированию. Предоставляются функции MATLAB ®, определяющие поведение шага и сброса для среды. Этот объект полезен, когда требуется настроить среду за пределами предварительно определенных сред, доступных вrlPredefinedEnv.

Создание

Описание

пример

env = rlFunctionEnv(obsInfo,actInfo,stepfcn,resetfcn) создает среду обучения армированию с использованием предоставленных спецификаций наблюдения и действий, obsInfo и actInfoсоответственно. Вы также устанавливаете StepFcn и ResetFcn свойств с использованием функций MATLAB.

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

развернуть все

Спецификация наблюдения, указанная как rlFiniteSetSpec или rlNumericSpec объект или массив, содержащий комбинацию таких объектов. Эти объекты определяют такие свойства, как размеры, типы данных и имена сигналов наблюдения.

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

Свойства

развернуть все

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

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

[Observation,Reward,IsDone,LoggedSignals] = myStepFunction(Action,LoggedSignals)

Для использования дополнительных входных аргументов, выходящих за пределы требуемого набора, укажите StepFcn с помощью анонимного дескриптора функции.

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

  • Action - текущее действие, которое должно соответствовать измерениям и типу данных, указанным в actInfo.

  • Observation - Возвращенное наблюдение, которое должно соответствовать измерениям и типам данных, указанным в obsInfo.

  • Reward - вознаграждение за текущий шаг, возвращаемое в виде скалярного значения.

  • IsDone - Логическое значение, указывающее, следует ли заканчивать эпизод моделирования. Определяемая пошаговая функция может включать логику, позволяющую решить, следует ли завершить моделирование на основе наблюдения, вознаграждения или любых других значений.

  • LoggedSignals - любые данные, которые требуется передать с одного шага на следующий, указанные как структура.

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

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

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

[InitialObservation,LoggedSignals] = myResetFunction

Чтобы использовать входные аргументы с функцией сброса, укажите ResetFcn с помощью анонимного дескриптора функции.

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

sim функция вызывает функцию сброса для сброса среды в начале каждого моделирования, и train функция вызывает его в начале каждого учебного эпизода.

InitialObservation выходные данные должны соответствовать измерениям и типу данных obsInfo.

Чтобы передать информацию из условия сброса в первый шаг, укажите эту информацию в функции сброса в качестве структуры вывода. LoggedSignals.

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

Информация для перехода к следующему шагу, заданному как структура. При создании среды, независимо от того, что определено как LoggedSignals вывод ResetFcn инициализирует это свойство. Когда происходит шаг, программное обеспечение заполняет это свойство данными для передачи на следующий шаг, как определено в StepFcn.

Функции объекта

getActionInfoПолучение спецификаций данных действий из среды обучения подкреплению или агента
getObservationInfoПолучение спецификаций данных наблюдения из среды обучения армированию или агента
trainПодготовка обучающих агентов по усилению в определенной среде
simМоделирование обученных агентов по обучению подкреплению в определенной среде
validateEnvironmentПроверка пользовательской среды обучения армированию

Примеры

свернуть все

Создайте среду обучения усилению, предоставив пользовательские динамические функции в MATLAB ®. ИспользуяrlFunctionEnv, можно создать среду обучения усилению MATLAB из спецификации наблюдения, спецификации действия и step и reset функции, определяемые пользователем.

В этом примере создается среда, представляющая систему для балансировки тележки на столбе. Наблюдениями из окружающей среды являются положение тележки, скорость тележки, угол маятника и производная угла маятника. (Дополнительные сведения об этой среде см. в разделе Создание среды MATLAB с помощью пользовательских функций.) Создайте спецификацию наблюдения для этих сигналов.

oinfo = rlNumericSpec([4 1]);
oinfo.Name = 'CartPole States';
oinfo.Description = 'x, dx, theta, dtheta';

Среда имеет пространство дискретных действий, где агент может применить одно из двух возможных значений силы к корзине, -10 N или 10 N. Создайте спецификацию действий для этих действий.

ActionInfo = rlFiniteSetSpec([-10 10]);
ActionInfo.Name = 'CartPole Action';

Далее укажите пользовательский параметр step и reset функции. В этом примере используются поставляемые функции. myResetFunction.m и myStepFunction.m. Дополнительные сведения об этих функциях и их построении см. в разделе Создание среды MATLAB с помощью пользовательских функций.

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

env = rlFunctionEnv(oinfo,ActionInfo,'myStepFunction','myResetFunction');

Можно создавать агенты для env и обучить их в среде, как вы бы для любого другого укрепления обучения среды.

В качестве альтернативы использованию имен функций можно указать функции в качестве дескрипторов функций. Дополнительные сведения и пример см. в разделе Создание среды MATLAB с помощью пользовательских функций.

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