A2C中的梯度计算

Gradient calculation in A2C

在 A2C 中,演员和评论家算法,权重通过等式更新:

delta = TD 误差和

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

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

所以我的问题是,当使用神经网络来实现这个时,

  1. 梯度是如何计算的

  2. 我是否更正了权重是通过 TensorFlow 或 PyTorch 中的优化 fmethods 更新的?

谢谢,乔恩

我不太清楚你用 w 更新的意思,但我会回答 theta 的问题,假设它表示演员模型的参数。

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

2) 你确实是正确的,权重是通过 Pytorch 中的优化方法(具体来说,autograd)更新的。但是,为了完成优化步骤,您必须使用您想在网络参数(例如权重和偏差)上使用的任何优化器来调用 torch.optim.step