← 返回学习笔记

Lecture 4:强化学习

408 学习笔记:Lecture 4:强化学习。保留原有知识内容、公式与图示;有对应原件时提供查看和下载入口。

本页目录

描述:本节整理强化学习与监督学习的区别、状态/动作/奖励/策略、马尔可夫决策过程、折扣回报、状态价值与动作价值、Bellman 方程,并推导 Q-learning、DQN 和时序差分学习。

4.1 强化学习与监督学习

4.1.1 主要区别

监督学习 强化学习
训练样本通常带目标标签 通常没有每一步的正确动作标签,而由奖励评价行为结果
数据集常预先给定 数据分布会受智能体行为影响
单个预测的误差可直接计算 动作可能很久以后才产生奖励,存在延迟归因
目标是拟合输入到标签的映射 目标是学习能最大化长期回报的策略

强化学习中,当前动作会同时影响:

  • 当前或未来奖励。
  • 下一个状态。
  • 后续能够观察到的数据。

例如下棋时,不同落子会形成不同棋盘轨迹,最终输赢奖励可能到终局才出现。

这不是说强化学习永远没有固定数据集:离线强化学习会使用预先记录的交互数据,但这些数据仍由某种行为策略产生,且没有逐状态“最佳动作标签”。

4.1.2 学习目标

智能体(agent)观察状态(state),选择动作(action),环境(environment)返回奖励并转移到下一状态。

目标是学习策略:

$$ \pi(a\mid s)

P(A_t=a\mid S_t=s), $$

使期望累积回报最大。也可以先学习最优动作价值 $Q^*(s,a)$,再由它导出策略。

4.2 基本要素与时间顺序

统一采用常见时序:

S_t --选择 A_t--> 环境 --返回 R_{t+1}, S_{t+1}--> S_{t+1}
  • $S_t$:$t$ 时刻状态,概括当前决策所需的环境信息。
  • $A_t$:智能体在 $S_t$ 下采取的动作。
  • $R_{t+1}$:执行 $A_t$ 后得到的奖励。
  • $\pi(a\mid s)$:在状态 $s$ 下选择动作 $a$ 的概率。

奖励由任务设计决定。例如游戏可在获得金币时给 $+1$,终局获胜给较大奖励;围棋也常在终局给 $+1/-1/0$。课件中的“终局 1 或 0”只是具体编码方式之一。

4.3 马尔可夫假设

4.3.1 状态的充分性

马尔可夫性质要求:给定当前状态后,未来与更早历史条件独立。

无动作的写法:

$$ P(S_{t+1}\mid S_t,S_{t-1},\ldots,S_0)

P(S_{t+1}\mid S_t). $$

在控制问题中:

