DDPG

DDPG(Deep Deterministic Policy Gradient)

离散动作 v.s. 连续动作

动作空间的可数性,很好理解。例如,离散:只有上下左右四个动作;连续:方向盘转多少度

随机策略 v.s. 确定性策略

  • 对随机性的策略来说,输入某一个状态 s,采取某一个 action 的可能性并不是百分之百,而是有一个概率 P 的,就好像抽奖一样,根据概率随机 sample 一个动作。
  • 而对于确定性的策略来说,它没有概率的影响。当神经网络的参数固定下来了之后,输入同样的 state,必然输出同样的 action,这就是确定性的策略。

在这里插入图片描述

常见的处理:

  • 随机性策略神经网络的输出会加上 softmax 层, s o f t m a x f u n c t i o n ≜ σ ( z j ) = e z j ∑ k = 1 K e z k softmax function \triangleq \sigma(z_j) = \frac{e^{z_j}}{\sum_{k=1}^K e^{z_k}} softmaxfunctionσ(zj)=k=1Kezkezj​ 以保证所有的动作概率和为1
  • 确定性策略神经网络的输出先加一层 t a n h tanh tanh 保证输出的范围是 [-1, 1],再经过缩放之后变成真实的 action

DDPG

imgimg

  • Deterministic 直接输出确定性动作
  • 策略更新是单步的
  • 策略网络参数是 θ \theta θ​ ,Q 网络参数是 w w w
  • 称这样的结构为 Actor-Critic 的结构。

在这里插入图片描述

优化:

  1. DQN只需优化Q网络,且类似于一个 regression problem l o s s = M S E ( Q ^ , Q t a r g e t ) loss = MSE(\hat{Q},Q_{target}) loss=MSE(Q^,Qtarget)
  2. DDPG需要优化策略网络和Q网络
    1. 策略网络就是为了最大化Q值,所以 l o s s = − Q loss = -Q loss=Q
    2. Q网络的优化和DQN一样

Trick: target network + Replay Memory

在这里插入图片描述
注意,因为 DDPG 使用了经验回放这个技巧,所以 DDPG 是一个 off-policy 的算法。

Exploration v.s. Exploitation

DDPG 通过 off-policy 的方式来训练一个确定性策略。因为策略是确定的,如果 agent 使用同策略来探索,在一开始的时候,它很可能不会尝试足够多的 action 来找到有用的学习信号。为了让 DDPG 的策略更好地探索,我们在训练的时候给它们的 action 加了噪音(通常是均值为0的 gaussian noise)。但是测试的时候就不会加噪声了

Twin Delayed DDPG(TD3) “双”“延迟”深度确定性策略网络

虽然 DDPG 有时表现很好,但它在超参数和其他类型的调整方面经常很敏感。DDPG 常见的问题是已经学习好的 Q 函数开始显著地高估 Q 值,然后导致策略被破坏了,因为它利用了 Q 函数中的误差。

解决方法:引入三个技巧

  1. “双”:**截断的双Q学习(clipped double Q-learning):**TD3 学习两个 Q-function(因此名字中有 “twin”)。TD3 通过 minimize MSE 来同时学习两个 Q-function: Q ϕ 1 Q_{\phi_1} Qϕ1 Q ϕ 2 Q_{\phi_2} Qϕ2​​。两个 Q-function 都使用一个 target,两个 Q-function 中给出较小的值会被作为如下的 Q-target:
    Q t a r g e t ( r , s ′ , d ) = r + γ ( 1 − d ) min ⁡ i = 1 , 2 Q ϕ i , t a r g e t ( s ′ , a T D 3 ( s ′ ) ) Q_{target}(r,s',d) = r + \gamma (1-d) \underset{i=1,2}{\operatorname{min}}Q_{\phi_i,target}\left(s',a_{TD3}(s')\right) Qtarget(r,s,d)=r+γ(1d)i=1,2minQϕi,target(s,aTD3(s))

  2. “延迟”:延迟的策略更新(“Delayed” Policy Updates):相关实验结果表明,同步训练动作网络和评价网络,却不使用目标网络,会导致训练过程不稳定;但仅固定动作网络时,评价网络往往能够收敛到正确的结果。因此 TD3 算法以较低的频率更新动作网络,较高频率更新评价网络,通常每更新两次评价网络才更新一次策略。

  3. 目标策略平滑(Target Policy smoothing):TD3 引入了 smoothing 的思想。TD3 在目标动作中加入噪音,通过平滑 Q 沿动作的变化,使策略更难利用 Q 函数的误差。工作原理如下:
    a TD3 ⁡ ( s ′ ) = clip ⁡ ( μ θ , t a r g e t ( s ′ ) + clip ⁡ ( ϵ , − c , c ) , a l o w , a h i g h ) a_{\operatorname{TD3}}(s') = \operatorname{clip}\left( \mu_{\theta,target}(s')+\operatorname{clip}(\epsilon, -c, c), a_{low}, a_{high} \right) aTD3(s)=clip(μθ,target(s)+clip(ϵ,c,c),alow,ahigh)
    其中 ϵ 本质上是一个噪声,是从正态分布中取样得到的,即 ϵ ∼ N ⁡ ( 0 , σ ) \epsilon \sim \operatorname{N}(0,\sigma) ϵN(0,σ)​​​

TD3 的作者给出了对应的实现:TD3 Pytorch implementation

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值