浅谈TD3:从算法原理到代码实现

本文深入浅出地介绍了强化学习中的TD3算法,从其提出的背景和改进点,到算法核心思路,再到代码实现的详细步骤。TD3作为DDPG的优化版本,通过使用双Critic网络、软更新、策略噪音和延迟学习等策略,有效解决了DDPG中的问题,提高了学习效率和结果质量。
摘要由CSDN通过智能技术生成

本文首发于:行者AI

众所周知,在基于价值学习的强化学习算法中,如DQN,函数近似误差是导致Q值高估和次优策略的原因。我们表明这个问题依然在AC框架中存在,并提出了新的机制去最小化它对演员(策略函数)和评论家(估值函数)的影响。我们的算法建立在双Q学习的基础上,通过选取两个估值函数中的较小值,从而限制它对Q值的过高估计。(出自TD3论文摘要)

1. 什么是TD3

TD3是Twin Delayed Deep Deterministic policy gradient algorithm的全称。TD3全称中Deep Deterministic policy gradient algorithm就是DDPG的全称。那么DDPG和TD3有何渊源呢?其实简单的说,TD3是DDPG的一个优化版本。

1.1 TD3为什么被提出

在强化学习中,对于离散化的动作的学习,都是以DQN为基础的,DQN则是通过的 a r g M a x Q t a b l e argMaxQ_{table} argMaxQtable的方式去选择动作,往往都会过大的估计价值函数,从而造成误差。在连续的动作控制的AC框架中,如果每一步都采用这种方式去估计,导致误差一步一步的累加,导致不能找到最优策略,最终使算法不能得到收敛。

1.2 TD3在DDPG的基础上都做了些什么
  • 使用两个Critic网络。使用两个网络对动作价值函数进行估计,(这Double DQN 的思想差不多)。在训练的时候选择 m i n ( Q θ 1 ( s , a ) , Q θ 2 ( s , a ) ) min(Q^{\theta1}(s,a),Q^{\theta2}(s,a)) min(Qθ1(s,a),Qθ2(s,a))作为估计值。

  • 使用软更新的方式 。不再采用直接复制,而是使用 θ = τ θ ′ + ( 1 − τ ) θ \theta = \tau\theta^′ + (1 - \tau)\theta θ=τθ+(1τ)θ的方式更新网络参数。

  • 使用策略噪音。使用Epsilon-Greedy在探索的时候使用了探索噪音。(还是用了策略噪声,在更新参数的时候,用于平滑策略期望)

  • 使用延迟学习。Critic网络更新的频率要比Actor网络更新的频率要大。

  • 使用梯度截取。将Actor的参数更新的梯度截取到某个范围内。

2. TD3算法思路


TD3算法的大致思路,首先初始化3个网络,分别为 Q θ 1 , Q θ 2 , π ϕ Q_{\theta1},Q_{\theta2},\pi_\phi Qθ1,Qθ2,πϕ ,参数为 θ 1 , θ 2 , ϕ \theta_1,\theta_2,\phi θ1,θ

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值