A2C中的梯度计算

时间:2020-01-27 23:51:21

标签: tensorflow pytorch reinforcement-learning

在A2C中,参与者和评论者算法通过以下等式更新权重:

delta = TD错误和

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

w = w + beta * delta * [Grad(V(s,w))]

所以我的问题是,当使用神经网络实现这一目标时,

  1. 如何计算梯度和

  2. 我纠正了权重是通过TensorFlow或PyTorch中的优化方法进行更新吗?

谢谢乔恩

1 个答案:

答案 0 :(得分:1)

我不太清楚用w更新的意思,但是我会回答theta的问题,前提是它表示参与者模型的参数。

1)可以通过多种方式计算梯度,但是如果关注PyTorch,则可以在f(x)= alpha上调用.backward() * delta * log(PI(a | s,theta),对于通过autograd链接到f(x)的每个参数x,其df / dx。

2)您确实是正确的,即通过Pytorch中的优化方法(特别是自动分级)来更新权重。但是,为了完成优化步骤,您必须使用要在网络参数(例如权重和偏差)上使用的任何优化程序来调用torch.optim.step