强化学习(7):深度确定性策略梯度(Deep Deterministic Policy Gradient, DDPG)
发布日期:2021-05-08 05:35:56 浏览次数:22 分类:原创文章

本文共 1354 字,大约阅读时间需要 4 分钟。

本文主要讲解有关 DDPG 算法的有关内容。

一、DDPG 算法

DDPG 是 Deep Deterministic Policy Gradient 的缩写,其中深度 (Deep) 代表 DQN;确定性(Deterministic)是指不再先生成各个动作的概率然后再选择概率最高的动作,而是直接输出一个确定性的动作;Policy Gradient 就不用解释了吧。

因为在 Actor-Critic 中连续状态中前后状态具有相关性,所以会导致神经网络只能片面的看待问题,甚至导致神经网络学不到东西、收敛慢。为了解决这个问题,DDPG 使用了类似于 DQN 的经验回放池。在实操中,一开始时先由 Actor 随机的采取动作,当经验回放池存储满后,再从里面随机选择 batch 个样本进行网络参数更新。

DDPG 可以看作是 Actor-Critic 算法和 DQN 算法的结合,该算法中还是有 Actor 和 Critic 两个网络。与 Actor-Critic 算法不同的是 Actor 网络直接采用 Critic 网络对自己动作的评估值 TD-error 作为 Actor 网络的损失函数。而两者的 Critic 网络的损失函数是相同的。

因为 DDPG 还结合 DQN 算法,所以 Actor 和 Critic 网络又分别有两个—— target 网络和 eval 网络。与 DQN 一样,eval 网络的参数保持最新,而 target 网络的参数隔一段时间后才会更新。

总结一下,Actor-target 网络和 Critic-target 网络是一对,前者做动作,后者对动作进行评估,然后前者再根据评估值改变自己选择动作的概率。同理 Actor-eval 网络和 Critic-eval 网络是一对,前者做动作,后者对动作进行评估,不同的是,前者没有自己的损失函数,而是靠 Actor-target 来更新自己的参数。而 Actor-target 网络和 Actor-eval 网络是一对,它们的存在是为了打乱观测值前后的相关性。同理 Critic-target 和 Critic-eval 这两个网络也是如此。

由于 Actor-Critic 算法中是先 Critic 更新参数然后再 Actor 更新参数,而 DDPG 与之相反,这使得 DDPG 中获得两个网络的输出和更新两个网络的参数这两个阶段是分离的(先同时得到两个网络的输出,再更新两个网络的参数)。所以说 DDPG 的网络结构写起来是比较蛋疼的,具体情况建议大家根据代码自己理顺两个网络中数据的传递流程。

二、DDPG 中的 Tricks

(1)soft-replacement

在把 eval 网络的参数赋值给 target 网络时,不再是 hard replacement,而是软替换 soft replacement,这样可以避免不收敛的问题。hard replacement 就是每隔一定的步数就将 eval 网络中的参数赋值给 target 网络,而 soft replacement 就是每一步都对 target 网络的参数更新一部分。

(2) 为 action 增加噪声

这样可以增加网络的鲁棒性。

三、DDPG 算法流程

DDPG

上一篇:中国石油大学《计算机文化基础》在线考试
下一篇:强化学习(6):Actor-Critic(演员评论家)算法

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年03月28日 04时49分50秒