В сценарии обучения с подкреплением, где вы обучаете агента для выполнения задачи, окружение моделирует динамику, с которой взаимодействует агент. Как показано на следующем рисунке, окружение:
Получает действия от агента.
Формирует выходные наблюдения в ответ на действия.
Генерирует вознаграждение, измеряющее, насколько хорошо действие способствует достижению задачи.
Создание модели окружения включает в себя определение следующего:
Сигналы действия и наблюдения, которые агент использует для взаимодействия со окружением.
Сигнал вознаграждения, который агент использует для измерения своего успеха. Для получения дополнительной информации смотрите Задать сигналы вознаграждения.
Динамическое поведение окружения.
Когда вы создаете объект окружения, необходимо задать сигналы действия и наблюдения, которые агент использует для взаимодействия со окружением. Можно создать как дискретные так и непрерывные пространства действий. Для получения дополнительной информации смотрите rlNumericSpec
и rlFiniteSetSpec
, соответственно.
Какие сигналы вы выбираете в качестве действий и наблюдений, определяется вашим приложением. Для примера, для приложений системы управления, интегралы (и иногда производные) сигналов ошибки являются часто полезными наблюдениями. Кроме того, для приложений отслеживания уставки полезно иметь изменяющийся во времени опорный сигнал в качестве наблюдения.
Когда вы задаете свои сигналы наблюдения, гарантируйте, что все состояния системы наблюдаемы. Для примера наблюдение изображений за качающимся маятником имеет информацию о положении, но не имеет достаточной информации для определения скорости маятника. В этом случае можно задать скорость маятника как отдельное наблюдение.
Пакет Reinforcement Learning Toolbox™ обеспечивает предопределенный Simulink® окружения, для которых уже заданы действия, наблюдения, вознаграждения и динамика. Можно использовать эти окружения для:
Изучения концепций обучения с подкреплением.
Ознакомьтесь с функциями пакета Reinforcement Learning Toolbox.
Тестирования своих агентов обучения с подкреплением.
Для получения дополнительной информации смотрите Загрузка предопределённых окружений Simulink.
Чтобы задать своё собственное пользовательское окружение обучения с подкреплением, создайте модель Simulink с RL Agent блоком. В этой модели соедините сигналы действия, наблюдения и вознаграждения с блоком RL Agent. Для получения примера смотрите Обучение с подкреплением для бака с водой Окружения Модель.
Для сигналов действия и наблюдения необходимо создать объекты спецификации, используя rlNumericSpec
для непрерывных сигналов и rlFiniteSetSpec
для дискретных сигналов. Для сигналов шины создайте спецификации, используя bus2RLSpec
.
Для сигнала вознаграждения создайте скалярный сигнал в модели и соедините этот сигнал с блоком RL Agent. Для получения дополнительной информации смотрите Задать сигналы вознаграждения.
После конфигурирования модели Simulink создайте объект окружения для модели используя rlSimulinkEnv
функция.
Если у вас есть образец модели с соответствующим входным портом сигнала действия, выходным портом сигнала наблюдения и скалярным выходным портом сигнала вознаграждения, можно автоматически создать модель Simulink, которая включает в себя этот образец модели и RL Agent блок. Для получения дополнительной информации см. createIntegratedEnv
. Эта функция возвращает окружение объекта, спецификаций действия и спецификации наблюдений для модели.
Ваше окружение может включать в себя функциональность сторонних производителей. Для получения дополнительной информации смотрите Интеграция с существующей симуляцией или окружением (Simulink).
createIntegratedEnv
| rlPredefinedEnv
| rlSimulinkEnv