原文链接:Mnih, Volodymyr, et al. “Human-level control through deep reinforcement learning.” (2015). (ICML版本)
摘要
本文提出了第一个利用强化学习模型(一个CNN)来学习高维感官输入从而在游戏上达到并超过人类水平。
介绍
深度学习在视觉和语音辨识上有了出色成果,但是强化学习还没有。
强化学习没有大量标示的训练集。强化学习算法都是通过稀疏,含有噪声,有延迟的标量奖励来进行的。动作和结束奖励之间可能有上千步这么远,而监督学习可以通过标签和输入之间直接的联系来完成。另外一个问题是在深度学习算法中,要求数据样本之间是独立的,但是在强化学习中常常面临的序列是高度相关的。另外在RL中,数据分布会随着agent与环境的交互而发生变化,与DL的数据底层分布是固定的截然不同。
本文采用了一个以Q-learning的变体的一种算法,结合CNN架构来实现在原始视频数据中实现序列的控制决策问题。为了防止数据之间的相关性和非静态的分布,本文采用了experience replay来平滑训练集的分布。
本文的目标是构建一种不需要额外构建特征并且能在多个游戏中使用的神经网络架构。
背景
游戏模拟器的内部机制是不能被观察到的,输入的只是一幅图像,但仅凭一幅图像是不能够完全理解现在的真实状态的。因此本文的输入是一系列的动作和图像(
x
1
,
a
1
,
x
2
,
.
.
.
a
t
−
1
,
x
t
x_1,a_1,x_2,...a_{t-1},x_{t}
x1,a1,x2,...at−1,xt),试图从序列中学到策略。
agent的目标是通过利用和模拟器交互来最大化为未来的奖励。
R
t
=
∑
t
′
=
t
T
γ
t
′
−
t
r
t
′
R_{t}=\sum_{t^{\prime}=t}^{T} \gamma^{t^{\prime}-t} r_{t^{\prime}}
Rt=t′=t∑Tγt′−trt′
T
T
T是终止状态。
本文采用了基于贝尔曼方程的策略迭代算法来进行Q值的更新:
Q
i
+
1
(
s
,
a
)
=
E
s
′
∼
E
[
r
+
γ
max
a
′
Q
i
(
s
′
,
a
′
)
∣
s
,
a
]
Q_{i+1}(s, a)=\mathbb{E}_{s^{\prime} \sim \mathcal{E}}\left[r+\gamma \max _{a^{\prime}} Q_{i}\left(s^{\prime}, a^{\prime}\right) \mid s, a\right]
Qi+1(s,a)=Es′∼E[r+γa′maxQi(s′,a′)∣s,a]
对于action-value对来说,一般都是离散的,所以需要用一个函数估计起来实现对Q值的估计
Q
(
s
,
a
;
θ
)
≈
Q
∗
(
s
,
a
)
Q(s,a;\theta) \approx Q^{*}(s,a)
Q(s,a;θ)≈Q∗(s,a)。 我们一般用神经网络来估计,故称为Q-Network。可以通过迭代最小化下面的损失函数来实现:
L
i
(
θ
i
)
=
E
s
,
a
∼
ρ
(
⋅
)
[
(
y
i
−
Q
(
s
,
a
;
θ
i
)
)
2
]
L_{i}\left(\theta_{i}\right)=\mathbb{E}_{s, a \sim \rho(\cdot)}\left[\left(y_{i}-Q\left(s, a ; \theta_{i}\right)\right)^{2}\right]
Li(θi)=Es,a∼ρ(⋅)[(yi−Q(s,a;θi))2]
其中
y
i
=
E
s
′
∼
E
[
r
+
γ
max
a
′
Q
(
s
′
,
a
′
;
θ
i
−
1
)
∣
s
,
a
]
y_{i}=\mathbb{E}_{s^{\prime} \sim \mathcal{E}}\left[r+\gamma \max _{a^{\prime}} Q\left(s^{\prime}, a^{\prime} ; \theta_{i-1}\right) \mid s, a\right]
yi=Es′∼E[r+γmaxa′Q(s′,a′;θi−1)∣s,a],
y
i
y_i
yi也是第i次迭代的target,
ρ
(
s
,
a
)
\rho(s,a)
ρ(s,a)是动作和状态的分布。当优化
L
i
(
θ
i
)
L_{i}(\theta_{i})
Li(θi)时,会将前一次迭代的
θ
i
−
1
\theta_{i-1}
θi−1固定住。对于损失函数的微分我们将得到下面的梯度:
∇
θ
i
L
i
(
θ
i
)
=
E
s
,
a
∼
ρ
(
⋅
)
;
s
′
∼
E
[
(
r
+
γ
max
a
′
Q
(
s
′
,
a
′
;
θ
i
−
1
)
−
Q
(
s
,
a
;
θ
i
)
)
∇
θ
i
Q
(
s
,
a
;
θ
i
)
]
\nabla_{\theta_{i}} L_{i}\left(\theta_{i}\right)=\mathbb{E}_{s, a \sim \rho(\cdot) ; s^{\prime} \sim \mathcal{E}}\left[\left(r+\gamma \max _{a^{\prime}} Q\left(s^{\prime}, a^{\prime} ; \theta_{i-1}\right)-Q\left(s, a ; \theta_{i}\right)\right) \nabla_{\theta_{i}} Q\left(s, a ; \theta_{i}\right)\right]
∇θiLi(θi)=Es,a∼ρ(⋅);s′∼E[(r+γa′maxQ(s′,a′;θi−1)−Q(s,a;θi))∇θiQ(s,a;θi)]
注意:这一方法是model-free的并且是off-policy的。
深度强化学习
本文在TD-Gammon的基础上引入了experience replay。使用了一个数据库存储经验
D
=
e
1
,
.
.
.
,
e
N
D = e_1,...,e_N
D=e1,...,eN,其中
e
t
=
(
s
t
,
a
t
,
r
t
,
s
t
+
1
)
e_t = (s_t,a_t,r_t,s_{t+1})
et=(st,at,rt,st+1)。算法的流程如下图:
在算法的内循环中,使用Q-learning和minibatch进行更新。为了让输入定长,使用了函数
ϕ
\phi
ϕ来处理。
这一算法相较于标准的在线Q-learning的好处有:1、每一步经验在多次权值更新上能使用,提高了数据的利用率;2、从连续的采样样本中学习是不充分的,因为这样数据之间就会有很大的相关性;3、在on-policy的时候,当前参数决定了参数训练的下一个数据样本。这样会产生一种反馈循环,使得参数陷入到局部最优或者无法收敛。采用off-policy的话,目前所采用的和环境交互的参数和在更新的参数是不一样的。