В сценарии обучения с подкреплением, где вы обучаете агента для выполнения задачи, среда моделирует динамику, с которой взаимодействует агент. Как показано на следующей схеме, среда:
Получает действия от агента
Выходные наблюдения в ответ на действия
Вырабатывает вознаграждение, показывающее как хорошо действие способствует достижению задачи
Создание модели среды включает определение следующего:
Сигналы действия и наблюдения, которые агент использует для взаимодействия со средой.
Сигнал вознаграждения, что использование агента, чтобы измерить его успех. Для получения дополнительной информации смотрите, Задают Сигналы вознаграждения.
Динамическое поведение среды.
Когда вы создаете объект среды, необходимо задать сигналы действия и наблюдения что использование агента, чтобы взаимодействовать со средой. Можно создать и дискретные и непрерывные пространства действия. Для получения дополнительной информации смотрите rlNumericSpec
и rlFiniteSetSpec
, соответственно.
Сигналы, которые вы выбираете в качестве действия и наблюдения, зависят от вашего приложения. Например, для приложений системы управления, интегралы (и иногда производные) сигналов ошибки являются часто полезными наблюдениями. Кроме того, для приложений отслеживания уставки полезно иметь изменяющуюся во времени уставку в качестве наблюдения.
Когда вы задаете свои сигналы наблюдения, убедитесь, что все состояния системы являются наблюдаемыми. Например, наблюдение изображений за качающимся маятником имеет информацию о положении, но не имеет достаточной информации для определения скорости маятника. В этом случае можно задать скорость маятника как отдельное наблюдение.
Пакет Reinforcement Learning Toolbox™ обеспечивает предопределённые среды MATLAB ®, для которых уже заданы действия, наблюдения, вознаграждения и динамика. Можно использовать эти среды для:
Изучения концепции обучения с подкреплением
Ознакомления с особенностями Reinforcement Learning Toolbox
Тестирования своих собственных агентов обучения с подкреплением
Для получения дополнительной информации смотрите Загрузку Предопределенные Среды Мира Сетки и Загрузка Предопределенные Среды Системы управления.
Можно создать следующие типы пользовательских сред MATLAB для собственных приложений:
Миры сетки с заданным размером, вознаграждениями и препятствиями
Среды с динамикой, заданной с помощью пользовательских функций
Среда, заданная путем создания и изменения объекта среды шаблона
Если вы создаете пользовательский объект среды, можно обучить агента таким же образом как в предопределенной среде. Для получения дополнительной информации об учебных агентах смотрите, Обучают Агентов Обучения с подкреплением.
Можно создать пользовательские миры сетки любого размера с собственным вознаграждением, изменением состояния и настройками препятствия. Создать пользовательскую среду мира сетки:
Создайте модель мира сетки с помощью createGridWorld
функция. Например, создайте мир сетки с десятью строками и девятью столбцами.
gw = createGridWorld(10,9);
Сконфигурируйте мир сетки путем изменения свойств модели. Например, задайте терминальное состояние как местоположение [7,9]
.
gw.TerminalStates = "[7,9]";
Создайте среду MDP для этого мира сетки, которую агент использует для взаимодействия с моделью мира сетки.
env = rlMDPEnv(gw);
Для простых сред можно задать пользовательский объект среды путем создания rlFunctionEnv
объект, задавая пользовательские функции reset и step.
В начале каждого эпизода тренировки агент готовит среду к обучению путем устанавливания начальных условий с помощью функции сброса. Например, можно задать известные значения начального состояния или поместить среду в случайное начальное состояние.
Ступенчатая функция задает динамику среды; то есть, как изменения состояния в ответ на действия агента. На каждом учебном временном шаге состояние модели обновляется с помощью ступенчатой функции.
Для получения дополнительной информации смотрите, Создают Среду MATLAB с помощью Пользовательских Функций.
Для более сложных сред можно задать пользовательскую среду путем создания и изменения среды шаблона. Создать пользовательскую среду:
Создайте шаблонный класс среды с помощью rlCreateEnvTemplate
функция.
Измените среду шаблона, задав свойства среды, требуемые функции среды и дополнительные функции среды.
Подтвердите свою пользовательскую среду с помощью validateEnvironment
.
Для получения дополнительной информации смотрите, Создают Пользовательскую Среду MATLAB из Шаблона.
rlCreateEnvTemplate
| rlFunctionEnv
| rlPredefinedEnv