采用双 Q-学习的深度强化学习技术

为了解决序列决策问题,我们可以学习每个行动的最优值的估计,即采取该行动并根据后续最优策略的未来回报的期望和。在一个给定策略 \pi,在状态 s 的行动 a 的真实值为 Q_{\pi}(s, a) \equiv \mathbb{E} [R_1 + \gamma R_2 + \dots | S_0 = s, A_0 = a, \pi ],其中 \gamma \in [0, 1] 是折扣因子。最优值就是 Q^* (s, a) =\max_{\pi} Q_{\pi}(s, a)。最优策略就可以通过在每个状态选择最高值的行动给出。

最优行动值的估计可以通过 Q-学习获得 (Watkin, 1989),这也是一种形式的即时差分学习 (temporary difference) 学习 (Sutton, 1988)。大多数有趣的问题涉及遍历的状态空间太大使得学习所有的行动值难以进行。所以,我们可以通过学习一个参数化的值函数 Q(s,a;\theta_t)。标准的Q-学习在状态S_t 下进行行动A_t 更新参数,观察及时回报 R_{t+1} 和结果状态S_{t+1} 变成:

\theta_{t+1} = \theta_t + \alpha (Y_t^Q - Q(S_t,A_t;\theta_t)) \nabla_{\theta_t}Q(S_t,A_t;\theta_t) .(1)

其中 \alpha 就是标量的步长,目标 Y_t^Q 定义如下:

Y_t^Q \equiv R_{t+1} + \gamma \max_{a}Q(S_{t+1},a;\theta_t).(2)

类似于 SGD,将当前的值 Q(S_t, A_t; \theta_t) 更新为目标值 Y_t^Q

深度 Q 网络

深度 Q 网络 是多层神经网络,给定状态 s 输出一个行动值的向量  Q(s,.;\theta),其中 \theta 是网络的参数。对一个 n- 维状态空间和一个包含 m 个行动的行动空间,该神经网络是从 R^nR^m 的映射。 DQN 算法的两个最重要的特点是目标网络 (target network) 和经验回顾 (experience replay)。目标网络,其参数为 \theta^-,其实除了其参数每 \tau 次从在线网络复制外都和在线网络相同,所以\theta^-_t = \theta_t,在其他步都是固定大小。DQN 使用的目标就是:

Y_t^{DQN}\equiv R_{t+1} + \gamma \max_{a}Q(S_{t+1},a;\theta_t^{-1}).(3)

对经验回顾,观察到的转换被存放一段时间,并会均匀地从记忆库采样来更新网络。目标网络和经验回顾都能大幅提升算法的性能 (Mnih et al., 2015)。

双 Q- 学习

公式 (2) 和 (3) 中,在标准的 Q-学习和 DQN 中的 \max 操作使用同样的值来进行选择衡量一个行动。这实际上更可能选择过高的估计值,从而导致过于乐观的值估计。为了避免这种情况的出现,我们可以对选择衡量进行解耦。这其实就是双 Q-学习 (van Hasselt, 2010)。

最初的双 Q- 学习算法中,两个值函数通过将每个经验随机更新两个值函数中的一个,这样就出现了两个权重集合,\theta 和 \theta'。对每个更新,一个权重集合用来确定贪心策略,另一个用来确定值。为了更好地比较这两者,我们可以将 Q-学习中的选择和衡量分解,将 (2) 重写为:

Y_t^Q = R_{t+1} + \gamma Q(S_{t+1}, argmax_{a} Q(S_{t+1},a;\theta_t);\theta_t).

Q- 学习误差可以被写成:

Y_t^{DoubleQ} \equiv R_{t+1} + \gamma Q(S_{t+1}, argmax_{a} Q(S_{t+1},a;\theta_t);\theta_t'. (4)

注意到在 argmax 中行动的选择仍旧取决于在线的权重 \theta_t。这表示,如同Q- 学习中那样,我们仍然会根据当前值来估计贪心策略的值。然而,我们使用了第二个权重集合 \theta'_t 来公平地衡量这个策略的值。第二个权重的集合可以对称式地通过交换 \theta 和 \theta' 的更新。

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s