Я успешно использовал Q-learning для решения некоторых классических условий обучения подкреплению из OpenAI Gym (например, Taxi, CartPole).Эти среды позволяют выполнять одно действие на каждом временном шаге.Однако я не могу найти способ решить проблемы, когда несколько действий выполняются одновременно на каждом временном шаге.Например, в среде Roboschool Reacher 2 значения крутящего момента - по одному для каждой оси - должны указываться на каждом временном шаге.Проблема в том, что матрица Q построена из пар (состояние, действие).Однако, если одновременно выполняется более одного действия, построить матрицу Q не просто.
В книге Максима Лапана "Обучение глубокому усилению" упоминается об этом, но не дается четкий ответ,см. цитату ниже.
Конечно, мы не ограничены одним действием, которое можно выполнить, и среда может иметь несколько действий, таких как одновременное нажатие нескольких кнопок или управление колесом и нажатие двух педалей.(тормоз и ускоритель).Для поддержки таких случаев Gym определяет специальный контейнерный класс, который позволяет вложить несколько пространств действий в одно унифицированное действие.
Кто-нибудь знает, как обращаться с несколькими действиями в обучении Q?
PS: я не говорю о проблеме «непрерывное против дискретного пространства действия», которая может быть решена с помощью DDPG.