Реализация функции потерь (MSVE) в обучении с подкреплением

Я пытаюсь создать агент обучения временной разнице для Отелло. В то время как остальная часть моей реализации, похоже, работает по назначению, мне интересно узнать о функции потерь, используемой для обучения моей сети. В книге Саттона «Обучение с подкреплением: введение» среднеквадратическая ошибка значения (MSVE) представлена ​​​​как стандартная функция потерь. По сути, это среднеквадратическая ошибка, умноженная на распределение по политике. (Сумма по всем состояниям s ( onPolicyDistribution(s) ) * [V(s) - V'(s,w)]² ))

Теперь у меня вопрос: как мне получить это при распределении политики, если моя политика является электронной жадной функцией функции изученного значения? Это вообще необходимо и в чем проблема, если вместо этого я просто использую MSELoss?

Я реализую все это в pytorch, так что бонусные баллы за простую реализацию есть :)


person masus04    schedule 11.10.2017    source источник


Ответы (1)


Как вы упомянули, в вашем случае это звучит так, как будто вы занимаетесь Q-обучением, поэтому вам не нужно делать градиент политики, как описано в книге Саттона. Это необходимо, когда вы изучаете политику. Вы не изучаете политику, вы изучаете функцию ценности и используете ее в своих действиях.

person patapouf_ai    schedule 26.02.2018