必威体育Betway必威体育官网
当前位置:首页 > IT技术

DPG以及DDPG

时间:2019-06-17 06:43:10来源:IT技术作者:seo实验室小编阅读:79次「手机版」
 

dpg

1、确定性策略梯度(Deterministic policy gradient)DPG

累积折扣奖励

\begin{array}{l}\nabla_\theta J(\pi_\theta)=\int_S\rho^\pi(s)\int_A\pi_\theta(a\vert s)r(s,a)dads\\=E_{s\sim\rho^{\mathrm\pi},a\sim\mathrm\pi^{\mathrm\theta}}\lbrack r(s,a)\rbrack\end{array}

策略梯度

\begin{array}{l}\nabla_\theta J(\pi_\theta)=\int_S\rho^\pi(s)\int_A\nabla_\theta\pi_\theta(a\vert s)Q^\pi(s,a)dads\\=E_{s\sim\rho^{\mathrm\pi},a\sim\mathrm\pi^{\mathrm\theta}}\lbrack\nabla_\theta\log\pi_\theta(a\vert s)Q^\pi(s,a)\rbrack\end{array}

J()和策略梯度与值函数有关

1.1、Actor-critic

Actor是策略网络,做动作选择(空间探索)

Critic是值函数,对策略函数进行评估

TD-error就是Critic告诉Actor的偏差

\begin{array}{l}\delta_t=r_t+\gamma Q^\omega(s_{t+1},\mu_\theta(s_{t+1}))-Q^\omega(s_t,a_t)\\\omega_{t+1}=\omega_t+\alpha_\omega\delta_t\nabla_\omega Q^\omega(s_t,a_t)\\\theta_{t+1}=\theta_t+\alpha_\theta\mu_\theta(s_t)\nabla_\theta Q^\theta(s_t,a_t)\vert_{a=\mu_\theta(s)}\end{array}

将策略梯度的框架扩展到确定性策略,确定性政策梯度定理实际上是随机政策梯度定理的一个极限情况

当概率策略的方差趋近于0的时候,就是确定性策略:

\begin{array}{l}\nabla_\theta J(\mu_\theta)=\int_S\rho^\mu(s)\nabla_\theta\mu_\theta(a\vert s)\nabla_aQ^\mu(s,a)\vert_{a=\mu_\theta(s)}ds\\=E_{s\sim\rho^\mu}\lbrack\nabla_\theta\mu_\theta(s)\nabla Q^\mu(s,a)\vert_{a=\mu_\theta(s)}\rbrack\\\end{array}

1.2 兼容函数近似

兼容数逼近器Q^\omega(s,a):critic Q^\omega(s,a) 使得\nabla_aQ^\mu(s,a)可以用\nabla_aQ^\omega(s,a)替代,而不影响确定性策略梯度

以下定理适用于on-policyE\lbrack\rbrack=E_{s\sim\rho^\mu}\lbrack\rbrack 和 off-policyE\lbrack\rbrack=E_{s\sim\rho^\beta}\lbrack\rbrack

2、深度确定性策略(DDPG)

使用深度神经网络去近似值函数和策略梯度网络

  1. 采用经验回放方法
  2. 采用target目标网络更新(解决训练的网络不稳定问题)
  3. AC框架
  4. 确定性策略梯度

2.1、算法流程图

Actor:输入为状态S,输出为选取的动作Action

Critic:输入为动作Action和状态S,输出为评价(reward)

2.2、算法原理

(1) 初始化

1:随机初始化Actor网络\mu(s\vert\theta^\mu)和Critic网络Q(s,a)

2:初始化target网络,复制actor和critic

3:初始化Replay Buffer R,用于打乱数据间相关性,使得数据独立同分布

(2)训练Episode

5:初始化一个随机的N,相当于action的探索度

6:获得观察到的状态s_1

8:根据策略网络\mu的输出以及探索度N_t(噪音)选择动作a_t

9:执行actiona_t,得到rewardr_t和新状态s_{t+1}

存储和读取Replay Buffer R

10:将序列存储到R

11:再随机批量读取R中序列进行学习

注:由于强化学习过程学习过程的序列之间有相关性,一般batch-size= 64,128,256

更新Critic网络结构

12:定义y_i

13:使用RMSE误差,更新时直接更新值函数的损失

更新Actor网络结构

15:直接更新Actor的策略梯度

更新target网络参数

采用soft updating方式,用\tau延迟更新

相关阅读

分享到:

栏目导航

推荐阅读

热门阅读