@nslim13

Нейронная сеть для игры. Как правильно выбирать действия агента?

Имею среду (игровое поле) и агента (нейронную сеть). Метод обучения deep q-learning. На вход нейронке подаю состояние клеток игрового поля (доступные действия в каждой клетке в надежде на то, что агент научится строить замысловатые цепочки ходов), на выходе получаю вероятности одного из 8-ми действий (ходы по вертикали, горизонтали или диагонали). Задача агента добраться до определенной точки (загнать мяч в ворота, если так будет понятней), за это он получает награду. Есть правило, что в каждой клетке каждое действие доступно только однажды (попав в клетку повторно совершённые ранее действия уже недоступны).
Вопрос в том, как быть, если нейронка выбирает недоступное в данный момент действие? Например как если бы в шашках агент пытался походить на занятую другой шашкой клетку. Пробовал штрафовать за выбор недоступного действия (после штрафа сбрасывал состояние среды в начальное состояние). В результате рано или поздно наступает момент, когда агент как бы зацикливается и начинает совершать одну и ту же цепочку действий, последнее из которых недоступно. Потом штраф, сброс, и по новой. Пробовал не сбрасывать среду после неверного выбора, а штрафовать на каждом шаге, пока агент не выберет другое действие. Результат особо не отличается: действия агента не имеют особого смысла. До этого мне удалось обучить агента в окружении Frozen Lake и научить нейросеть играть в игру NIM. А тут что-то никак. ЧЯДНТ? Может мой подход в принципе неверный?..
  • Вопрос задан
  • 184 просмотра
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Введите ещё один параметр-указатель во входной слой: доступен/не доступен объект/клетка (или сразу несколько фалгов: по каждому типу для каждого из всех объектов) и им фильтруйте возможность выбора этой клетки для совершения хода агентом.
PS: Видимо, у Вас есть все возможности ходов в клетке, кроме запрета использования.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы