1433 字
7 分钟
强化学习(四):主动强化学习、SARSA 与 Q-learning

第三篇的被动强化学习只能评价一个固定策略,不能改进它。本篇进入主动强化学习:策略不再固定,智能体要边交互、边探索、边改进,最终逼近最优策略 π∗\pi^*。

一、从评价到控制#

被动 RL 问的是”这个策略怎么样”,主动 RL 问的是”应该采取什么策略”。二者的根本区别在于策略是否固定:

被动强化学习主动强化学习
策略预先给定、固定需要学习和改进
任务目标策略评价策略控制 / 策略优化
要学的量Vπ(s),Qπ(s,a)V^\pi(s),Q^\pi(s,a)Q∗(s,a),π∗Q^*(s,a),\pi^*
探索与利用不涉及核心问题
典型方法MC 评价、TD(0)SARSA、Q-learning、DQN

主动 RL 的骨架是广义策略迭代(GPI):评价与改进交替进行,形成闭环——

π →评价 Qπ →贪心改进 π′(s)=arg⁡max⁡aQπ(s,a) →评价 Qπ′ → ⋯\pi\ \xrightarrow{\text{评价}}\ Q^\pi\ \xrightarrow{\text{贪心改进}}\ \pi'(s)=\arg\max_a Q^\pi(s,a)\ \xrightarrow{\text{评价}}\ Q^{\pi'}\ \to\ \cdots

数据修正价值,价值改变策略,策略又决定下一步采集什么数据。学习目标也从固定策略的 VπV^\pi 逐渐变成最优的 V∗V^*,从 QπQ^\pi 变成 Q∗Q^*。

二、探索与利用的矛盾#

一旦策略要靠自己的选择去采集数据,一个被动 RL 中不存在的矛盾就出现了。

设智能体在状态 ss 有两个动作,已经试过很多次 a1a_1,估计 Q(s,a1)=8Q(s,a_1)=8;只试过一次 a2a_2,估计 Q(s,a2)=5Q(s,a_2)=5。现在该选哪个?

  • 选 QQ 值大的 a1a_1,叫利用(Exploitation):用已知信息获取当前最大收益;
  • 但 a2a_2 只试过一次,估计很可能不准,它真实的价值也许是 Q∗(s,a2)=12Q^*(s,a_2)=12。要发现这一点,就必须再去试试 a2a_2,这叫探索(Exploration)。

被动 RL 为什么没这个矛盾? 那里策略固定、动作不是智能体选的,它无从决定”要不要试试别的”。只有当策略本身要被优化、数据靠自己的选择采集时,探索与利用才成为问题;而且两者不是两个阶段,而是全程同时存在。

ε-greedy#

最常用的平衡办法是 ε-greedy:以大概率利用当前最优动作,以小概率 ε\varepsilon 随机探索:

