- 论文链接:https://arxiv.org/pdf/1511.06581.pdf
- 论文题目:Dueling Network Architectures for Deep Reinforcement Learning
Dueling Network
Abstract
本文提出一种新的网络结构用于model-free强化学习。我们的对抗网络分别表达了两个估计量:一个是状态价值函数,一个是依附于状态的动作优势函数。这个因式分解的主要好处是在于对潜在的强化学习算法不施加任何改变的情况下,泛化了对于actions的学习。
1. Introduction
这里我们使用一种可替换的互补的方法来创新一种新的神经网络结构,更加适用于model-free RL。这个方法的好处在于新的网络可以与现存的未来的RL算法兼容。
该网络我们命名为dueling architecture,分别对state values和action advantages进行了表达。如图1,对抗网络有两个分支,同时共享同一个卷积特征学习模块。两个分支通过一个特殊的聚合层结合起来生成最终的state-action value function Q。
图1. 上面是单分支Q网络,下面是本文网络结构
直观上讲,对抗结构能够在脱离action影响下学习到哪个state是有价值的。这尤其在actions并不会对env产生影响的states有帮助,例如图2例子,就不重复赘述了。
2. Background
考虑一个序列制定决策步骤,一个agent在离散时间步上与env
E
\mathcal E
E交互。在Atari领域中,例如,一个agent要理解一段包含M帧图像的视频
s
t
s_t
st:
s
t
=
(
x
t
−
M
+
1
,
.
.
.
,
x
t
)
∈
S
s_t=(x_{t-M+1},...,x_t) \in \mathcal S
st=(xt−M+1,...,xt)∈S。agent从一个离散集合
a
t
∈
A
=
{
1
,
.
.
.
,
∣
A
∣
}
a_t \in \mathcal A=\{1,...,|\mathcal A|\}
at∈A={1,...,∣A∣}选择action,然后再从游戏模拟器中观察到reward
r
t
r_t
rt。
agent追求最大的期望折扣回报,
R
t
=
∑
τ
=
t
∞
γ
τ
−
t
r
τ
R_t=\sum^\infty_{\tau=t}\gamma^{\tau-t}r_\tau
Rt=∑τ=t∞γτ−trτ。
对于agent行为,我们有定义:
(1)
Q
π
(
s
,
a
)
=
E
[
R
t
∣
s
t
=
s
,
a
t
=
a
,
π
]
,
V
π
(
s
)
=
E
a
∼
π
[
Q
π
(
s
,
a
)
]
\begin{aligned} Q^{\pi}(s,a) &=\mathbb E[R_t|s_t=s,a_t=a,\pi],\\ V^{\pi}(s) &=\mathbb E_{a\thicksim\pi}[Q^{\pi}(s,a)] \tag 1 \end{aligned}
Qπ(s,a)Vπ(s)=E[Rt∣st=s,at=a,π],=Ea∼π[Qπ(s,a)](1)
我们还定义了另一个重要的东西,优势函数,跟价值函数还有Q函数有关:
(3)
A
π
(
s
,
a
)
=
Q
π
(
s
,
a
)
−
V
π
(
s
)
A^{\pi}(s,a) = Q^{\pi}(s,a)-V^{\pi}(s) \tag 3
Aπ(s,a)=Qπ(s,a)−Vπ(s)(3)
注意这里
E
a
∼
π
[
A
π
(
s
,
a
)
]
=
0
\mathbb E_{a\thicksim\pi}[A^{\pi}(s,a)]=0
Ea∼π[Aπ(s,a)]=0。直观上理解就是,价值函数V评估在这个特定state s的好坏程度。然而,Q函数评估在该state选择特定action的价值。那么优势函数就等于得到一个相对的对于每个action重要性的评估。
2.1 Deep Q-networks
之前章节描述的价值函数是一个高维的对象。为了逼近它,我们可以使用DQN:
Q
(
s
,
a
;
θ
)
Q(s,a;\theta)
Q(s,a;θ)。为了评估这个网络,在每个iter i,我们优化下面的损失函数:
(4)
L
i
(
θ
i
)
=
E
s
,
a
,
r
,
s
′
[
(
y
i
D
Q
N
−
Q
(
s
,
a
;
θ
i
)
)
2
]
L_i(\theta_i)=\mathbb E_{s,a,r,s'}[(y^{DQN}_i-Q(s,a;\theta_i))^2] \tag 4
Li(θi)=Es,a,r,s′[(yiDQN−Q(s,a;θi))2](4)
这里
(5)
y
i
D
Q
N
=
r
+
γ
max
a
′
Q
(
s
′
,
a
′
;
θ
−
)
y^{DQN}_i=r+\gamma\max_{a'}Q(s',a';\theta^-) \tag 5
yiDQN=r+γa′maxQ(s′,a′;θ−)(5)
这里
θ
−
\theta^-
θ−表示一个固定参数的单独的target network。我们可以使用一般的Q-learning来在线学习网络的参数,然而实际应用发现效果不好。需要引入fixed Q-target,也就是对于目标网络
Q
(
s
′
,
a
′
;
θ
−
)
Q(s',a';\theta^-)
Q(s′,a′;θ−)的参数每固定个iter才进行更新。(这大大提高了算法的稳定性)梯度更新如下:
∇
θ
i
L
i
(
θ
i
)
=
E
s
,
a
,
r
,
s
′
[
(
y
i
D
Q
N
−
Q
(
s
,
a
;
θ
i
)
)
∇
θ
i
Q
(
s
,
a
;
θ
i
)
]
\nabla_{\theta_i}L_i(\theta_i)=\mathbb E_{s,a,r,s'}[(y^{DQN}_i-Q(s,a;\theta_i))\nabla_{\theta_i}Q(s,a;\theta_i)]
∇θiLi(θi)=Es,a,r,s′[(yiDQN−Q(s,a;θi))∇θiQ(s,a;θi)]
这个方法是model free的,也就是states和reward由环境产生。同时它是一个off-policy,因为states和rewards是通过epsilon贪心策略得到的,这与online policy不同。
另一个DQN关键的成功因子是experience replay。Experience replay通过样本的重复利用增加了数据的有效性,更重要的是减少了方差,同时也减少了用于更新的样本之间的相关性。
2.2 Double Deep Q-networks
除了fixed Q-target和experience replay,我们还使用了Double DQN(DDQN)学习算法。在Q-learning和DQN里,max操作在选择action和评估action的是时候使用的是同一个值。这会导致价值的过分估计。为了减轻这个问题,Double DQN使用下面的target:
(6)
y
i
D
D
Q
N
=
r
+
γ
Q
(
s
′
,
arg
max
a
′
Q
(
s
′
,
a
′
;
θ
i
)
;
θ
−
)
y^{DDQN}_i=r+\gamma Q(s',\arg\max_{a'}Q(s',a';\theta_i);\theta^-) \tag 6
yiDDQN=r+γQ(s′,arga′maxQ(s′,a′;θi);θ−)(6)
2.3 Prioritized Replay
近期提出的带优先级的experience replay在DDQN的基础上进一步提升了state-of-the-art。核心思想是增加拥有高预期学习进度(通过TD-error的绝对值来评估)的样本tuples。这会加快训练,同时取得更好的结果。
强调一点是,我们的对抗框架与这些算法创新是互补的,都提高了一般experience replay和带优先的baselines。
3. The Dueling Network Architecture
我们新框架的核心思想就是,在很多states,其实action的选择估计是没有必要的。对于bootstrapping based的算法,每个state的state value的估计都是很重要的。
为了构建对抗网络,我们设计了一个single Q网络,如图1。底层和原始的DQNs一样使用卷积层,只是将后续的单一全连接层,换成两分支全连接层。一个预测state value,一个预测优势函数。最后再结合起来成为Q-value。
因为对抗网络的输出是Q函数,所以可以使用很多现成的算法来训练,如DDQN和SARSA。
合并分支的全连接层需要精心设计。
由公式(1),我们有
E
a
∼
π
[
A
π
(
s
,
a
)
]
=
0
\mathbb E_{a\thicksim\pi}[A^{\pi}(s,a)]=0
Ea∼π[Aπ(s,a)]=0。此外,对于确定policy,
a
∗
=
arg
max
a
′
∈
A
Q
(
s
,
a
′
)
a^*={\arg\max}_{a'\in \mathcal A}Q(s,a')
a∗=argmaxa′∈AQ(s,a′),那么我们有
Q
(
s
,
a
∗
)
=
V
(
s
)
Q(s,a^*)=V(s)
Q(s,a∗)=V(s),因此
A
(
s
,
a
∗
)
=
0
A(s,a^*)=0
A(s,a∗)=0。
如图1,一个分支输出的是一个标量
V
(
s
;
θ
,
β
)
V(s;\theta,\beta)
V(s;θ,β),另一个分支输出的是一个
∣
A
∣
|\mathcal A|
∣A∣维的向量
A
(
s
,
a
;
θ
,
α
)
A(s,a;\theta,\alpha)
A(s,a;θ,α)。
使用优势函数定义,我们尝试构建一个聚合模块:
(7)
Q
(
s
,
a
;
θ
,
α
,
β
)
=
V
(
s
;
θ
,
β
)
+
A
(
s
,
a
;
θ
,
α
)
Q(s,a;\theta,\alpha,\beta)=V(s;\theta,\beta)+A(s,a;\theta,\alpha) \tag 7
Q(s,a;θ,α,β)=V(s;θ,β)+A(s,a;θ,α)(7)
这里是一个标量和向量的加法,需要用到广播。
然而,我们需要注意的是
Q
(
s
,
a
;
θ
,
α
,
β
)
Q(s,a;\theta,\alpha,\beta)
Q(s,a;θ,α,β)仅仅是对真实Q函数的参数化估计。据此,我们是无法得到
V
(
s
;
θ
,
β
)
V(s;\theta,\beta)
V(s;θ,β)是一个对于state-value函数的好的估计,同样
A
(
s
,
a
;
θ
,
α
)
A(s,a;\theta,\alpha)
A(s,a;θ,α)是一个对于优势函数的合理估计。
这是因为方程7是无法辨识的,也就是给定Q,我们无法复原到V和A。很容易理解,如果对于V加上一个常数,对A的某个值减去一相同常数,会得到相同的值。缺乏辨识度会直接反映在实际效果上(poor)。
为了解决这个问题,我们强制使被选择到的action的优势函数为0:
(8)
Q
(
s
,
a
;
θ
,
α
,
β
)
=
V
(
s
;
θ
,
β
)
+
(
A
(
s
,
a
;
θ
,
α
)
−
max
a
′
∈
∣
A
∣
A
(
s
,
a
′
;
θ
,
α
)
)
Q(s,a;\theta,\alpha,\beta)=V(s;\theta,\beta)+(A(s,a;\theta,\alpha)-\max_{a'\in|\mathcal A|}A(s,a';\theta,\alpha)) \tag 8
Q(s,a;θ,α,β)=V(s;θ,β)+(A(s,a;θ,α)−a′∈∣A∣maxA(s,a′;θ,α))(8)
现在,对于
a
∗
=
arg
max
a
′
∈
A
Q
(
s
,
a
′
;
θ
,
α
,
β
)
=
arg
max
a
′
∈
A
A
(
s
,
a
′
;
θ
,
α
)
a^*={\arg\max}_{a'\in\mathcal A}Q(s,a';\theta,\alpha,\beta)={\arg\max}_{a'\in\mathcal A}A(s,a';\theta,\alpha)
a∗=argmaxa′∈AQ(s,a′;θ,α,β)=argmaxa′∈AA(s,a′;θ,α),我们有
Q
(
s
,
a
∗
;
θ
,
α
,
β
)
=
V
(
s
;
θ
,
β
)
Q(s,a^*;\theta,\alpha,\beta)=V(s;\theta,\beta)
Q(s,a∗;θ,α,β)=V(s;θ,β)。因此,分支
V
(
s
;
θ
,
β
)
V(s;\theta,\beta)
V(s;θ,β)就提供了价值函数的估计,另一个分支就是生成优势函数的估计。
(个人理解:通过这里我们知道如果使用公式(7),所谓无法辨识的意思是,如果不强制对优势函数减去最大值,那么我们是无法训练到V是对state-value的估计,或者A是动作优势的估计,因为本身网络训练是个黑盒子,我们实际只是对它们的和进行了loss计算,不没有单独对某个分支进行操作。如果减去最大值,那么由我们的先验知识就能知道,训练出来的V分支就是价值函数的估计,A分支就是我们定义的优势函数。)
有一种代替最大值的操作就是改成使用平均值:
(9)
Q
(
s
,
a
;
θ
,
α
,
β
)
=
V
(
s
;
θ
,
β
)
+
(
A
(
s
,
a
;
θ
,
α
)
−
1
∣
A
∣
∑
a
A
(
s
,
a
′
;
θ
,
α
)
)
Q(s,a;\theta,\alpha,\beta)=V(s;\theta,\beta)+(A(s,a;\theta,\alpha)-\frac{1}{|\mathcal A|} \sum_{a}A(s,a';\theta,\alpha)) \tag 9
Q(s,a;θ,α,β)=V(s;θ,β)+(A(s,a;θ,α)−∣A∣1a∑A(s,a′;θ,α))(9)
一方面这会丢失掉V和A原来的语义,因为它们通过一个常数偏离了target,但是另一方面这增加了优化的稳定性:公式(9),优势函数只需要跟上平均值的变动就可以了,而公式(8)需要去补偿最优动作优势。
注意到公式(9)减去均值也会有助于增加辨识度的,它并不会改变A的相对排序,同时也保留了来自公式(7)的基于Q-values的任何贪心策略。这足够评估优势分支来进行决策了。
很重要的一点是,公式(9)被视为并且实现的时候都是作为网络的一部分,不是分开的一个算法步骤。V和A并不需要额外的监督或者算法调整。