Я пытаюсь реализовать (радужный) DQN для игры Hanabi и у меня есть несколько вопросов для работы с пространствами действий переменной длины (на каждом временном шаге только подмножество всех действий являются законными действиями, которые могут быть выбраны агентом).
В документации Ray предлагается установить Q-значения недопустимых действий для -inf в функции пересылки моделей. Это работает, но остальная часть кода теперь имеет дело со значениями -inf, и дуэль DQN больше не работает.
Вопрос: Почему бы просто не изменить политику выбора действий, чтобы выбрать только законные действия?
Стандартная политика:
argmax(Q(s,a)) where a in all_actions
Вместо этого:
argmax(Q(s,a)) where a in legal_actions
Возможные проблемы
Этот подход означает, чтоцелевая сеть может (особенно в начале) выбрать недопустимое действие при расчете вознаграждения (поскольку функция потерь по-прежнему использует стандартную политику для выбора целевого значения Q).
Какое влияние будетэто делает? Что происходит с оценкой q-значения действий, которые никогда не предпринимаются?
Конечно, можно было бы также изменить расчет потерь. Но нужно ли это вообще?