$$ P(S_{t+1}=s',R_{t+1}=r \mid S_t=s,A_t=a,\text{history})

p(s',r\mid s,a). $$

4.3.2 外部环境并不违反马尔可夫性

自动驾驶的下一状态当然受其他车辆、道路和天气影响;这些影响应包含在状态或环境转移分布中。

  • 若状态完整描述了决策所需信息,仍可建模为 MDP。
  • 若智能体只能观察到不完整信息,更合适的是部分可观测 MDP(POMDP),此时单个观测不一定具有马尔可夫性。

课件把“外部环境影响”说成马尔可夫假设的例外,不够准确;关键在于状态是否充分。

4.4 马尔可夫决策过程

一个折扣 MDP 常写为五元组:

$$ (\mathcal S,\mathcal A,P,R,\gamma). $$

  • $\mathcal S$:状态空间。
  • $\mathcal A$:动作空间。
  • $P(s'\mid s,a)$:状态转移概率。
  • $R$:奖励模型,可写成 $R(s,a,s')$,或用 $R(s,a)=\mathbb E[R_{t+1}\mid s,a]$ 表示条件期望奖励。
  • $\gamma$:折扣因子。

另一种等价口径是直接用联合核 $p(s',r\mid s,a)$ 同时描述下一状态与奖励;采用该口径时就不应再把同一个奖励随机量作为五元组中的独立分量重复定义。

初始状态由分布 $\rho_0$ 采样:

$$ S_0\sim\rho_0. $$

交互循环:

  1. 智能体按 $A_t\sim\pi(\cdot\mid S_t)$ 选择动作。
  2. 环境按 $p(s',r\mid S_t,A_t)$ 采样 $R_{t+1},S_{t+1}$。
  3. 智能体获得奖励和新状态,继续决策,直到终止。

一条轨迹为:

$$ S_0,A_0,R_1,S_1,A_1,R_2,\ldots $$

4.5 回报与折扣回报

4.5.1 未折扣回报

从时刻 $t$ 起的累积回报:

$$ G_t

R_{t+1}+R_{t+2}+R_{t+3}+\cdots. $$

4.5.2 折扣回报

$$ G_t

\sum_{k=0}^{\infty} \gamma^kR_{t+k+1}, \qquad 0\leq\gamma<1. $$

有限回合任务在回报有限时也可取 $\gamma=1$。

折扣的作用:

  • 让近期奖励权重更大。
  • 在无限时域且奖励有界时保证级数收敛。
  • 表达对未来不确定性或时间偏好的建模选择。

递推关系:

$$ G_t

R_{t+1}+\gamma G_{t+1}. $$

4.5.3 回报为什么是随机变量

即使当前状态固定,未来回报仍可能随机,因为:

  • 策略可能随机:$A_t\sim\pi(\cdot\mid S_t)$。
  • 环境转移可能随机:$S_{t+1}\sim p(\cdot\mid S_t,A_t)$。
  • 奖励本身也可能随机。

因此要用期望价值函数评价状态或动作。

4.6 状态价值与动作价值

4.6.1 状态价值函数

策略 $\pi$ 下:

$$ V^{\pi}(s)

\mathbb E_{\pi}[G_t\mid S_t=s]. $$

它衡量“处于状态 $s$ 后,继续执行策略 $\pi$,平均能获得多少折扣回报”。

4.6.2 动作价值函数

$$ Q^{\pi}(s,a)

\mathbb E_{\pi} [G_t\mid S_t=s,A_t=a]. $$

它衡量“在状态 $s$ 先执行动作 $a$,之后继续执行策略 $\pi$ 的期望回报”。

二者关系:

离散动作:

$$ V^{\pi}(s)

\sum_{a\in\mathcal A} \pi(a\mid s)Q^{\pi}(s,a). $$

连续动作:

$$ V^{\pi}(s)

\int \pi(a\mid s)Q^{\pi}(s,a),da. $$

4.6.3 最优价值函数

$$ Q^*(s,a)

\max_{\pi}Q^{\pi}(s,a), $$

$$ V^*(s)

\max_a Q^*(s,a). $$

源课件把 $Q^$ 的定义与“对动作取最大”混写。应先在所有策略中取最优,得到 $Q^$;然后在当前状态对动作取最大,得到最优价值和贪心动作:

$$ a^(s) \in \arg\max_aQ^(s,a). $$

4.7 Bellman 方程

4.7.1 Bellman 期望方程

状态价值:

$$ V^{\pi}(s)

\sum_a\pi(a\mid s) \sum_{s',r} p(s',r\mid s,a) \left[r+\gamma V^{\pi}(s')\right]. $$

动作价值:

$$ Q^{\pi}(s,a)

\sum_{s',r} p(s',r\mid s,a) \left[ r +\gamma \sum_{a'}\pi(a'\mid s')Q^{\pi}(s',a') \right]. $$

4.7.2 Bellman 最优方程

$$ Q^*(s,a)

\sum_{s',r} p(s',r\mid s,a) \left[ r+\gamma\max_{a'}Q^*(s',a') \right]. $$

$$ V^(s)=\max_aQ^(s,a). $$

Bellman 方程把长期回报分解为“一步奖励 + 下一状态的折扣价值”,是动态规划、TD 和 Q-learning 的基础。

4.8 Gym/Gymnasium 环境

课件使用旧版 OpenAI Gym API。当前更常用 Gymnasium,接口变化包括:

  • reset() 返回 (observation, info)。
  • step() 返回 (observation, reward, terminated, truncated, info)。
  • CartPole-v0 已过时,通常使用 CartPole-v1。

随机策略示例:

import gymnasium as gym

env = gym.make("CartPole-v1", render_mode="human")
state, info = env.reset()

for step in range(1000):
    action = env.action_space.sample()
    next_state, reward, terminated, truncated, info = env.step(action)
    state = next_state

    if terminated or truncated:
        print("Finished")
        break

env.close()

此代码只演示环境交互,没有学习策略。

4.9 价值学习与 DQN

4.9.1 用神经网络近似 $Q^*$

若已知 $Q^*$,最优动作可选:

$$ a_t

\arg\max_aQ^*(S_t,a). $$

DQN 用神经网络:

$$ Q(s,a;\theta) \approx Q^*(s,a). $$

对离散动作空间,网络输入状态,输出一个向量:

$$ \begin{bmatrix} Q(s,a_1;\theta) & Q(s,a_2;\theta) & \cdots & Q(s,a_K;\theta) \end{bmatrix}. $$

游戏画面可先经过 CNN 提取特征,再由全连接层输出“左、右、上”等每个动作的 Q 值。

4.9.2 探索与利用

如果始终选当前最大 Q 值,智能体可能永远发现不了更好的动作。常用 $\varepsilon$-greedy:

$$ A_t= \begin{cases} \text{随机动作}, & \text{概率 }\varepsilon,\ \arg\max_aQ(S_t,a;\theta), & \text{概率 }1-\varepsilon. \end{cases} $$

训练时逐渐减小 $\varepsilon$,在探索和利用之间平衡。

4.10 时序差分学习

4.10.1 TD 思想

折扣回报满足:

$$ G_t=R_{t+1}+\gamma G_{t+1}. $$

TD 不等待整个回合结束,而用“当前奖励 + 下一状态估值”作为自举目标。

类比行程时间:纽约到亚特兰大的总时间,可由纽约到华盛顿的已知时间,加上对华盛顿到亚特兰大剩余时间的估计来更新。

4.10.2 SARSA 与 Q-learning 不能混写

SARSA 的一步目标:

$$ y_t^{\mathrm{SARSA}}

R_{t+1} +\gamma Q(S_{t+1},A_{t+1};\theta). $$

Q-learning/DQN 的一步目标:

$$ y_t^{\mathrm{DQN}}

R_{t+1} +\gamma\max_{a'}Q(S_{t+1},a';\theta^-). $$

  • SARSA 使用行为策略实际选出的下一动作,是 on-policy。
  • Q-learning 使用下一状态的最大动作价值,是 off-policy。
  • 源课件先写 $Q(S_{t+1},A_{t+1})$,后又写 $\max_aQ(S_{t+1},a)$,混合了两种算法。

若 $S_{t+1}$ 是真正终止状态,不能再加未来价值:

$$ y_t=R_{t+1}. $$

因时间上限而截断是否 bootstrap,要根据任务语义处理,不能简单等同于自然终止。

4.11 DQN 损失与更新

4.11.1 TD 误差

当前估计:

$$ q_t=Q(S_t,A_t;\theta). $$

目标:

$$ y_t

R_{t+1} +\gamma(1-d_t) \max_{a'}Q(S_{t+1},a';\theta^-), $$

其中 $d_t=1$ 表示真正终止。

TD 误差:

$$ \delta_t=y_t-q_t. $$

4.11.2 损失

课件使用平方损失:

$$ L_t(\theta)

\frac{1}{2} [Q(S_t,A_t;\theta)-y_t]^2. $$

现代实现也常使用 Huber loss,减小异常 TD 误差对更新的影响。

目标 $y_t$ 在当前梯度步中视为常量,不把梯度传过目标网络:

$$ \nabla_{\theta}L_t

(q_t-y_t) \nabla_{\theta}Q(S_t,A_t;\theta). $$

参数更新:

$$ \theta \leftarrow \theta

\alpha (q_t-y_t) \nabla_{\theta}Q(S_t,A_t;\theta). $$

4.11.3 稳定 DQN 的关键机制

仅用连续相邻样本和同一个快速变化网络自举,训练容易不稳定。经典 DQN 使用:

  1. 经验回放:把 $(s,a,r,s',done)$ 存入回放池,随机采样 Mini-batch,减弱样本相关性并提高数据复用。
  2. 目标网络:用参数 $\theta^-$ 计算 TD 目标,隔一段时间从在线网络同步,减缓目标漂移。
  3. $\varepsilon$-greedy:保证探索。
  4. 奖励裁剪、梯度裁剪等工程措施:控制更新尺度,具体是否使用取决于任务。

4.12 DQN 一步训练流程

  1. 观察 $S_t$。
  2. 按 $\varepsilon$-greedy 选择 $A_t$。
  3. 执行动作,得到 $R_{t+1},S_{t+1}$ 和终止标记。
  4. 把转移存入经验回放池。
  5. 随机采样一批转移。
  6. 在线网络计算所选动作的 $Q(S_t,A_t;\theta)$。
  7. 目标网络计算:

$$ y_t

R_{t+1} +\gamma(1-d_t) \max_{a'}Q(S_{t+1},a';\theta^-). $$

  1. 最小化预测值与目标值之间的损失。
  2. 周期性令 $\theta^-\leftarrow\theta$,或采用软更新。

4.13 易错点

  • 强化学习没有逐动作标签,但可能存在固定的离线交互数据集。
  • 奖励和下一状态通常在执行 $A_t$ 后产生,统一记为 $R_{t+1},S_{t+1}$。
  • 外界影响应由状态和转移分布描述;观测不充分时是 POMDP,而不是“马尔可夫假设天然不适用于自动驾驶”。
  • 折扣回报是奖励的加权和,不是“加权平均”,其权重一般不归一化。
  • $Q^*(s,a)=\max_{\pi}Q^{\pi}(s,a)$;贪心动作才是对 $a$ 取 $\arg\max$。
  • $V^{\pi}$ 对策略动作分布求期望,$Q^{\pi}$ 条件在第一个动作已经指定。
  • SARSA 使用实际下一动作,Q-learning/DQN 使用下一状态最大 Q 值,二者不能混写。
  • 终止状态的 TD 目标只有即时奖励;截断与终止要区分。
  • DQN 输出的是每个离散动作的价值估计,不是动作概率。
  • TD 目标必须停止梯度;经典 DQN 还依赖经验回放和目标网络稳定训练。
  • Gym 旧 API 的 done 已拆分为 terminated 与 truncated,CartPole-v0 也应换成 v1。

相关知识

4.14 本节复盘

  • 强化学习通过智能体与环境交互产生数据,目标是最大化长期累积回报。
  • MDP 由状态、动作、转移、奖励和折扣因子构成,马尔可夫性要求当前状态足以预测未来。
  • 折扣回报满足 $G_t=R_{t+1}+\gamma G_{t+1}$,为 TD 自举提供基础。
  • $V^{\pi}(s)$ 评价状态,$Q^{\pi}(s,a)$ 评价状态-动作对;二者由 Bellman 方程递归定义。
  • 最优策略可由 $Q^*$ 的贪心动作得到,但训练时仍要保留探索。
  • DQN 用神经网络为每个离散动作估计 Q 值。
  • Q-learning 的 TD 目标是一步奖励加下一状态最大 Q 值;终止时不 bootstrap。
  • 经验回放打破样本相关性,目标网络减缓目标漂移,二者是经典 DQN 稳定训练的核心。