DDPG
1.概念
DDPG是基于Actor-Critic 的
Actor-Critic + DQN = Deep Deterministic Pollicy Gradient
1.动作估计网络用来输出实时的动作供actor在现实中实行,动作现实网络是用来更新价值网络系统的
2.状态现实网络和状态估计网络都在输出状态的价值
3.状态现实网络会拿着从动作现实网络的动作+状态的观测值加以分析,状态估计网络会拿着从actor施加过的动作当做输入
一句话概括DDPG,使用的是Actor Critic结构,输出的不是行为的概率,而是具体的行为,用于连续动作的预测,DDPG结合了之前获得成功的DQN结构,提高了Actor Critic的稳定性和收敛性。
2.原理
DDPG是DQN的一个扩展版本
- 在DDPG中,它借鉴了DQN的技巧:目标网络和经验回放
- 经验回放这块跟DQN是一样的,但target network这块的更新与DQN是不一样的。
提出DDPG是为了让DQN扩展到连续的动作空间 - DDPG在DQN的基础上加了一个策略网络来直接输出动作值,所以DDPG需要一边学习Q网络,一边学习策略网络
- Q网络的参数用w来表示,策略网络的参数用θ来表示
- 我们也称这种模式为actor-critic模式
DDPG实际上就是Actor Critic
这是Actor部分:前半部分grad[Q]是从Critic来的(这次Actor的动作要怎么移动,才能获得最大的Q),后半部分grad[Q]是从Actor来的(这次Actor要怎么修改自身的参数,才能使Actor更有可能做这个动作),总的来说,就是Actor要朝着更有可能获得更大的Q的方向修改。
这是Critic更新部分:借鉴了DQN和Double Q learning的方式,有两个计算Q的神经网络,Q_target中依据下一状态,用Actor来选择动作,而这时的Actor也是一个Actor_target(有着Actor很久之前的参数),使用这种方法获得的Q_target能像DQN那样切断相关性,提高收敛性
总结:
- Actor当前网络:负责策略网络参数θ的迭代更新,负责根据当前状态S选择当前动作A,用于和环境交互生成S’,R
- Actor目标网络:负责根据经验回放池中采样的下一状态S‘, 选择最优下一动作A’,网络参数θ定期从θ复制
- Critic当前网络:负责价值网络参数w的更新迭代,负责计算当前Q值Q(S,A,w),目标Q值yi=R+γQ ′ (S ′ ,A ′ ,w ′ )
- Critic目标网络:负责计算目标Q值中的Q’(S’,A’,w’)
3.DDPG算法流程
伪代码
输入:Actor当前网络(参数θ),Actor目标网络(参数θ‘),Critic当前网络(参数w),Critic目标网络(参数w’),衰减因子γ,批量梯度下降的样本数m,目标Q网络参数更新频率C,最大迭代次数T,
输出:最优actor当前网络参数θ,critic当前网络参数w
- 随机初始化θ,w,w’=w,θ’=θ,清空经验回放的集合D
- for i from 1 to T,,进行迭代
- 初始化S为当前状态序列的第一个状态,拿到其特征向量ϕ(S)
- 在Actor当前网络基于状态S得到动作A=π
θ (ϕ(S))+N - 执行动作A,得到新状态S‘,奖励R,是否终止状态
- 将{ϕ(S),A,R,ϕ(S ’ ),is_end}这个五元组存入经验回放集合D中
- S=S‘
- 从经验回放集合D中采样m个样本{ ϕ ( S j ) , A j , R j , ϕ ( S j ′ ) , i s _ e n d j } , j = 1 , 2 , . . . , m 计算当前的目标Q值yj:
- 使用均方差损失函数
通过神经网络的梯度反向传播来更新Critic当前网络中的所有参数w - 使用
通过神经网络的梯度反向传播来更新Actor当前网络中的所有参数θ - 如果T%C=1, 则更新Critic目标网络和Actor目标网络参数
- 如果S’是终止状态,当前轮迭代完毕,否则转到(2)
以上就是DDPG算法的主流程
参考链接:
https://blog.csdn.net/kenneth_yu/article/details/78478356
https://datawhalechina.github.io/leedeeprl-notes/#/chapter12/chapter12?id=ddpgdeep-deterministic-policy-gradient
https://blog.csdn.net/sdu_hao/article/details/108467334?ops_request_misc=&request_id=&biz_id=102&utm_term=DDPG%25E6%25B5%2581%25E7%25A8%258B%25E8%258E%25AB%25E7%2583%25A6&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1-108467334.pc_search_result_no_baidu_js
论文地址:
https://arxiv.org/pdf/1509.02971.pdf