为什么常规 Q 学习(和 DQN)会高估 Q 值?

人工智能 强化学习 q学习 dqn 双dqn 双q学习
2021-11-09 10:02:34

引入双 DQN (和双 Q-learning)的动机是常规 Q-learning(或 DQN)会高估 Q 值,但有没有简要说明为什么会高估它?

1个回答

高估来自您的 Q 值估计的随机初始化。显然这些不会是完美的(如果它们是那么我们就不需要学习真正的 Q 值了!)。在许多基于价值的强化学习方法(例如 SARSA 或 Q 学习)中,算法涉及max运营商在目标策略的构建中。正如您所提到的,最明显的情况是 Q 学习。学习更新是

Q(s,a)=Q(s,a)+α[r(s,a)+γmaxaQ(s,a)Q(s,a)].
我们正在考虑的状态动作元组的Q 函数在下一个状态下向最大Q 函数移动,其中max采取的行动。

现在,如前所述,我们对 Q 值的初始估计是随机初始化的。这自然会导致不正确的值。这样做的结果是,当我们计算maxaQ(s,a)我们可能会选择被严重高估的值。

由于 Q 学习(在表格情况下)保证收敛(在一些温和的假设下),因此高估偏差的主要后果是严重减慢收敛速度。这当然可以通过双 Q 学习来克服。

上面的答案是针对表格 Q-Learning 案例的。深度 Q 学习的想法是相同的,除了注意深度 Q 学习没有收敛保证(当使用 NN 作为函数逼近器时),因此高估偏差更多是一个问题,因为它可能意味着参数的网络陷入次优值。

正如有人在评论中询问始终将值初始化为非常低的数字,这实际上是行不通的。

考虑以下取自 Sutton 和 Barto 的 MDP:我们从状态 A 开始,我们可以从状态 A 向右走,奖励 0 导致终止状态,或者向左走,奖励 0 到状态 B。从状态 B,我们可以采取,说, 100 种不同的动作,所有这些动作都会导致最终状态,并从均值为 -0.1 和方差为 1 的正态分布中获得奖励。

现在,显然状态 A 的最优动作是向右走。然而,当我们向左走并在状态 B 下采取行动时,获得大于 0 的奖励的概率(几乎)为 0.5。现在,回想一下 Q 值向r(s,a)+maxaQ(s,a); 因为从状态 B 转换出来时的随机奖励以及我们可能会看到正奖励的事实maxaQ(s,a)将是积极的。

这意味着当我们向左移动时,Q 值 (Q(A, left)) 向正值移动,这意味着当我们处于状态 A 时,向左移动的值将高于向右移动的值(这将逐渐向 0 的真实值移动),因此当遵循ϵ-greedy policy 当实际上这是次优时,贪婪的动作将是向左走。

现在,当然,我们知道真实的 Q 值最终会收敛,但如果我们确实有 100 个动作,那么您可能会看到 Q 值收敛到真实值所需的时间可能会很长一段时间,因为我们将不得不继续选择所有高估的值,直到我们收敛。