Реализация функции потерь (MSVE) в обучении подкреплению
Я пытаюсь создать временного агента по изучению различий для Отелло. В то время как остальная часть моей реализации, кажется, работает как задумано, я задаюсь вопросом о функции потерь, используемой для обучения моей сети. В книге Саттона "Изучение подкрепления: Введение" ошибка среднего квадрата (MSVE представлена как стандартная функция потерь. По сути, это ошибка среднего квадрата, умноженная на распределение по политике. (Сумма по всем состояниям s ( onPolicyDistribution(s) * [V(s) - V'(s,w)]²))
Теперь у меня вопрос: как мне получить это при распределении политик, когда моя политика представляет собой электронную жадную функцию функции изученного значения? Это даже необходимо, и в чем проблема, если я просто использую MSELoss?
Я реализую все это в pytorch, так что бонусные баллы за простую реализацию есть:)
1 ответ
Как вы упомянули, в вашем случае это звучит так, как будто вы делаете Q-learning, поэтому вам не нужно делать градиент политики, как описано в книге Саттона. Это необходимо, когда вы изучаете политику. Вы не изучаете политику, вы изучаете функцию ценности и используете ее для действия.