深度确定性策略梯度(DDPG)
确定性策略梯度算法:用于强化学习的算法,它旨在🌟通过梯度下降优化一个 确定性的策略,而非随机策略。即给定一个状态,策略网络(Actor)会输出一个确定的动作,而不是一个概率分布。
- 随机策略:策略给出每个动作的概率分布。例如,策略可能会在某个状态下以一定的概率选择不同的动作。
- 确定性策略:策略直接给出每个状态下要采取的具体动作,而不是动作的概率分布。
确定性策略梯度算法 的目标:优化一个函数,该函数直接给出每个状态下的动作,而不是对动作进行采样。
💡:DDPG中演员网络(策略网络)就是通过评论家网络所输出的奖励Q值梯度来进行更新的。
基本架构:演员-评论家(Actor-Critic)
- 核心思想:将策略优化和价值估计分开,以便更有效地训练代理。
- 演员-评论家作为一种强化学习算法的框架,广泛用于处理连续动作空间问题。
- 演员(Actor):
- 任务:学习一个策略。决定在每个状态下应该采取什么动作。(对于DDPG,通常是一个连续的动作)。
- 更新方式:通过 策略梯度(Policy Gradient)更新自己的策略,目的是使得所选动作最大化累积奖励。
- 评论家(Critic):
- 任务:评估演员做出的动作好不好,给演员提供反馈来帮助改进策略。评论家网络计算价值函数,通常是动作值函数Q(s, a),即给定一个状态和动作的情况下,未来的奖励的期望值。
- 更新方式:TD(Temporal Difference)误差 来更新其估计的值函数,以帮助 Actor 评估选择的动作是否有效。
双重神经网络架构:策略函数(Actor)和价值函数(Critic)均使用双重神经网络模型架构(类似于Double DQN)
- 优势:学习过程更加稳定,收敛的速度加快,解决“高估”传播问题。
经验回放机制:Actor 与环境交互生产生的经验数据样本存储到经验池中,抽取批量数据样本进行训练,即类似于 DQN 的经验回放机制。
- 优势:去除样本的相关性和依赖性,使得算法更加容易收敛。
算法流程:
-
初始化:初始化演员网络(Actor Network)、评论家网络(Critic Network)以及它们对应的目标网络和经验回收池。
-
智能体与环境交互:
- 选择动作:根据当前状态 st,演员网络输出一个连续的动作 at。为了提高探索性,DDPG通常在选择动作时加入噪声,从而避免过早收敛到局部最优解,平衡探索与利用。
- 环境反馈:智能体执行动作 at 后,环境返回新的状态st+1 和相应的奖励rt。
- 存储经验:存储当前的经历(st,at,rt,st+1) 到经验回放缓冲区中。
-
经验回放:DDPG会从缓冲区中随机抽取一个小批次的经历{(st,at,rt,st+1)},用来更新网络。
-
🌟更新评论家网络:
-
(🤔评论家网络和DQN网络相似,都用于评估当前状态-动作对的价值)
-
目标Q值:
-
损失函数:(均方误差MSE)(E 等同于 1/n∑)
-
-
🌟更新演员网络:
-
目标是通过最大化Q值来优化策略,使得智能体选择的动作能够带来尽可能高的回报。
-
通过策略梯度的思想,演员网络的更新梯度为:
期望奖励 J(θ) 策略参数 θ
(对J(θ)求 θ 的导,遵循求导链式法则)
-
-
目标网络更新:目标网络是演员和评论家网络的副本,并且更新速度较慢。
-
重复训练
DDPG算法为代码:
如果您觉得对您有帮助,请留下宝贵的赞赞吧🥺,我真的很需要。