深度强化学习笔记04【TD3】

TD3
1. 概述

​  Critic的训练有一种常见的失败情形:输出的Q值总是会被高估。这源于Q learning的目标回归拟合方程中存在求解Q的最大值作为回归目标( Q ^ \hat{Q} Q^由target_actor给出):
y = r + γ ( 1 − d ) max ⁡ a ′ Q ^ ( s ′ , a ′ ) y=r+{\gamma}(1-d)\max_{a'}\hat{Q}(s',a') y=r+γ(1d)amaxQ^(s,a)其中 r r r表示当前状态 s s s执行 a a a后得到的reward, γ \gamma γ为折合因子, d d d为布尔值判断本轮训练是否结束, s ′ s' s a ′ a' a分别代表下一状态和下一动作。神经网络的输出总是存在误差,因此选择输出的Q值总是会选择最大的那一个,也就是被高估的Q值。在同一episode中,如果更新步数较大,该误差可能会累积,从而造成训练结果十分不理想。DQN中采用Double DQN(DDQN)解决,用两个critic网络重构目标回归方程,以减小该情形发生的可能:
y = r + γ ( 1 − d ) Q 1 ( s ′ , a r g max ⁡ a Q 2 ( s ′ , a ) ) y=r+\gamma(1-d)Q^1(s',arg\max_{a}{Q^2}(s',a)) y=r+γ(1d)Q1(s,argamaxQ2(s,a))  TD3(twin delayed DDPG)在DDPG的基础上沿用该方法,并额外采用其它两个技巧进行优化:

  • Clipped Double-Q learning:TD3学习两个Q网络而不是DDPG中的一个,并且用两个网络输出Q值中最小的那一个作为贝尔曼方程中的回归拟合目标。
  • “Delayed” Policy Updates:TD3中policy的更新频率低于Q函数的更新频率。原文建议Q函数每更新两次step再更新一次policy。目的是让critic稳定后再更新actor,有助于训练稳定性。
  • Target Policy Smoothing:TD3在目标action中加入随机噪声,通过让Q值随着动作平滑变化,使得policy难以取到高估误差。

笔者理解:神经网络本身就有扰动误差,才会导致其可能会高估Q值,此时再加入人为扰动噪声,且该噪声为裁剪后的标准正态分布,可能会使得原本的Q误差分布进一步正则化,减小高估Q值的可能性。

​  总之,三种技巧的应用提高了基础DDPG的表现性能,并称之为TD3。
  TD3关键点:TD3是一个off-policy算法、只能被用作连续动作空间环境、DDPG应用上述三个技巧就是TD3

2. 算法

​  TD3通过均方贝尔曼误差最小化同时学习两个Q网络: Q ϕ 1 Q_{\phi_1} Qϕ1 Q ϕ 2 Q_{\phi_2} Qϕ2,与DDPG学习单个Q函数的方式几乎相同。为具体展示TD3如何训练以及其与DDPG的区别,由内向外展示其算法:

​  target policy smoothing:被用于Q learning训练目标的actions由基于target actor的policy训练得到: π θ t a r \pi_{\theta_{tar}} πθtar,但会在其中加入裁剪噪声。加入裁剪噪声后,目标action将会在有效action空间(被裁剪后的)内被选择出来:
a ′ ( s ′ ) = c l i p ( π θ t a r + c l i p ( ϵ , − c , c ) , a L o w , a H i g h ) , ϵ ~ N ( 0 , σ ) a'(s')=clip(\pi_{\theta_{tar}}+clip(\epsilon,-c,c),a_{Low},a_{High}),\epsilon~N(0,\sigma) a(s)=clip(πθtar+clip(ϵ,c,c),aLow,aHigh),ϵN(0,σ)target policy smoothing本质上是对算法的正则化。它解决了DDPG中更可能发生的特殊不理想训练情形:神经网络产生的误差一直会高估某些action的Q值,导致训练误差积少成多,严重影响训练结果。这个方法通过平滑相似动作上的Q值来减小该情况的的发生概率。
  clipped double-Q learning:神经网络的误差总是高估Q值的问题总是存在于含有critic网络的算法中。TD3处理逻辑跟DDQN中的不同。TD3是直接选择两个网络中输出的最小Q值作为目标回归拟合方程中的 max ⁡ Q \max{Q} maxQ
y = r + γ ( 1 − d ) min ⁡ i = 1 , 2 Q ϕ i , t a r g ( s ′ , a ′ ( s ′ ) ) y=r+\gamma(1-d)\min_{i=1,2}Q_{\phi_{i,targ}}(s',a'(s')) y=r+γ(1d)i=1,2minQϕi,targ(s,a(s))然后两个网络都通过回归拟合该方程进行更新训练。由此减小出现高估目标Q值的可能。
  最后actor policy通过最大化Q来进行训练: max ⁡ θ E s ~ [ Q ϕ 1 ( s , π θ ( s ) ) ] \max_{\theta}E_{s~}[Q_{\phi_1}(s,\pi_{\theta}(s))] maxθEs[Qϕ1(s,πθ(s))]。与DDPG没有差别,然而在TD3中,policy更新的频率低于Q函数的,这有助于DDPG中目标更新的稳定性。

3. 伪代码

在这里插入图片描述

  • 14
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值