Функция вознаграждения за политический градиент спуска в обучении подкрепления
В настоящее время я изучаю политику градиентного спуска в контексте обучения в области подкрепления. TL;DR, мой вопрос: "Каковы ограничения на функцию вознаграждения (в теории и на практике) и что будет хорошей функцией вознаграждения для случая ниже?"
Подробности: я хочу внедрить Neural Net, который должен научиться играть в простую настольную игру с использованием Policy Gradient Descent. Я опущу детали NN, поскольку они не имеют значения. Функция потерь для градиентного спуска политики, насколько я понимаю, имеет отрицательную логарифмическую вероятность: loss = - avg(r * log(p))
Мой вопрос сейчас заключается в том, как определить вознаграждение r
? Поскольку игра может иметь 3 различных результата: выигрыш, проигрыш или ничья - кажется, что награда 1 за победу, 0 за ничью, -1 за проигрыш (и некоторая дисконтированная стоимость для действий, ведущих к таким результатам) будет естественный выбор.
Однако математически у меня есть сомнения:
Награда за победу: 1 - Кажется, это имеет смысл. Это должно подтолкнуть вероятности к 1 для ходов, участвующих в победах с уменьшающимся градиентом, тем ближе вероятность становится 1.
Награда за ничью: 0 - Это не имеет смысла. Это просто исключило бы любые вероятности в уравнении, и никакое обучение не должно быть возможным (поскольку градиент всегда должен быть 0).
Вознаграждение за потерю: -1 - Это должно сработать. Это должно подтолкнуть вероятности к 0 для ходов, связанных с потерями. Однако меня беспокоит асимметрия градиента по сравнению с выигрышным случаем. Чем ближе к 0 вероятность, тем круче становится градиент. Я обеспокоен тем, что это создаст чрезвычайно сильный уклон в сторону политики, которая позволяет избежать потерь - до такой степени, что сигнал победы не имеет большого значения вообще.
1 ответ
Ты на правильном пути. Тем не менее, я считаю, что вы путаете вознаграждение с вероятностями действий. В случае розыгрыша он узнает, что само вознаграждение равно нулю в конце эпизода. Однако, в случае потери, функция потерь дисконтируется как вознаграждение (которое должно быть -1), умноженное на вероятности действий. Таким образом, вы получите больше к действиям, которые заканчиваются выигрышем и от проигрыша с действиями, заканчивающимися ничьей, падающими в середине. Интуитивно понятно, что это очень похоже на контролируемое глубокое обучение только с дополнительным весовым параметром (вознаграждением), прикрепленным к нему.
Кроме того, я считаю, что этот документ из Google DeepMind будет полезен для вас: https://arxiv.org/abs/1712.01815. Они на самом деле говорят о решении шахматной задачи с использованием RL.