强化学习—— Twin delay deep deterministic policy gradient(TD3算法)

1 算法原文流程

在这里插入图片描述

2 算法核心技巧

2.1 累计误差

Q θ ( s t , a t ) = r t + γ ⋅ E [ Q θ ( s t + 1 , a t + 1 ) ] − δ ( s t , a t ) Q_\theta(s_t,a_t)=r_t + \gamma \cdot E[Q_\theta(s_ {t+1},a_{t+1})]-\delta(s_t,a_t) Qθ(st,at)=rt+γE[Qθ(st+1,at+1)]δ(st,at)
展开后得到:
Q θ ( s t , a t ) = E s i ∼ p π , a i ∼ π [ ∑ i = 1 T γ i ⋅ ( r i − δ i ) ] Q_\theta(s_t,a_t)=E_{s_i \sim p_\pi ,a_i \sim \pi}[\sum_{i=1}^T \gamma_i \cdot(r_i - \delta_i)] Qθ(st,at)=Esipπ,aiπ[i=1Tγi(riδi)]
所以动作价值的估计函数学习的目标是累计回报与TD error之差的期望。

2.2 clipped Double Q-learning

y 1 = r + γ ⋅ m i n i = 1 , 2 Q θ i ′ ( s ′ , π ϕ 1 ( s ′ ) ) y_1 = r+\gamma\cdot min_{i=1,2}Q_{\theta _ i^{'}}(s^{'},\pi_{\phi _1}(s^{'})) y1=r+γmini=1,2Qθi(s,πϕ1(s))

  • 避免高估,可能引入低估,但低估比高估要好。

2.3 Target Network

使用了两个动作价值网络和一个策略网络,对应于三个Target 网络。
Q θ 1 ← Q θ 1 ′ Q_{\theta_1}\gets Q_{\theta_1^{'}} Qθ1Qθ1
Q θ 2 ← Q θ 2 ′ Q_{\theta_2}\gets Q_{\theta_2^{'}} Qθ2Qθ2
π ϕ ← π ϕ ′ \pi_{\phi}\gets \pi_{\phi^{'}} πϕπϕ

  • 使用两个动作价值网络,是为了进一步降低高估
  • 使用一个策略网络是为了简化计算

2.4 Delayed Policy Updates

  • 策略网络在高误差状态下进行更新容易得到发散的动作
  • 策略网络应该以低于价值网络更新的频率进行更新
  • 直到价值网络的误差尽可能低时再更新策略网络
  • TD-error较小时在对target网络的参数进行更新

2.5 Target Policy Smoothing Regularization

  • 为了避免确定策略网络过度拟合窄峰值,即避免近似误差造成的不精确问题(避免增大方差)
  • 相似的动作应该有相似的动作价值
    y = r + γ ⋅ Q θ ′ ( s ′ , π ϕ ′ ( s ′ ) + ϵ ) y = r + \gamma \cdot Q_{\theta^{'}}(s^{'},\pi_{\phi^{'}}(s^{'})+\epsilon) y=r+γQθ(s,πϕ(s)+ϵ)
    ϵ ∼ c l i p ( N ( 0 , δ ) , − c , c ) \epsilon \sim clip(N(0,\delta),-c,c) ϵclip(N(0,δ),c,c)

3 算法计算步骤

  1. 初始化价值网络 Q θ 1 Q_{\theta_1} Qθ1 Q θ 2 Q_{\theta_2} Qθ2,初始化策略网络 π ϕ \pi_{\phi} πϕ,并随机初始化其中的参数

  2. 初始化Target网络中的参数 θ 1 ′ ← θ 1 \theta_1^{'}\gets \theta_1 θ1θ1 θ 2 ′ ← θ 2 \theta_2^{'}\gets \theta_2 θ2θ2 ϕ ′ ← ϕ \phi^{'}\gets \phi ϕϕ

  3. 初始化replay buffer

  4. for t=1 to T do:
    --------选择动作并加入探索性: a ∼ π ϕ ( s ) + ϵ a\sim \pi_{\phi}(s)+\epsilon aπϕ(s)+ϵ 其中 ϵ ∼ N ( 0 , δ ) \epsilon \sim N(0,\delta) ϵN(0,δ)
    --------得到奖励 r r r,并得到下一时刻的状态 s ′ s^{'} s
    --------将transition ( s , a , r , s ′ ) (s,a,r,s^{'}) (s,a,r,s)存入replay buffer
    -------- 从replay buffer中随机采样一个batch
    -------- a ^ ∼ π ϕ ′ ( s ′ ) + ϵ \hat{a}\sim \pi_{\phi^{'}}(s^{'})+\epsilon a^πϕ(s)+ϵ 其中 ϵ ∼ c l i p ( N ( 0 , δ ) , − c , c ) \epsilon \sim clip(N(0,\delta),-c,c) ϵclip(N(0,δ),c,c)
    -------- y = r + γ ⋅ m i n i = 1 , 2 Q θ i ′ ( s ′ , a ^ ) y = r+\gamma\cdot min_{i=1,2}Q_{\theta _ i^{'}}(s^{'},\hat{a}) y=r+γmini=1,2Qθi(s,a^)
    --------更新价值网络 θ i ∼ a r g m i n θ i N − 1 ∑ ( y − Q θ i ( s , a ) ) 2 \theta_i \sim argmin_{\theta_i}N^{-1}\sum{(y-Q_{\theta_i}(s,a))^2} θiargminθiN1(yQθi(s,a))2
    -------- if t % d then :
    ----------------依据确定策略梯度更新策略网络:
    ---------------- ▽ J ϕ ( ϕ ) = N − 1 ∑ ▽ a Q θ 1 ( s , a ) ⋅ ▽ ϕ π ϕ ( s ) \bigtriangledown J_\phi(\phi)=N^{-1}\sum\bigtriangledown_a Q_{\theta_1}(s,a)\cdot\bigtriangledown _\phi \pi_\phi(s) Jϕ(ϕ)=N1aQθ1(s,a)ϕπϕ(s)
    ---------------- 更新Target network
    ---------------- θ 1 ′ ← τ ⋅ θ 1 + ( 1 − τ ) ⋅ θ 1 ′ \theta_1^{'}\gets \tau \cdot \theta_1 + (1-\tau)\cdot \theta_1^{'} θ1τθ1+(1τ)θ1
    ---------------- θ 2 ′ ← τ ⋅ θ 2 + ( 1 − τ ) ⋅ θ 2 ′ \theta_2^{'}\gets \tau \cdot \theta_2 + (1-\tau)\cdot \theta_2^{'} θ2τθ2+(1τ)θ2
    ---------------- ϕ ′ ← τ ⋅ ϕ + ( 1 − τ ) ⋅ ϕ ′ \phi^{'}\gets \tau \cdot \phi + (1-\tau)\cdot \phi^{'} ϕτϕ+(1τ)ϕ

    By CyrusMay 2022.08.23

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Deep Deterministic Policy Gradient(DDPG)是一种基于深度神经网络的强化学习算法。它是用来解决连续控制问题的,即输出动作的取值是连续的。DDPG是在DPG(Deterministic Policy Gradient)的基础上进行改进得到的,DPG是一种在连续动作空间中的直接求导策略梯度的方法。DDPG和DPG都属于策略梯度算法的一种,与其他策略梯度算法(如REINFORCE)的不同之处在于,DPG和DDPG都是基于偏微分方程的直接求导,而不是蒙特卡罗方法进行计算。DDPG使用一个确定性策略来生成动作,但同时使用一个噪声过程来扰动输出的动作,以产生更多的状态动作样本。这样一来,DDPG就具有了良好的探索能力,使得它在解决复杂的连续动作问题时能取得较好的效果。 ### 回答2: 深度确定性策略梯度(Deep Deterministic Policy Gradient,DDPG)是一种用于解决深度强化学习问题的方法。 DDPG是基于确定性策略梯度(Deterministic Policy Gradient,DPG)的算法,可以在连续动作空间下进行强化学习。与传统的策略梯度方法不同,DDPG直接学习确定性策略,在给定状态下选择最优的动作。 DDPG主要由两个网络组成:一个是Actor网络,用于学习确定性策略;另一个是Critic网络,用于估计状态-动作对的Q值。Actor网络根据当前状态选择动作,Critic网络根据当前状态和动作的组合估计其对应的Q值。通过不断地交互环境、收集数据和更新网络参数,DDPG算法逐渐优化确定性策略和Q值估计,以使得智能体在环境中获得更高的累积奖励。 DDPG算法的核心思想是通过使用Experience Replay和目标网络来提高学习的稳定性和收敛性。Experience Replay将智能体与环境的交互经验存储在一个经验回放缓冲区中,然后从中随机采样进行训练;目标网络通过延迟更新目标网络的方式,减小训练中的目标值变动,从而提高算法的稳定性。 DDPG算法在解决连续控制任务中表现出良好的性能和收敛性,可以应用于机器人控制、无人驾驶、金融交易等复杂任务中。然而,DDPG算法也存在一些挑战和问题,如对超参数的敏感性、样本效率较低等,这些问题是DDPG算法持续改进的方向之一。 ### 回答3: Deep Deterministic Policy Gradient(DDPG)是一种用于连续动作空间的深度强化学习算法。它结合了深度神经网络和确定性策略梯度的优势,可以应用于诸如机器人控制和金融投资等领域。 DDPG算法的核心思想是通过在连续动作空间中学习一个行动者-评论家系统。行动者使用确定性策略,即给定状态输出一个具体的动作,而评论家则评估行动者的动作质量。这两个网络都是用深度神经网络来表示,并通过梯度下降来进行优化。 在训练过程中,DDPG使用了经验回放缓冲区来存储之前的转换并随机采样进行训练。这样做可以解决样本相关性和非稳定性问题。同时,为了保持算法的探索性,DDPG采用了一个目标网络,用于与主网络进行定期的软更新。 DDPG的优点在于能够处理连续动作空间,通过近似价值函数和策略函数,对高维、非线性状态空间进行建模。此外,DDPG还有很好的收敛性和稳定性,可以在复杂任务中取得较好性能。 然而,DDPG也存在一些挑战。由于使用了神经网络近似值函数,对网络结构的选择和超参数的调整都非常重要。此外,训练过程中可能会出现训练不稳定的问题,需要进行合适的技巧和调整。 总结来说,DDPG是一种深度强化学习算法,适用于连续动作空间的问题。通过结合确定性策略梯度和深度神经网络的优势,DDPG能够解决高维、非线性状态空间的问题,并在复杂任务中取得好的性能。然而,对网络结构和超参数的选择需要仔细调整,且训练过程中可能存在稳定性问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值