DDPG是连续控制领域的经典算法之一。
DDPG是为了让DQN可以扩展到连续的动作空间而提出。通过在DQN的基础上增加一个策略网络来输出动作,采用演员-评论员算法,同时更新Q网络和策略网络的参数,来同时训练两个部分。
DDPG借鉴了DQN的技巧:目标网络和经验回放。
DDPG算法
下面我们来说明一下DDPG的核心结构:
DDPG拥有4个网络:Q网络、目标Q网络、策略网络、目标策略网络。
1、Q网络:是原始DQN算法中的Q网络,通过训练近似Q函数(见DQN部分笔记)与目标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》第十二章内容