machine-learning - 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()
您能否更详细地解释此代码如何实现所需的更新?
解决方案
推荐阅读
- google-cloud-platform - 如何根据策略验证 GCR 图像是否经过二进制授权或证明?
- c# - 运算符“*”不能应用于“Vector3”和“Vector3”类型的操作数
- python - 如何使用python提取mfcc
- python - 通过 builder() 将滚动窗口添加到 textview
- java - 请解释在 RadioButton 中如何使用 java 方法 isChecked
- java - 如何将特定的最小值和最大值设置为随机数
- c# - 如何从连接的多个表中仅获取不同的值
- r - 与 lubridate 和闪亮输入兼容的用户友好时区列表?
- sql - 如何编写oracle SQL查询以特定顺序获取匹配和不匹配的行对(基于键列)
- vba - VBA 编辑文本 XML 文本文件,导出为新文件名