DDPG深度确定性策略梯度算法概述

2021/9/11 20:05:30

本文主要是介绍DDPG深度确定性策略梯度算法概述,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

DDPG(Deep Deterministic Policy Gradient)是连续控制领域的经典强化学习算法,是结合PG和DQN的一种off-policy方法。

可以看作是DQN的改进,在DQN的Q网络基础上引入Actor网络预测一个使Q值最大的动作值,从而能够应对连续动作空间,且使用了DQN中的目标网络和经验复现技巧。

Deep指深度网络,Deterministic指确定性策略也就是Actor输出的是一个动作值而不是动作概率分布,虽然叫Policy Gradient但却是AC架构。

1. Critic网络

  • 作用:估计Q值,而不是A2C中估计V值,所以其实是DQN中的Q网络
  • 输入:状态,动作
  • 输出:Q值
  • 目标:使Q值估计尽可能准确
  • 所以Loss就是TD_error,当前预测值与目标值的最小均方误差 

2. Actor网络

  • 作用:提出一个给定状态的动作
  • 输入:状态
  • 输出:一个动作值
  • 目标:选择Q值尽可能高的动作,也就是最大化Q值
  • 所以Loss就是-Q(s, a)

3. 主要技巧

  • 用了两个目标网络,从而增加训练的稳定性。所以一共是四个网络
  • 用了ReplayBuffer,存储(s, a, r, s')
  • 训练时给Actor输出的action增加均值为0的高斯噪声后再执行,有利于探索

4. 补充

  • 随机性策略:输出动作的概率分布,再从中采样得到动作。最后一层通常用Softmax,之后用Categorical分布采样(如果只有两个动作也可以不用softmax,直接输出其中一个动作的概率,之后用Bernoulli分布采样)。
  • 确定性策略:输出一个动作。同样的state必然输出同样的action。最后一层通常用双曲正切函数tanh映射到(-1, 1),之后再根据实际动作取值范围进行scale。 
  • 伪代码中两个目标网络更新公式里的tao,以及actor和critic各自的学习率,都可以调整

图片来源:

https://blog.csdn.net/hezzfew/article/details/109534023

https://zhuanlan.zhihu.com/p/84321382

 

 

 

 

 

 

 

 



这篇关于DDPG深度确定性策略梯度算法概述的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程