RL Agent

Агент обучения с подкреплением

  • Библиотека:
  • Reinforcement Learning Toolbox

  • RL Agent block

Описание

Используйте блок RL Agent для симуляции и обучения агента обучения с подкреплением в Simulink®. Вы связываете блок с агентом, хранящимся в MATLAB® рабочая область или словарь данных как объект агента, такой как rlACAgent или rlDDPGAgent объект. Вы соединяете блок так, чтобы он получил наблюдение и вычисленное вознаграждение. Например, рассмотрите следующий блок rlSimplePendulumModel модель.

The observation входной порт блока RL Agent получает сигнал, который выводится из мгновенных угла и скорости вращения маятника. The reward порт получает вознаграждение, рассчитанное из тех же двух значений и приложенного действия. Вы конфигурируете наблюдения и расчеты вознаграждения, соответствующие вашей системе.

Блок использует агента, чтобы сгенерировать действие на основе наблюдений и вознаграждения, которое вы предоставляете. Соедините action выходной порт на соответствующий вход для вашей системы. Для образца, в rlSimplePendulumModel, а action порт является крутящим моментом, приложенным к системе маятника. Для получения дополнительной информации об этой модели см. «Train агента DQN к качанию» и «Баланс маятника».

Чтобы обучить агента обучения с подкреплением в Simulink, вы генерируете окружение из модели Simulink. Затем вы создаете и конфигурируете агента для обучения с этим окружением. Для получения дополнительной информации см. Раздел «Создание окружений обучения с подкреплением Simulink». Когда вы звоните train используя окружение, train моделирует модель и обновляет агента, связанного с блоком.

Порты

Вход

расширить все

Этот порт получает сигналы наблюдения от окружения. Сигналы наблюдения представляют измерения или другие данные мгновенной системы. Если у вас есть несколько наблюдений, можно использовать блок Mux, чтобы объединить их в сигнал вектора. Чтобы использовать невиртуальный сигнал шины, используйте bus2RLSpec.

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

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

Используйте этот сигнал для обеспечения внешнего действия блока. Этот сигнал может быть управляющим действием от человеческого эксперта, которое может использоваться для безопасных или имитационных приложений обучения. Когда значение use external action сигнала 1, передает сигнал external action в окружение через выход блока action. Блок также использует внешнее действие, чтобы обновить политику агента на основе полученных наблюдений и вознаграждений.

Зависимости

Чтобы включить этот порт, выберите параметр Add inports for external action signal.

Используйте этот сигнал, чтобы передать external action сигнал окружающему окружению.

Когда значение use external action сигнала 1 блок передает сигнал external action в окружение. Блок также использует внешнее действие для обновления политики агента.

Когда значение use external action сигнала 0 блок не передает сигнал external action в окружение и не обновляет политику с помощью внешнего действия. Вместо этого действие из блока использует действие из политики агента.

Зависимости

Чтобы включить этот порт, выберите параметр Add inports for external action signal.

Выход

расширить все

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

Примечание

Когда такие агенты, как rlACAgent, rlPGAgent, или rlPPOAgent использовать rlStochasticActorRepresentation актёр с непрерывным пространством действий, ограничения, установленные спецификацией действия, не применяются агентом. В этих случаях необходимо применить ограничения пространства действий в окружении.

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

Зависимости

Чтобы включить этот порт, выберите параметр Provide cumulative reward signal.

Параметры

расширить все

Введите имя объекта агента, хранящегося в рабочем пространстве MATLAB или словаре данных, таком как rlACAgent или rlDDPGAgent объект. Для получения информации об объектах агента см. Раздел «Агенты обучения с подкреплением».

Программное использование

Параметры блоков: Agent
Тип: строка, вектор символов
По умолчанию: "agentObj"

Включите вывод блока cumulative_reward путем выбора этого параметра.

Программное использование

Параметры блоков: ProvideCumRwd
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Включите external action и use external action входные порты блоков, выбрав этот параметр.

Программное использование

Параметры блоков: ExternalActionAsInput
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"
Введенный в R2019a