Оптимизация Q-Learning с перекрывающимися состояниями

Я реализую 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, потому что в финальном состоянии эпизода есть только награда. (Я предполагаю, что в состоянии проблемы оба эпизода совершают одно и то же действие).

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

Я неправильно понял проблему или это реальная проблема? Или мне следует изменить способ назначения моих наград?

Спасибо!


person Karnivaurus    schedule 20.06.2017    source источник
comment
Я видел разные реализации, но обычно обучение заканчивается или награда выдается, когда актер достигает цели. Почему фиксированное время и вознаграждение только в том случае, если оно заканчивается точно в момент времени T? Концептуально это было бы похоже на поиск с помощью мыши в лабиринте сыра, но сыр появляется (или является только съедобным) через 54 секунды после начала моделирования и только в течение 1 секунды.   -  person Anton Codes    schedule 20.06.2017


Ответы (1)


Во-первых, в этих двух эпизодах различаются либо состояния, либо действия. Сначала предположим, что робот всенаправлен (нет направления «лицом» - он может двигаться в любом направлении), затем в состоянии «перекрытия» в эпизоде ​​A выполняется другое действие, чем в эпизоде ​​B (поскольку один идет вверх и вправо, а один идет влево), и поскольку значения Q имеют форму Q (s, a), нет никакого «конфликта», поскольку вы подбираете Q (s, a_A) и Q (s, a_B) «по отдельности». Теперь второй вариант - у робота действительно есть направление движения, поэтому в обоих эпизодах они могли выполнять одно и то же действие (например, «вперед»), но тогда состояние s на самом деле включает направление заголовка, поэтому у вас есть Q ( s_A, a) и Q (s_B, a) (снова разные объекты, просто одно и то же действие).

В общем, также неверно, что вы не можете узнать, когда получаете два разных значения для одной и той же пары состояние / действие - вы узнаете ожидаемое значение (что в любом случае является типичным случаем для любой стохастической среды).

person lejlot    schedule 20.06.2017