直接比较 SARSA 和 Q-学习两种算法是很有价值的。它们都是基础的时序差分 (TD) 控制方法,旨在通过估计动作值函数 (Q Q Q 值) 来学习最优行为。它们共享 TD 自举的核心思想——根据其他已学估计值更新估计值。然而,它们的更新规则和学习原理存在显著差异,主要源于 SARSA 是一种在线策略 算法,而 Q-学习是一种离线策略 算法。
更新规则差异
核心区别在于每种算法如何计算更新中使用的目标值。让我们回顾一下在采取动作 A t A_t A t 并获得奖励 R t + 1 R_{t+1} R t + 1 后,从状态 S t S_t S t 到 S t + 1 S_{t+1} S t + 1 转移的更新规则。
SARSA 更新:
SARSA 代表 State-Action-Reward-State-Action。这个名称反映了其更新规则,该规则使用在状态 S t + 1 S_{t+1} S t + 1 中根据当前策略 π \pi π 采取的实际 动作 A t + 1 A_{t+1} A t + 1 。
Q ( S t , A t ) ← Q ( S t , A t ) + α [ R t + 1 + γ Q ( S t + 1 , A t + 1 ) ⏟ TD 目标 (使用实际的下一个动作 A t + 1 ) − Q ( S t , A t ) ] Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha [ \underbrace{R_{t+1} + \gamma Q(S_{t+1}, A_{t+1})}_{\text{TD 目标 (使用实际的下一个动作 } A_{t+1})} - Q(S_t, A_t) ] Q ( S t , A t ) ← Q ( S t , A t ) + α [ TD 目标 ( 使用实际的下一个动作 A t + 1 ) R t + 1 + γ Q ( S t + 1 , A t + 1 ) − Q ( S t , A t )]
目标值 R t + 1 + γ Q ( S t + 1 , A t + 1 ) R_{t+1} + \gamma Q(S_{t+1}, A_{t+1}) R t + 1 + γ Q ( S t + 1 , A t + 1 ) 取决于下一个状态 S t + 1 S_{t+1} S t + 1 和 由当前策略选择的下一个动作 A t + 1 A_{t+1} A t + 1 (在学习过程中通常是 ϵ \epsilon ϵ -贪心策略)。SARSA 学习在状态 S t S_t S t 中采取动作 A t A_t A t 然后此后遵循当前策略 的价值。
Q-学习更新:
另一方面,Q-学习使用下一个状态 S t + 1 S_{t+1} S t + 1 中最大 可能的 Q 值来形成其目标,无论实际接下来采取的动作是什么。
Q ( S t , A t ) ← Q ( S t , A t ) + α [ R t + 1 + γ max a Q ( S t + 1 , a ) ⏟ TD 目标 (使用下一个动作的最大 Q 值) − Q ( S t , A t ) ] Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha [ \underbrace{R_{t+1} + \gamma \max_{a} Q(S_{t+1}, a)}_{\text{TD 目标 (使用下一个动作的最大 Q 值)}} - Q(S_t, A_t) ] Q ( S t , A t ) ← Q ( S t , A t ) + α [ TD 目标 ( 使用下一个动作的最大 Q 值 ) R t + 1 + γ a max Q ( S t + 1 , a ) − Q ( S t , A t )]
目标值 R t + 1 + γ max a Q ( S t + 1 , a ) R_{t+1} + \gamma \max_{a} Q(S_{t+1}, a) R t + 1 + γ max a Q ( S t + 1 , a ) 代表所获得的奖励加上从状态 S t + 1 S_{t+1} S t + 1 中最佳 可能动作的折扣值,根据当前的 Q 值估计。Q-学习学习在状态 S t S_t S t 中采取动作 A t A_t A t 然后此后最优地 (贪婪地) 动作 的价值,即使智能体实际的下一个动作 A t + 1 A_{t+1} A t + 1 (例如通过 ϵ \epsilon ϵ -贪婪行为选择) 不同。
在线策略与离线策略学习
目标更新的这种差异直接关联到在线策略/离线策略的区别:
SARSA (在线策略): 学习智能体当前遵循的 策略 π \pi π 的值函数 Q π Q^\pi Q π 。如果智能体使用 ϵ \epsilon ϵ -贪婪策略进行行为,SARSA 学习 ϵ \epsilon ϵ -贪婪行为的价值。行为策略 (用于选择动作,例如 A t + 1 A_{t+1} A t + 1 ) 和目标策略 (被学习的策略) 相同。
Q-学习 (离线策略): 学习最优贪婪 策略的值函数 Q ∗ Q^* Q ∗ ,无论智能体当前遵循何种策略来对环境进行行为。行为策略 (例如 ϵ \epsilon ϵ -贪婪) 可以与目标策略 (总是由 max a Q ( S t + 1 , a ) \max_a Q(S_{t+1}, a) max a Q ( S t + 1 , a ) 暗示的贪婪策略) 不同。
行为后果
学习行为策略 (SARSA) 的价值与最优策略 (Q-学习) 的价值之间的差异可能导致不同的学习行为,特别是在行为可能存在风险的环境中。
考虑一个类似强化学习 (reinforcement learning)文献中常用的“悬崖行走”问题的场景。智能体需要找到从起点到目标状态的最短路径,但网格中的一个区域 ('悬崖') 如果进入会产生很大的负奖励。
悬崖行走环境中的路径差异。SARSA 倾向于学习一条更安全、可能更长的远离悬崖的路径,因为它考虑了在边缘附近次优行为动作的负面后果。Q-学习学习最短路径,假设最终会采取最优动作,忽略学习过程中使用的行为策略中固有的风险。
因为 SARSA 在其更新中包含实际选择的动作 A t + 1 A_{t+1} A t + 1 (这可能是一个随机行为动作),所以它学习到靠近悬崖的状态-动作对的 Q 值较低。这鼓励了一种避开危险区域的策略。Q-学习通过使用 max \max max 运算符,学习到最优路径就在悬崖边缘,假设智能体在重要时不会犯行为错误。它对未来的动作更乐观。
收敛性
Q-学习: 在标准随机近似条件下收敛到最优动作值函数 Q ∗ Q^* Q ∗ ,前提是所有状态-动作对都持续被访问。它的收敛性与所遵循的策略无关。
SARSA: 收敛到所遵循的特定策略 π \pi π (例如 ϵ \epsilon ϵ -贪婪) 的动作值函数 Q π Q^\pi Q π 。如果 ϵ \epsilon ϵ 逐渐减小到零,SARSA 也会收敛到 Q ∗ Q^* Q ∗ 。
总结表
特性
SARSA
Q-学习
类型
在线策略 TD 控制
离线策略 TD 控制
更新规则
使用 ( S t , A t , R t + 1 , S t + 1 , A t + 1 ) (S_t, A_t, R_{t+1}, S_{t+1}, A_{t+1}) ( S t , A t , R t + 1 , S t + 1 , A t + 1 )
使用 ( S t , A t , R t + 1 , S t + 1 ) (S_t, A_t, R_{t+1}, S_{t+1}) ( S t , A t , R t + 1 , S t + 1 ) 和 max Q \max Q max Q
目标值
R t + 1 + γ Q ( S t + 1 , A t + 1 ) R_{t+1} + \gamma Q(S_{t+1}, A_{t+1}) R t + 1 + γ Q ( S t + 1 , A t + 1 )
R t + 1 + γ max a Q ( S t + 1 , a ) R_{t+1} + \gamma \max_{a} Q(S_{t+1}, a) R t + 1 + γ max a Q ( S t + 1 , a )
学习内容
行为 策略的价值 (包含行为)
最优 (贪婪) 策略的价值
行为方式
更保守,避免有风险的行为
更具进取性,直接学习最优路径
收敛性
收敛到 Q π Q^\pi Q π (对于策略 π \pi π )
收敛到 Q ∗ Q^* Q ∗ (最优值)
SARSA 和 Q-学习之间的选择取决于具体的应用场景。如果你需要在特定行为策略下评估或保证性能,或者如果学习过程中的安全性是主要考量 (避免灾难性行为动作),SARSA 可能更受欢迎。如果主要目的是尽可能高效地找出最优策略,并且学习阶段的性能是次要的,Q-学习通常是更直接的方法,并为许多先进的深度强化学习 (reinforcement learning)算法奠定基础。