Различные награды за одно и то же состояние в обучении с подкреплением

Я хочу внедрить Q-Learning для игры про динозавров Chrome (в которую можно играть, когда вы не в сети).

Я определил свое состояние как: расстояние до следующего препятствия, скорость и размер следующего препятствия.

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

Теперь мой вопрос: это проблема или Q-Learning все еще будет работать? Если нет, есть ли лучший способ?


person 7Orion7    schedule 15.04.2017    source источник
comment
Я бы предложил схему вознаграждения с большой отрицательной наградой за смерть. И положительное вознаграждение каждый раз, когда счет увеличивается (вероятно, равен увеличению счета). Я не вижу проблем с Q-обучением — я видел замечательных агентов pacman, использующих ванильное Q-обучение. Игра с динозаврами не должна быть проблемой.   -  person Patrick Coady    schedule 16.04.2017


Ответы (1)


В определении MDP говорится, что вознаграждение r(s,a,s') определяется как ожидаемое вознаграждение за выполнение действия. a в состоянии s в состояние поиска s'. Это означает, что данное (s,a,s') может иметь постоянное вознаграждение или некоторое распределение вознаграждений, если оно имеет четко определенные ожидания. Как вы определили, награда пропорциональна количеству пройденных препятствий. Поскольку игра может продолжаться вечно, награда за некоторые (s,a,s') начинает выглядеть как сумма натуральных чисел. Этот ряд расходится, поэтому у него нет ожидания. На практике, если вы запустите Q-обучение, вы, вероятно, увидите, что функция значений расходится (значения NaN), но политика в середине обучения может быть приемлемой, потому что значения, которые будут расти быстрее всего, будут лучшими парами действий состояния.

Чтобы этого избежать, следует выбрать другую функцию вознаграждения. Вы можете вознаградить агента любым его счетом, когда он умрет (большая награда в конце, иначе ноль). Вы также можете давать живое вознаграждение (небольшое вознаграждение за каждый временной шаг), если у агента нет другого выбора, кроме как двигаться вперед. Пока самые высокие общие вознаграждения назначаются самым длинным прогонам (и ожидание вознаграждения за кортеж (s,a,s') четко определено), это хорошо.

person Nick Walker    schedule 15.04.2017