Расчет градиента в A2C - PullRequest
       19

Расчет градиента в A2C

0 голосов
/ 28 января 2020

В A2 C, действующем и критическом c алгоритме, веса обновляются с помощью уравнений:

delta = TD Error и

theta = theta + alpha * delta * [Grad (log (PI (a | s, theta)))] и

w = w + бета * delta * [Grad (V (s, w))]

Так что мой вопрос, при использовании нейронных сетей для реализации этого,

  1. как рассчитываются градиенты и

  2. Правильно ли я, что веса обновляются через методы оптимизации в TensorFlow или PyTorch?

Спасибо, Джон

1 Ответ

1 голос
/ 21 февраля 2020

Мне не совсем понятно, что вы хотите обновить с помощью w, но я отвечу на вопрос для theta, предполагая, что это обозначает параметры для модели актера.

1) Градиенты может быть рассчитан различными способами, но если сосредоточиться на PyTorch, вы можете вызвать .backward() для f (x) = alpha * delta * log (PI (a | s, theta), который будет df / dx для каждого параметра x, который связан с f (x) через autograd.

2) Вы действительно правы, что веса обновляются с помощью методов оптимизации в Pytorch (в частности, autograd). Однако для выполнения шага оптимизации вы должны вызвать torch.optim.step с любым оптимизатором, который вы хотели бы использовать для параметров сети (например, весов и смещений).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...