本专栏按照 https://lilianweng.github.io/lil-log/2018/04/08/policy-gradient-algorithms.html 顺序进行总结 。
D D P G \color{red}DDPG DDPG :[ paper:continuous control with deep reinforcement learning | code ]
原理解析
总体概述
之所以使用确定性策略的原因是相对与随机策略,就是因为数据的采样少,算法效率高,深度确定性策略就是使用了深度神经网络去近似值函数和策略梯度网络。总结一下DDPG算法使用以下核心思想:
(1)采用经验回放方法
(2)采用target目标网络更新(为什么要用target网络?因为训练的网络特别不稳定)
(3)AC框架
(4)确定性策略梯度
DDPG 算法流程图

算法采用 AC 框架,Actor获取状态 s s s , s s s 可以是一组向量(速度,位置等),经过 Actor 网络选取动作 action,Critic 根据动作action 和 s s s 进行评价,采用策略梯度最终更新两个网络的权重。
细节实现
是一个结合了DPG以及DQN的无模型离线演员-评论家算法。回忆一下,DQN(深度Q网络)通过经验回访以及冻结目标网络(设置独立的目标网络)的方式来稳定Q函数的训练过程。原始的DQN算法只能在离散的动作空间上使用,DDPG算法在学习一个确定性策略的同时通过演员-评论家框架将其扩展到连续的动作空间中。
回顾 DQN
算法流程

流程图

DDPG的经验回放和DQN完全相同;
下面介绍DQN中的独⽴⽬标⽹络。
DPG的更新过程如下:


其中 a t + 1 = μ θ ( s t + 1 ) a_{t+1} = {\mu _\theta }(s_{t+1}) at+1=μθ(st+1),上述式子的目标值: r t + γ Q w ( s t + 1 , a t + 1 ) r_t + \gamma Q^w(s_{t+1},a_{t+1}) rt+γQw(st+1,at+1)
需要修改的是 式子中的 ω \omega ω 和 θ \theta θ ,将其单独拿出来,利用独立的网络进行更新,DDPG的更新公式如下所示:

引入了DDPG,接下来从下面几个要点介绍一下。
先来总结下DDPG 4个网络的功能定位:
-
Actor当前网络:负责策略网络参数 θ θ θ 的迭代更新,负责根据当前状态 S S S 选择当前动作 A A A ,用于和环境交互生成 S ′ , R S′,R S′,R 。
-
Actor目标网络:负责根据经验回放池中采样的下一状态 S ′ S′ S′ 选择最优下一动作 A ′ A′ A′ 。网络参数 θ ′ θ′ θ′ 定期从 θ θ θ 复制。
-
Critic当前网络:负责价值网络参数 w w w 的迭代更新,负责计算当前 Q Q Q 值 Q ( S , A , w ) Q(S,A,w) Q(S,A,w) 。目标 Q Q Q 值 y i = R + γ Q ′ ( S ′ , A ′ , w ′ ) yi=R+γQ′(S′,A′,w′) yi=R+γQ′(S′,A′,w′)
-
Critic目标网络:负责计算目标 Q Q Q 值中的 Q ′ ( S ′ , A ′ , w ′ ) Q′(S′,A′,w′) Q′(S′,A′,w′) 部分。网络参数 w ′ w′ w′ 定期从

本文详细介绍了深度确定性策略梯度(DDPG)算法,该算法结合了DPG和DQN的思想,用于连续动作空间的深度强化学习。DDPG通过经验回放、目标网络和Actor-Critic框架,解决了数据采样少和策略更新不稳定的问题。文章涵盖了DDPG的原理、网络结构、更新过程,并提供了PyTorch实现的代码示例。

2045

被折叠的 条评论
为什么被折叠?



