Я реализую Q-обучение для простой задачи, которая включает перемещение робота в целевую позицию в непрерывной системе координат. Каждый эпизод имеет фиксированную длину, а награды редки: за последний переход эпизода дается одна награда, и награда зависит от конечного расстояния между роботом и целью.
Проблема, которая меня интересует, заключается в том, что при вычислении значений q для определенного состояния могут быть конфликтующие целевые значения q. Например, предположим, что в эпизоде А робот оказывается рядом с целью на последнем этапе эпизода и получает награду в размере 0,9. Затем в эпизоде B предположим, что робот движется прямо через цель в середине эпизода и завершает эпизод далеко от цели:
Моя проблема связана с состоянием проблемы, когда два эпизода перекрываются. Если я сохраняю свои переходы в буфере воспроизведения и выбираю переход из эпизода A, то целевое значение q для этого действия будет равно discount_factor x max_q(next_state) + reward
, но если выполняется выборка перехода из эпизода B, то целевое значение q равно discount_factor x max_q(next_state) + 0
, потому что в финальном состоянии эпизода есть только награда. (Я предполагаю, что в состоянии проблемы оба эпизода совершают одно и то же действие).
Это означает, что моя оптимизация имеет две разные цели для одной и той же пары состояние-действие, чему будет невозможно научиться.
Я неправильно понял проблему или это реальная проблема? Или мне следует изменить способ назначения моих наград?
Спасибо!