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+γ(1−d)a′maxQ^(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+γ(1−d)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+γ(1−d)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中目标更新的稳定性。