强化学习DDPG:Deep Deterministic Policy Gradient解读

1. DDPG

DDPG方法相比于传统的PG算法,主要有三点改进:

A. off-policy策略

传统PG算法一般是采用on-policy方法,其将整体强化学习过程分为多个epoch,在每个epoch完成一次policy模型和value模型更新,同时在每轮epoch都需要根据决策模型重新采样得到该轮的训练样本。

但当同环境交互代价比较高时,这种on-policy的方式效率并不好。因此DDPG提出了一种off-policy的方法,其可以利用历史的样本,假设对于历史样本\{s,a,r,s'\},DDPG的off-policy策略会重新根据当前target policy重新估计价值。

G(s,a)=r + \gamma Q_{\phi _{targ}}(s', \mu_{\theta_{targ} }(s'))

因此DDPG的对于价值预估模型Q_{\phi }(s,a)目标为,B表示从所有历史样本上随机抽取的Batch

J(\phi )=\sum_{(s,a,r,s')\sim B} [Q_{\phi }(s,a) - (r +\gamma Q_{\phi _{targ}}(s', \mu_{\theta_{targ} }(s'))]^2

而传统on-policy策略的目标为,下式中R(s,a)可以是MC采样后累积收益,D表示当前epoch轮的采样结果。

J(\phi )=\sum_{(s,a,r)\sim D} [Q_{\phi }(s,a) - R(s,a)]^2

B. 更复杂的确定性连续动作策略场景建模

传统PG算法是通过一个动作分布\pi(a|s)来建模运作,这种动作分布一般是离散的,或者将动作建模高斯分布,通过一个神经网络拟合分布均值和标准差两个参数。

DDPG采用一个动作生成网络\mu(s)可以输出确定性且连续的动作值。

C. Target Networks

DDPG的off-policy策略会重新根据当前target policy重新估计价值,因此此处的估计值是通过另一个网络Target Networks进行计算的,主要是为了避免直接采用目标优化网络进行预估时,变化太大而影响效果。

传统的DQN会更隔一段时间,整体同步目标优化网络的参数给Target Network。而DDPG采用的是一种更为平滑的方式,帮助Target Network及时适配目标优化网络的参数。

\theta_{targ}=\rho \theta_{targ} + (1-\rho )\theta \\ \phi_{targ}=\rho \phi_{targ} + (1-\rho )\phi

D. Exploration

DDPG是确定性动作决策,所以为了保证探索,DDPG在采样动作后添加了一个高斯噪声,同时添加了截断来避免不合适的动作值。

a=clip(\mu_{\theta }(s)+\epsilon, a_{low}, a_{high}),\ \varepsilon \sim N

DDPG的算法整体流程

强化学习DDPG:Deep Deterministic Policy Gradient解读_第1张图片

 2. Twin Delayed DDPG

Twin Delayed DDPG又被称为TD3算法,其主要在DDPG的基础上做了两点升级:

A. target policy smoothing

前文提到DDPG的off-policy策略会重新根据当前target policy重新估计价值,这里的target policy生成的动作没有加上噪声探索,因为这里只是用于估计价值,而不是要探索。

而TD3算法却对这里的target policy动作加上了噪声,其主要原因是为了正则化,这个正则化操作平滑了训练中可能会出现某些不正确的动作尖峰。

a'(s'|\mu_{\theta_{targ} })=clip(\mu_{\theta_{targ} }(s')+clip(\epsilon, -c, c), a_{low}, a_{high}),\ \varepsilon \sim N

B. clipped double-Q learning

DDPG是基于Q-learning的,其由于是取最大可能性的某个确定动作,因此可能会带来Maxinum偏差(简单理解为由于预估分布的存在,所以最大值一般都会偏移期望值),这个问题可能通过double Q-learning进行解决。

TD3在DDPG的基础上,应用了double Q-learning思路,引入了两个target价值预估模型,分别生成价值预估,并选择其中最小作为最终的预估值。

G_t(s,a)=r + \gamma \text{Max}_i\ Q_{\phi _{targ,i}}(s', a'(s'|\mu_{\theta_{targ} })),\ i=1,2

同时也存在两个目标价值模型:

J(\phi_i )=\sum_{(s,a,r,s')\sim D} [Q_{\phi_i }(s,a) - G(s,a)]^2,\ i=1,2

但是target决策模型只有一组,其也只根据某个一个目标价值模型优化:

J(\theta)=\sum_{(s)\sim D} Q_{\phi_1 }(s,\mu_\theta(s))

TD3的算法整体流程

强化学习DDPG:Deep Deterministic Policy Gradient解读_第2张图片

3. Soft Actor-Critic

由于DDPG只能产出确定性动作,因此Soft Actor Critic (SAC) 实现产出概率性动作决策 stochastic policy,SAC算法相比于TD3主要有两点不同:

A. entropy regularization

entropy regularization熵正则是SAC最核心的内容,因为SAC实现产出概率性动作决策a'\sim \pi(a'|s'),概率性动作决策主要问题是生成动作概率可能过于分散,因此SAC通过熵正则来避免这种情况。

G_t(s,a)=r + \gamma \text{Min}_i\ [Q_{\phi _{targ,i}}(s', a')+\alpha H(\pi(\cdot |s'))],\ i=1,2\\G_t(s,a)=r + \gamma \text{Min}_i\ [Q_{\phi _{targ,i}}(s', a')-\alpha log(\pi(a'|s'))],\ i=1,2

同时policy模型更新目标也添加了熵正则,但是其把两个目标模型都应用了,这个同TD3是不同。

J(\theta)=\sum_{(s,a,r)\sim D} [\text{Min}_i\ Q_{\phi_i }(s,a_\theta )-\alpha log(\pi(a_\theta|s))],\ i=1,2

B. Exploration

SAC由于其动作决策函数是概率的,所以天然有exploration特性,因此对于动作决策模型其并没有target network。另外通过在训练中控制\alpha也可以控制动作决策模型的exploration特性。

强化学习DDPG:Deep Deterministic Policy Gradient解读_第3张图片

 

你可能感兴趣的:(强化学习,人工智能,机器学习,深度学习,强化学习,DDPG)