大家好,我们又见面了,我是你们的老朋友全栈君。
请记住,在Q函数学习中,DQN与DDPG的区别在于,目标的下一个最大Q值是由actor估计的,而不是critic自身。在连续动作空间中,critic无法在没有优化的情况下估计最大Q值。因此,最佳选择是直接使用actor给出最佳动作。
第一张图片中的代码有误:
第71行:critic_target网络基于actor_target网络的估计输出最大Q值,因此不需要再次执行max操作(但在DQN中,我们确实需要那个max操作,因为在DQN中,下一最大Q值是由critic_target本身直接估计的(Q值函数))。
第72行:DDPG中的critic(Q函数)可以直接输出相对输入动作的Q值,因此不需要聚集动作索引相关的Q值。
第74行:因为优化器会累积梯度值,所以使用optimizer.zero_grad()清除它(而不是使用network.zero_grad)。
第75行:优化器应该调用step()函数来反向传播误差。
讯飞听见会议
科大讯飞推出的AI智能会议系统
19 查看详情
别忘了添加最终状态的判定:1- dones。

第79行:在actor学习部分,critic_local的输入动作不是样本动作,而是由actor估计的动作(要注意这一点)。此外,它应该计算其平均值。最后,我们希望最大化性能,但优化器用于最小化目标,因此我们必须设置负号。
在soft_update中,记得使用数据的属性进行复制。

发布者:全栈程序员栈长,转载请注明出处:https://www.php.cn/link/8eb7be5a13cc39a3e56b78aba08b2039
以上就是DDPG Project「建议收藏」的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/464247.html
微信扫一扫
支付宝扫一扫