Автоматическая дифференциация в градиентных сетях политик

Я понимаю обратное распространение в сетях градиентов политик, но не уверен, как работает с библиотеками, которые автоматически дифференцируются.

То есть, как они превращают это в проблему контролируемого обучения. Например, код ниже:

Y = self.probs + self.learning_rate * np.squeeze(np.vstack([gradients]))

Почему Y не является горячим вектором для предпринятых действий? Он вычисляет градиент, предполагая, что действие правильное, Y - горячий вектор. Затем он умножает его на награду в соответствующем временном шаге. Но во время тренировок он это кормит как коррекцию. Я думаю, ему лучше вместо этого умножить награды на один горячий вектор. https://github.com/keon/policy-gradient/blob/master/pg.py#L67


person Abhishek Bhatia    schedule 25.06.2017    source источник


Ответы (1)


Y не является 1-горячим вектором, потому что это сумма вероятности действия (т.е. self.prob), умноженная на соответствующее вознаграждение.

person mynameisvinn    schedule 25.10.2017