Глубокое обучение с подкреплением с несколькими непрерывными действиями

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

введите описание изображения здесь

Состояния и действия

Среда имеет три состояния [s1, s2, s3] и шесть состояний действий [a1, a2, a3, a4, a5, a6], а действия могут иметь любое значение от 0 до 1.

Вопрос:

Какие алгоритмы подходят для моей задачи? Я знаю, что есть алгоритмы, которые хороши для обработки непрерывного пространства действий, например (DDPG, PPO и т. Д.), Но я не вижу, как они могут работать, когда они должны выводить несколько действий на каждом временном шаге. Наконец, существуют ли какие-либо тренажерные залы с описанным свойством (несколько действий) и есть ли какие-либо реализации Python для решения этих конкретных сред?


person Amine Chadi    schedule 01.03.2021    source источник


Ответы (1)


Как вы упомянули в своем вопросе, PPO, DDPG, TRPO, SAC и т. Д. Действительно подходят для обработки пространств непрерывного действия для задач обучения с подкреплением. Эти алгоритмы выдадут вектор размером, равным вашей размерности действия, и каждый элемент в этом векторе будет действительным числом, а не дискретным значением. Обратите внимание, что стохастические алгоритмы, такие как PPO, дают многомерное распределение вероятностей, из которого вы выбираете действия.

Большинство роботизированных сред в Mujoco-py, PyBullet, Robosuite и т. д. - это среда с несколькими непрерывными пространствами действий. Здесь пространства действий могут иметь форму [torque_for_joint_1, torque_for_join_2, ..., torque_for_joint_n], где крутящий момент_for_joint_i может быть вещественным числом, определяющим, насколько будет двигаться это соединение.

Что касается реализаций для решения этих сред, robosuite предлагает образцы решений для тестирования сред с использованием различных алгоритмов. Вы также можете найти stable-baselines или одну из стандартных библиотек RL.

person nsidn98    schedule 02.03.2021
comment
Спасибо за разъяснения! У меня есть еще один вопрос, каждое действие в выходном векторе действий должно быть ограничено между [0 и 1], что означает, что максимальная сумма шести действий будет равна 6 (т.е. если бы все действия были равны 1). Как я могу гарантировать, что каждое действие действительно ограничено между 0 и 1. Я знаю, что существует мультиклассовая классификация с использованием функции активации softmax, но это не то, что я хочу, потому что это ограничит сумму всех действий между 0 и 1 а не каждое действие в отдельности. Спасибо - person Amine Chadi; 02.03.2021
comment
Значит ли это, что все действия зависят друг от друга? - person nsidn98; 02.03.2021
comment
Нет, они не зависят друг от друга. Фактически они работают так, как будто каждое действие исходит от отдельного регрессора (но со значением от 0 до 1). - person Amine Chadi; 02.03.2021
comment
Вы можете просто использовать сигмовидную или сдвинутую нелинейность tanh в последнем слое, чтобы получить выходные данные в диапазоне [0,1]. - person nsidn98; 02.03.2021
comment
Спасибо большое за вашу помощь! - person Amine Chadi; 02.03.2021