在回顾了马尔可夫决策过程、价值函数、时序差分学习以及函数逼近的必要性之后,我们现在面临一个重要挑战,它在某些要素结合时出现:即“致命三元组”。此术语指的是在同时使用以下方法时可能出现的不稳定性和发散性:
- 函数逼近: 使用参数化函数(例如特征的线性组合或深度神经网络)来表示价值函数(V(s;θ) 或 Q(s,a;θ)),而非表格方法。这对于大型或连续的状态/动作空间是必不可少的。
- 自举: 根据后续估计更新当前估计。时序差分方法,例如Q学习和SARSA,会执行自举,因为它们的更新目标包含了下一个状态的估计值(例如,在Q学习中为 r+γmaxa′Q(s′,a′;θ))。动态规划方法也进行自举。
- 离策略学习: 使用由不同行为策略 b 生成的数据,学习目标策略 π 的价值函数或策略。Q学习本身就是离策略的,因为它学习的是贪婪策略的价值(maxa′Q(s′,a′)),而无论生成转移 (s,a,r,s′) 的行为策略实际采取了哪个动作。
尽管这些组成部分各自提供了很大的好处——函数逼近用于泛化,自举在计算和数据效率上优于蒙特卡洛方法,离策略学习则提供了灵活性并能从记录的数据或探索策略中学习——但它们的结合可能导致不可预测且不稳定的学习动态。价值函数估计可能剧烈振荡或发散至无穷大。
为何会出现不稳定?
“致命三元组”是强化学习中的一个主要挑战,它出现在结合了MDPs、价值函数、TD学习和函数逼近等基本要素时。这个术语指的是在同时使用以下元素时可能出现的不稳定性和发散:
- 函数逼近误差: 函数逼近器具有泛化能力,但也会引入误差。使用参数 θ 对特定状态-动作对 (s,a) 的价值估计进行更新时,由于共享参数,会隐含地改变其他(可能不相关)状态-动作对的估计值。
- 离策略数据分布: 行为策略 b 探索状态-动作空间的方式可能不同于目标策略 π。当我们使用在 b 下收集的数据 (s,a,r,s′) 来更新 q^(s,a;θ) 以趋向于从 π 推导出的目标(例如 r+γmaxa′q^(s′,a′;θ))时,我们实际上是在根据目标策略在实际执行时可能不会遇到的状态和动作分布来评估它。函数逼近器可能因此被迫外推这些“离策略”动作的价值,导致时序差分目标中可能出现较大误差。
- 自举放大误差: 时序差分更新依赖于当前的估计值 q^(s′,a′;θ) 来形成目标。如果这个估计值不准确(由于函数逼近误差或离策略数据外推),误差就会被“自举”到 q^(s,a;θ) 的更新中。
θ←θ+α[r+γa′maxq^(s′,a′;θ)−q^(s,a;θ)]∇θq^(s,a;θ)
Q学习中的 max 运算符可能特别有问题,因为它积极寻找下一个状态的最大(可能被高估的)Q值。如果在状态 s′ 处,函数逼近器错误地将高值分配给行为策略很少或从未采取过的动作 a′,那么这个被高估的值将被用于目标中,从而可能增加 q^(s,a;θ) 的价值估计。这会产生一个反馈循环,使得逼近误差和离策略外推被自举放大,可能导致发散。
考虑这个反馈循环的简单示意图:
函数逼近、自举和离策略数据三者间的关联可能形成一个循环,其中逼近误差被纳入自举目标中,导致有缺陷的更新,这会进一步增加误差,可能导致价值估计发散。
这种不稳定性曾是一个主要障碍,出现在早期尝试将强化学习与神经网络等强大的非线性函数逼近器结合时。这表明,在表格Q学习中简单地用神经网络替换表格通常会严重失败。理解致命三元组十分必要,因为后续章节中讨论的许多先进技术,特别是深度Q网络(DQN)及其变体,都是为了应对这一挑战而专门开发的稳定学习机制。我们接下来将介绍的经验回放和目标网络等技术,直接应对了致命三元组所带来的问题。