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

目录

1. Critic网络

2. Actor网络

3. 主要技巧

4. 补充说明


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

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

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

DDPG深度确定性策略梯度算法概述_第1张图片

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的高斯噪声后再执行,有利于探索

DDPG深度确定性策略梯度算法概述_第2张图片

4. 补充说明

  • 随机性策略与确定性策略的区别
    • 随机性策略:输出动作的概率分布,再从中采样得到动作。最后一层通常用Softmax,之后用Categorical分布采样(如果只有两个动作也可以不用softmax,直接输出其中一个动作的概率,之后用Bernoulli分布采样)。
    • 确定性策略:输出一个动作。同样的state必然输出同样的action。最后一层通常用双曲正切函数tanh映射到(-1, 1),之后再根据实际动作取值范围进行scale。 
  • gym的Pendulum倒立摆是经典的连续控制问题。钟摆以随机位置开始,目标是将其向上摆动,使其保持直立。
    • 状态空间:cos(theta), sin(theta), theta dot
    • 动作空间:一维,电机的控制力矩[min_torque, max_torque]
  • 伪代码中两个目标网络更新公式里的tao,以及actor和critic各自的学习率,都可以调整

DDPG深度确定性策略梯度算法概述_第3张图片

DDPG深度确定性策略梯度算法概述_第4张图片

图片来源:

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

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

你可能感兴趣的:(强化学习,强化学习,DDPG)