[RL Notes] Q 学习:离轨策略下的时序差分控制
Contents [show]
1. Q 学习
Q 学习是一种离轨策略下时序差分控制算法,它的更新规则为
Q(St,At)←Q(St,At)+α[Rt+1+γmaxaQ(St+1,a)–Q(St,At)]
式 (1) 在更新待学习的动作价值函数 Q 时,采用了对最优动作价值函数 q∗ 的直接近似,而与行动策略无关。
Q 学习算法的流程如下所示。
Q 学习(离轨策略下的时序差分控制)算法,用于预测 π≈π∗
对所有 s∈mathcalS,a∈A(s),任意初始化 Q(s,a),其中 Q(终止状态,⋅)=0
对每幕:
初始化 S
对幕中的每一步循环:
使用从 Q 得到的策略(例如 ε-贪心),在 S 处选择 A
执行 A,观察到 R,S′
Q(S,A)←Q(S,A)+α[R+γmaxaQ(S′,a)–Q(S,A)]
S←S′
直到 S 是终止状态
2. Sarsa 与 Q 学习
回顾 Sarsa 预测算法 的更新规则
Q(St,At)←Q(St,At)+α[Rt+1+γQ(St+1,At+1)–Q(St,At)]
它使用的 At+1 来自行动策略。注意到式 (2) 和动作价值的贝尔曼方程
qπ(s,a)=∑s′∑rp(s′,r|s,a)[r+γ∑a′π(a′|s′)qπ(s′,a′)]
的相似性,式 (2) 中的 Rt+1+γQ(St+1,At+1) 和式 (3) 中的 r+γ∑a′π(a′|s′)qπ(s′,a′) 有着类似地结构。Sarsa 实际上一个基于采样求解贝尔曼方程的算法。
Q 学习也是一种基于采样求解贝尔曼方程的算法,但它求解的是贝尔曼最优方程
q∗(s,a)=∑s′∑rp(s′,r|s,a)[r+γmaxaq∗(s′,a′)]
最优方程使得 Q 学习能够直接学习 q∗,而不必在策略改善和策略评估之间来回切换。
由此可见,Sarsa 基于贝尔曼方程,可以将它看成是一种基于采样的策略迭代,使用贝尔曼方程计算特定策略的动作价值。而 Q 学习基于贝尔曼最优方程,可以将它看成是一种基于采样的价值迭代,迭代式地应用贝尔曼最优方程。只要所有“动作-状态”二元组都可以持续更新,Q 学习就能正确收敛。
3. 离轨策略
由式 (2) 可见,Sarsa 通过行动策略自举下一个时刻的动作 At+1,行动策略和目标策略一致,是一种同轨策略的控制方法。
由式 (3) 可见,Q 学习自举了状态 St+1 下具有最大动作价值的动作 maxaQ(St+1,a),自举的动作相当于是从最优策略中采样,而不是从行动策略中采样。可见 Q 学习学到的是所能选择的最优动作,而不是实际选择的动作,因此它是一种离轨策略的控制方法。Q 学习的目标策略始终是对当前价值的贪婪策略,而它的行动策略可以是任意能够持续访问所有“动作-状态”二元组的策略,如 ε-贪心。
回顾智能体的目标策略 π(A|S) 定义了在给定状态 S 下选择每个动作 A 的概率,结合动作价值函数,可以计算给定状态下的回报为
∑a′π(a′|St+1,a′)=Eπ[Gt+1|St+1]
因为 Q 学习的目标策略始终是对当前价值的贪婪策略,智能体在给定状态下选择所有非最大价值动作的概率为 0,故而该状态下的期望回报就等于该状态下最大的动作价值。虽然 Q 学习是离轨的,但它估计的是未知策略的动作价值,因此不需要重要度采样比来修正不同策略在动作选择上的差异。