Как справиться с задержкой по времени в обучении с подкреплением?
У меня вопрос относительно задержки по времени в обучении с подкреплением (RL).
В RL у каждого есть состояние, награда и действие. Обычно предполагается, что (насколько я понимаю), когда действие выполняется в системе, состояние изменяется немедленно и что новое состояние затем может быть проанализировано (влияя на вознаграждение) для определения следующего действия. Однако что делать, если в этом процессе есть задержка по времени. Например, когда какое-то действие выполняется во время$t_1$, мы можем получить его влияние на систему только при $t_2$(Вы можете представить себе поток: исполнительный механизм находится в области выше по потоку, а датчик - в области ниже по потоку, поэтому между действием и состоянием будет задержка по времени). Как нам справиться с этой задержкой в RL?
Ответы
Большинство алгоритмов RL предполагают дискретизацию времени (хотя RL также может применяться к задачам с непрерывным временем [ 1]), т.е. теоретически, на самом деле не имеет значения, каково фактическое время между последовательными временными шагами, но на практике у вас могут быть задержки в наградах или наблюдениях, поэтому вы не можете выполнить, например, обновления TD немедленно. Одним из естественных решений вашей проблемы было бы отслеживать (например, в буфере) полученное вознаграждение и следующее состояние, в котором агент оказался после выполнения определенного действия в определенном состоянии, или использовать какой-то механизм синхронизации ( обратите внимание, что я только что придумал эти решения, поэтому я не знаю, было ли это сделано для решения проблем или нет). На практике это может не сработать (во всех случаях), например, во время вывода в реальном времени, когда вам нужно быстро решить, что вам нужно делать, даже без полной информации о текущем состоянии или вознаграждении.
Обратите внимание, что в RL награды часто откладываются в том смысле, что
- вы можете знать последствия действия только через много временных шагов после того, как вы его предприняли (определение последствий действия известно как проблема присвоения кредита ), или
- вы можете получить ненулевое вознаграждение только тогда, когда агент достигнет целевого / конечного состояния (в этом последнем случае эти вознаграждения также известны как редкие ).
Эти две проблемы типичны для RL. Однако, если я правильно понимаю ваши опасения, это немного отличается от вашей проблемы, потому что ваша проблема также включает в себя потенциальную задержку состояния или даже вознаграждения, которое должно было быть получено на предыдущем временном шаге, что может быть связано, например, с неустойчивый или сломанный датчик / исполнительный механизм. Например, если вы используете DQN , который обычно строит приближение текущего состояния путем объединения последних кадров, снятых вашей камерой, если у вас есть задержки в кадрах, которые вызывают изменение естественного порядка кадров, это может привести к с плохой аппроксимацией текущего состояния, что могло фактически привести к катастрофическому событию. Так что да, это важная проблема, которую нужно решать.
Учитывая, что я не очень хорошо знаком с существующими на самом деле решениями, я отсылаю вас к статье « Проблемы реального обучения с подкреплением», которую я прочитал несколько недель назад, в которой упоминается эта проблема и указывается на другие исследования, в которых предпринимались попытки обратиться к нему. Взгляните и на этот ответ , если вас больше интересуют отложенные / редкие награды.