at={在 A(st) 中均匀随机选择,以概率 ε (探索)arg⁡max⁡aQ(st,a),以概率 1−ε (利用)a_t=\begin{cases} \text{在 }\mathcal{A}(s_t)\text{ 中均匀随机选择}, & \text{以概率 }\varepsilon\ \text{(探索)}\\[4pt] \arg\max_a Q(s_t,a), & \text{以概率 }1-\varepsilon\ \text{(利用)} \end{cases}

训练中 ε\varepsilon 通常从较大值逐渐衰减到一个不为 00 的下限(如 0.010.01),保留一点探索以避免陷入局部次优。

三、SARSA:同策略时序差分控制#

把第三篇 TD 评价 VV 的思路从”评价”推广到”控制”:改为估计 QQ,并在估计的同时用 ε\varepsilon-greedy 不断改进策略。

SARSA 的名字来自一次更新涉及的五个量 (St,At,Rt,St+1,At+1)(S_t,A_t,R_t,S_{t+1},A_{t+1})。在当前状态执行 AtA_t,再按行为策略在下一状态实际选出 At+1A_{t+1},用它构造目标:

YtSARSA=Rt+γQ(St+1,At+1),Y_t^{\mathrm{SARSA}}=R_t+\gamma Q(S_{t+1},A_{t+1}),Q(St,At)←Q(St,At)+α[YtSARSA−Q(St,At)].Q(S_t,A_t)\leftarrow Q(S_t,A_t)+\alpha \left[Y_t^{\mathrm{SARSA}}-Q(S_t,A_t)\right].

若 St+1S_{t+1} 是终止状态,则 YtSARSA=RtY_t^{\mathrm{SARSA}}=R_t。

为什么是 on-policy? SARSA 用实际按行为策略选出的 At+1A_{t+1} 构造目标,执行动作的策略和被评估、被改进的策略是同一个,因此称为同策略(on-policy)。它学到的是”当前这个带探索的策略”的价值,风格上相对保守。

四、Q-learning:离策略时序差分控制#

Q-learning 只把 TD 目标里的下一动作换成贪心的最大值:

YtQ=Rt+γmax⁡a′∈A(St+1)Q(St+1,a′),Y_t^{\mathrm{Q}}=R_t+\gamma\max_{a'\in\mathcal{A}(S_{t+1})}Q(S_{t+1},a'),Q(St,At)←Q(St,At)+α[YtQ−Q(St,At)].Q(S_t,A_t)\leftarrow Q(S_t,A_t)+\alpha \left[Y_t^{\mathrm{Q}}-Q(S_t,A_t)\right].

若下一状态为终止状态,则 YtQ=RtY_t^{\mathrm{Q}}=R_t。

为什么是 off-policy? 采集数据时可以用 ε\varepsilon-greedy 等带探索的行为策略,但目标里用的是 arg⁡max⁡a′Q(St+1,a′)\arg\max_{a'}Q(S_{t+1},a') 对应的贪心目标策略——这个动作不需要真的执行。行为策略与目标策略可以不同,所以是离策略(off-policy)。它直接逼近最优 Q∗Q^*,但训练中的 max⁡\max 操作也可能带来 QQ 值过估计问题。

五、SARSA 与 Q-learning 对比#

两者共享同一更新骨架 Q(St,At)←Q(St,At)+α[Yt−Q(St,At)]Q(S_t,A_t)\leftarrow Q(S_t,A_t)+\alpha[Y_t-Q(S_t,A_t)],唯一的区别就在 TD 目标 YtY_t:

对比项SARSAQ-learning
TD 目标Rt+γQ(St+1,At+1)R_t+\gamma Q(S_{t+1},A_{t+1})Rt+γmax⁡a′Q(St+1,a′)R_t+\gamma\max_{a'}Q(S_{t+1},a')
At+1A_{t+1} 从哪来行为策略实际采样得到不必执行,直接取最大
学的是谁的价值当前实际执行的策略贪心最优策略
策略关系on-policy(同策略)off-policy(异策略)
直觉”按我现在真实执行的策略走下去,未来收益是多少?""假设从下一步起永远选当前最好的动作,未来收益是多少?“
已知问题相对保守,考虑探索的风险容易 QQ 值过估计

Q-learning 在有限表格 MDP、满足充分探索和合适学习率等条件时,可以收敛到最优动作价值函数。

六、从表格到神经网络:通向 DQN#

以上所有 Q(s,a)Q(s,a) 都存成一张表格。但当状态空间很大(如围棋、图像输入)时,表格根本存不下,也无法泛化到没见过的状态。DQN 的思路是用神经网络替代表格:

Q(s,a) ⟶ Q(s,a;θ).Q(s,a)\ \longrightarrow\ Q(s,a;\theta).

表格算法的更新目标(Q-learning 的 TD 目标)不变,只是把”直接改表格里的一个数”换成”用 TD 误差算梯度、更新网络参数 θ\theta“。这就是表格方法向深度强化学习自然过渡的地方。

七、全系列回顾#

至此四篇文章串成一条完整主线:

(一) MDP 定义问题⟶(二) 模型已知:贝尔曼方程 + 动态规划,得 V∗,Q∗⟶(三) 模型未知、策略固定:MC / TD 评价 Vπ⟶(四) 模型未知、策略改进:SARSA / Q-learning ⟶ DQN.\begin{aligned} &\textbf{(一)}\ \text{MDP 定义问题}\\ &\quad\longrightarrow\textbf{(二)}\ \text{模型已知:贝尔曼方程 + 动态规划,得 }V^*,Q^*\\ &\quad\longrightarrow\textbf{(三)}\ \text{模型未知、策略固定:MC / TD 评价 }V^\pi\\ &\quad\longrightarrow\textbf{(四)}\ \text{模型未知、策略改进:SARSA / Q-learning}\ \longrightarrow\ \text{DQN}. \end{aligned}

如果觉得这四篇的公式还是偏抽象,下一篇网格世界实例会搭一个 3×43\times4 的具体网格,把上面每个公式都带着数字手算一遍。

强化学习(四):主动强化学习、SARSA 与 Q-learning
https://biscuit0613.github.io/posts/reinforcement-learning/rl_activerl/
作者
Biscuit
发布于
2025-11-02
许可协议
CC BY-NC-SA 4.0
强化学习(三):被动强化学习与策略评价
强化学习(一):MDP 与强化学习基础