【问题标题】:Gradient calculation in A2CA2C中的梯度计算
【发布时间】:2020-05-13 09:12:32
【问题描述】:

在 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 更新的?

谢谢,乔恩

【问题讨论】:

    标签: tensorflow pytorch reinforcement-learning


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-18
      • 2020-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多