据我所知,要真正清楚、正式地了解我们缺乏收敛的确切原因/时间 - 或者更糟糕的是,有时还有分歧的危险,这仍然是一个悬而未决的问题。它通常归因于“致命的三合会”(参见 Sutton 和 Barto 的书第二版的 11.3),结合了:
- 函数逼近,AND
- 自举(使用我们自己的价值估计来计算我们的训练目标,如通过Q-学习),和
- 政策外培训(Q-学习确实是脱离政策的)。
这只是为我们提供了(可能不是详尽的)对缺乏收敛和/或存在分歧危险的情况的描述,但仍然没有告诉我们为什么会在这些情况下发生这种情况。
约翰的回答已经提供了一种直觉,即问题的一部分仅仅是使用函数逼近很容易导致您的函数逼近器不足以表示真实的情况Q∗如果不切换到不同的函数逼近器,则可能总是存在无法消除的逼近误差。
就个人而言,我认为这种直觉确实有助于理解为什么算法不能保证收敛到最优解,但我仍然直观地期望它可能能够“收敛”到一些“稳定”的解,这是给定的最佳近似值所选函数表示中固有的限制。事实上,当我们切换到策略训练(例如 Sarsa)时,这就是我们在实践中观察到的,至少在线性函数逼近器的情况下是这样。
我自己对这个问题的直觉通常是问题的一个重要来源是泛化。在表格设置中,我们有完全隔离的条目Q(s,a)对所有人(s,a)对。每当我们更新我们对一个条目的估计时,它会使所有其他条目保持不变(至少在最初 - 由于更新规则中的引导,可能会对未来更新中的其他条目产生一些影响)。更新算法的规则,如Q-learning 和 Sarsa 有时可能会在我们“不走运”时朝着“错误”的方向更新,但在预期中,它们通常会朝着正确的“方向”更新。直观地说,这意味着,在表格设置中,我们会慢慢地、逐步地单独修复任何条目中的任何错误,而不会损害其他条目。
使用函数逼近,当我们更新我们的Q(s,a)估计一个(s,a)对,它还可能影响我们对所有其他状态-动作对的所有其他估计。直观地说,这意味着我们不再像在表格设置中那样对条目进行很好的隔离,并且“修复”一个条目中的错误可能会有向其他条目添加新错误的风险。然而,就像约翰的回答一样,这整个直觉也确实适用于策略算法,所以它仍然没有解释什么特别之处Q-学习(和其他非策略方法)。
最近关于这个主题的一篇非常有趣的论文是Non-delusional Q-learning and Value Iteration。他们指出了将函数逼近与更新规则相结合的算法中的“妄想偏差”问题max运算符,例如 Q-learning(它可能不是唯一的max运算符,但可能适用于一般的关闭策略?)。
问题如下。假设我们运行这个Q-状态-动作对的学习更新(s,a):
Q(s,a)←Q(s,a)+α[maxa′Q(s′,a′)−Q(s,a)].
价值估计maxa′Q(s′,a′)这里使用的假设是我们执行的策略对于我们的旧版本是贪婪的Q估计一个 - 可能很长 - 轨迹。正如在之前的一些答案中已经讨论过的,我们的函数逼近器具有有限的表示能力,并且对一个状态-动作对的更新可能会影响其他状态-动作对的值估计。这意味着,在触发我们的更新后Q(s,a),我们的函数逼近器可能不再能够同时表达导致我们的高回报的策略maxa′Q(s′,a′)估计基于。这篇论文的作者说该算法是“妄想”。它执行更新的假设是,它仍然可以获得大的回报,但实际上它可能不再足够强大,无法使用新版本的函数逼近器参数获得这些回报。
最后,我怀疑与这个问题相关的另一篇(甚至更新的)论文是Diagnosing Bottlenecks in Deep Q-learning Algorithms,但不幸的是我还没有时间详细阅读并充分总结它。