В сценарии обучения усилению, в котором агент обучается выполнению задачи, среда моделирует внешнюю систему (то есть мир), с которой агент взаимодействует. В системах управления эту внешнюю систему часто называют установкой.
Как показано на следующем рисунке, среда:
Получает действия от агента.
Возвращает наблюдения в ответ на действия.
Генерирует вознаграждение, измеряющее, насколько хорошо действие способствует выполнению задачи.

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