Агент повторяет один и тот же круг действий без остановки, Q обучения - PullRequest
0 голосов
/ 22 апреля 2020

Как вы можете предотвратить непрерывное повторение агентом одного и того же круга действий?

Конечно, как-то с изменениями в системе вознаграждений. Но есть ли общие правила, которым вы могли бы следовать или пытаться включить в свой код, чтобы предотвратить такую ​​проблему?


Точнее говоря, моя настоящая проблема такова:

I ' я пытаюсь научить ANN изучать Doodle Jump, используя Q-Learning. Спустя всего несколько поколений, агент продолжает безостановочно прыгать на одной и той же платформе / камне снова и снова. Это не помогает увеличить продолжительность случайного исследования.

Моя система вознаграждений следующая:

  • + 1, когда агент живет
  • + 2, когда агент прыгает на платформу
  • -1000, когда он умирает

Идея заключалась бы в том, чтобы наградить его отрицательным или, по крайней мере, 0, когда агент достигнет той же платформы, что и раньше. Но для этого мне нужно было бы передать много новых входных параметров в ANN: координаты x, y агента и координаты x, y последней посещенной платформы.

Кроме того, ANN тогда также придется узнать, что платформа имеет толщину 4 блока и так далее.

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

1 Ответ

0 голосов
/ 25 апреля 2020

Это не прямой ответ на очень часто задаваемый вопрос.


Я нашел обходной путь для моего конкретного примера DoodleJump, возможно, кто-то делает что-то подобное и нуждается в помощи:

  • Во время обучения: пусть после этого каждая платформа, на которой прыгнул агент, исчезнет и создаст новую в другом месте.

  • Во время тестирования / презентации: Вы можете отключить новую «исчезнуть-функция» (так, как это было раньше), и игрок будет играть хорошо и не будет постоянно играть на одной и той же платформе.

...