我正在尝试在 Pytorch 中实现 DDPG 算法。我了解如何更新评论家网络,但是我无法理解我在演员更新的 Pytorch 中看到的一些实现。
根据论文,我们使用采样的策略梯度更新 Actor 策略,我们通过首先取 Q wrt 动作 a 的梯度,然后取确定性策略函数 μ wrt θ 的梯度来计算:
现在,我使用 Pytorch 看到的此更新的一些实现包括以下代码:
self.actor.zero_grad()
policy_loss = -self.critic([
to_tensor(state_batch),
self.actor(to_tensor(state_batch))
])
policy_loss = policy_loss.mean()
policy_loss.backward()
self.actor_optim.step()
能否请您更详细地解释一下此代码如何实现所需的更新?