在A2C中,参与者和评论者算法通过以下等式更新权重:
delta = TD错误和
theta = theta + alpha * delta * [Grad(log(PI(a(s | the,theta))))]
w = w + beta * delta * [Grad(V(s,w))]
所以我的问题是,当使用神经网络实现这一目标时,
如何计算梯度和
我纠正了权重是通过TensorFlow或PyTorch中的优化方法进行更新吗?
谢谢乔恩
答案 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
。