Как справиться с задержкой по времени в обучении с подкреплением?

Dec 14 2020

У меня вопрос относительно задержки по времени в обучении с подкреплением (RL).

В RL у каждого есть состояние, награда и действие. Обычно предполагается, что (насколько я понимаю), когда действие выполняется в системе, состояние изменяется немедленно и что новое состояние затем может быть проанализировано (влияя на вознаграждение) для определения следующего действия. Однако что делать, если в этом процессе есть задержка по времени. Например, когда какое-то действие выполняется во время$t_1$, мы можем получить его влияние на систему только при $t_2$(Вы можете представить себе поток: исполнительный механизм находится в области выше по потоку, а датчик - в области ниже по потоку, поэтому между действием и состоянием будет задержка по времени). Как нам справиться с этой задержкой в ​​RL?

Ответы

nbro Dec 15 2020 at 05:38

Большинство алгоритмов RL предполагают дискретизацию времени (хотя RL также может применяться к задачам с непрерывным временем [ 1]), т.е. теоретически, на самом деле не имеет значения, каково фактическое время между последовательными временными шагами, но на практике у вас могут быть задержки в наградах или наблюдениях, поэтому вы не можете выполнить, например, обновления TD немедленно. Одним из естественных решений вашей проблемы было бы отслеживать (например, в буфере) полученное вознаграждение и следующее состояние, в котором агент оказался после выполнения определенного действия в определенном состоянии, или использовать какой-то механизм синхронизации ( обратите внимание, что я только что придумал эти решения, поэтому я не знаю, было ли это сделано для решения проблем или нет). На практике это может не сработать (во всех случаях), например, во время вывода в реальном времени, когда вам нужно быстро решить, что вам нужно делать, даже без полной информации о текущем состоянии или вознаграждении.

Обратите внимание, что в RL награды часто откладываются в том смысле, что

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

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

Учитывая, что я не очень хорошо знаком с существующими на самом деле решениями, я отсылаю вас к статье « Проблемы реального обучения с подкреплением», которую я прочитал несколько недель назад, в которой упоминается эта проблема и указывается на другие исследования, в которых предпринимались попытки обратиться к нему. Взгляните и на этот ответ , если вас больше интересуют отложенные / редкие награды.