深度确定性策略梯度(DDPG)算法(DataWhale组队学习笔记)

DDPG是连续控制领域的经典算法之一。

DDPG是为了让DQN可以扩展到连续的动作空间而提出。通过在DQN的基础上增加一个策略网络来输出动作,采用演员-评论员算法,同时更新Q网络和策略网络的参数,来同时训练两个部分。

DDPG借鉴了DQN的技巧:目标网络和经验回放。

DDPG算法

下面我们来说明一下DDPG的核心结构:

DDPG拥有4个网络:Q网络、目标Q网络、策略网络、目标策略网络。

1、Q网络:是原始DQN算法中的Q网络,通过训练近似Q函数(见DQN部分笔记)与目标Q函数的损失,来达到求解 \max{Q} 的问题。

2、目标Q网络:根据目标网络的算法,为Q网络提供一个相对稳定的目标Q函数来辅助训练。

3、策略网络:通过策略梯度算法求解最优action,构造损失函数,通过网络进行训练从而输出一个动作。

4、目标策略网络:为了让策略网络的训练更加稳定,引入目标网络,在多次迭代使得策略网络的梯度收敛后,再更新目标网络,同时输出一个action用来更新目标Q网络。

注:由于DDPG使用了经验回放的技巧,将训练数据进行存储并多次使用,因此DDPG是一个off-policy的算法。


Twin Delayed DDPG(TD3)

DDPG与DQN有同样的问题,由于计算Q值会出现误差,因此在误差持续积累的情况下,DDPG也会出现高估Q值的情况,从而导致策略网络被破坏。为了解决这个问题,我们利用以下3种技巧:

1、引入Double Q网络,在学习过程中取两个网络训练结果中最小的那一个。

2、Q值确定后更新策略网络,在找到最优action后,Q值又进行了改变,这时策略又不是最优的了,因此我们可以降低策略网络更新的频率,这与目标网络所蕴含的技巧是一样的。通常来说每更新两次Q网络就更新一次策略网络。

3、通过在目标策略网络中引入噪声,使策略更难利用Q函数的误差。

注:同样的,TD3是一种off-policy的方法。


注:本文参考《蘑菇书EasyRL》第十二章内容

来源:蘑菇书EasyRL (datawhalechina.github.io)

你可能感兴趣的:(深度学习,人工智能)