exponenta event banner

Создание учебных сред для усиления MATLAB

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

Как показано на следующем рисунке, среда:

  1. Получает действия от агента.

  2. Возвращает наблюдения в ответ на действия.

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

Создание модели среды включает в себя определение:

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

  • Сигнал вознаграждения, который агент использует для измерения своего успеха. Дополнительные сведения см. в разделе Определение сигналов вознаграждения.

  • Исходное состояние среды и ее динамическое поведение.

Сигналы действий и наблюдения

При создании объекта среды необходимо указать сигналы действия и наблюдения, которые агент использует для взаимодействия с средой. Можно создавать как дискретные, так и непрерывные пространства действий и наблюдения. Дополнительные сведения см. в разделе rlNumericSpec и rlFiniteSetSpecсоответственно.

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

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

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

Предопределенные среды MATLAB

В программном обеспечении для Toolbox™ обучения усилению предусмотрены некоторые предварительно определенные среды MATLAB ®, для которых уже определены действия, наблюдения, вознаграждения и динамика. Эти среды можно использовать для:

  • Изучите концепции обучения усилению.

  • Познакомьтесь с функциями ПО для обучения по усилению.

  • Протестируйте собственные агенты обучения усилению.

Дополнительные сведения см. в разделах Загрузка предопределенных сред Grid World и Загрузка предопределенных сред системы управления.

Пользовательские среды MATLAB

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

  • Сеточные миры с определенным размером, наградами и препятствиями

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

  • Среды, заданные путем создания и изменения объекта среды шаблона

После создания пользовательского объекта среды можно обучить агента таким же образом, как и в предопределенной среде. Дополнительные сведения об агентах обучения см. в разделе Обучение агентов обучения усилению.

Пользовательские сеточные миры

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

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

    gw = createGridWorld(10,9);
  2. Настройте сетку, изменив свойства модели. Например, укажите состояние клеммы в качестве местоположения [7,9]

    gw.TerminalStates = "[7,9]";
  3. Сеточный мир должен быть включен в среду процесса принятия решений Маркова (MDP). Создайте среду MDP для этого мира сетки, которую агент использует для взаимодействия с моделью мира сетки.

    env = rlMDPEnv(gw);

Дополнительные сведения о мирах пользовательских сеток см. в разделе Создание сред мира пользовательских сеток.

Задать пользовательские функции

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

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

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

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

Создание и изменение среды шаблонов

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

  1. Создание класса шаблонов среды с помощью rlCreateEnvTemplate функция.

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

  3. Проверка пользовательской среды с помощью validateEnvironment.

Дополнительные сведения см. в разделе Создание пользовательской среды MATLAB из шаблона.

См. также

| |

Связанные темы