Pytorch 中的确定性策略梯度实现?

时间:2021-06-21 19:37:13

标签: machine-learning deep-learning pytorch artificial-intelligence reinforcement-learning

我正在尝试在 Pytorch 中实现 DDPG 算法。我了解如何更新评论家网络,但是我无法理解我在演员更新的 Pytorch 中看到的一些实现。

根据论文,我们使用采样的策略梯度更新 Actor 策略,我们通过首先取 Q wrt 动作 a 的梯度,然后取确定性策略函数 μ wrt θ 的梯度来计算:

policy gradient

现在,我使用 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()

请参考this Github repo

能否请您更详细地解释一下此代码如何实现所需的更新?

0 个答案:

没有答案