首页 > 解决方案 > Pytorch 中的确定性策略梯度实现?

问题描述

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

根据论文,我们使用采样的策略梯度更新 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()

请参考这个 Github repo

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

标签: machine-learningdeep-learningpytorchartificial-intelligencereinforcement-learning

解决方案


推荐阅读