配音

Lecture 19-20:强化学习与总结

课程简介

MDP、值迭代与策略迭代、课程总结。

🎬 本课程视频:Stanford CS229 — 斯坦福机器学习


一、马尔可夫决策过程(MDP)

1.1 基本框架

马尔可夫决策过程(Markov Decision Process, MDP)是强化学习的数学框架。它由五元组 $(S, A, P, R, \gamma)$ 定义:

1.2 马尔可夫性

马尔可夫性:未来状态只依赖于当前状态,与历史无关。

$$P(s_{t+1} | s_t, a_t, s_{t-1}, a_{t-1}, ...) = P(s_{t+1} | s_t, a_t)$$

这个假设让问题变得可解——我们只需要知道当前状态就能做决策。

1.3 策略

策略 $\pi: S \to A$ 是从状态到动作的映射。最优策略 $\pi^*$ 最大化期望累积折扣奖励:

$$E\left[ \sum_{t=0}^{\infty} \gamma^t R(s_t, a_t) \bigg| \pi \right]$$

折扣因子 $\gamma$ 的含义:
- $\gamma = 0$:只关心即时奖励(短视)
- $\gamma \to 1$:重视长期奖励(远视)
- $0 < \gamma < 1$:保证无限时域下的累积回报有限

二、值迭代与策略迭代

2.1 值函数

状态值函数(State Value Function) $V^\pi(s)$:在状态 $s$ 遵循策略 $\pi$ 的期望累计折扣奖励:

$$V^\pi(s) = E\left[ \sum_{t=0}^{\infty} \gamma^t R(s_t, \pi(s_t)) \bigg| s_0 = s \right]$$

动作值函数(Action-Value Function) $Q^\pi(s, a)$:在状态 $s$ 执行动作 $a$ 后遵循策略 $\pi$ 的期望累计折扣奖励:

$$Q^\pi(s, a) = E\left[ \sum_{t=0}^{\infty} \gamma^t R(s_t, a_t) \bigg| s_0 = s, a_0 = a \right]$$

2.2 贝尔曼方程

贝尔曼方程(Bellman Equation)是强化学习的核心。它将 $V^\pi(s)$ 分解为即时奖励和未来价值:

$$V^\pi(s) = R(s, \pi(s)) + \gamma \sum_{s'} P(s' | s, \pi(s)) V^\pi(s')$$

对于最优值函数 $V^*$:

$$V^(s) = \max_a \left[ R(s, a) + \gamma \sum_{s'} P(s' | s, a) V^(s') \right]$$

2.3 值迭代(Value Iteration)

值迭代直接迭代计算最优值函数:

  1. 初始化 $V(s) = 0$ 对所有 $s$
  2. 重复直到收敛:
    $$V(s) := \max_a \left[ R(s, a) + \gamma \sum_{s'} P(s' | s, a) V(s') \right]$$
  3. 收敛后提取最优策略:
    $$\pi^*(s) = \arg\max_a \left[ R(s, a) + \gamma \sum_{s'} P(s' | s, a) V(s') \right]$$

值迭代的收敛保证:$V$ 以线性速度收敛到 $V^*$,收敛率由 $\gamma$ 决定。

2.4 策略迭代(Policy Iteration)

策略迭代交替执行策略评估和策略改进:

  1. 策略评估:计算当前策略 $\pi$ 的值函数 $V^\pi$
    - 解线性方程组:$V^\pi(s) = R(s, \pi(s)) + \gamma \sum_{s'} P(s' | s, \pi(s)) V^\pi(s')$
  2. 策略改进:基于 $V^\pi$ 改进策略:
    $$\pi'(s) = \arg\max_a \left[ R(s, a) + \gamma \sum_{s'} P(s' | s, a) V^\pi(s') \right]$$
  3. 如果策略不再变化,终止

策略迭代在有限 MDP 中保证在有限步内收敛到最优策略(通常远少于状态数)。

2.5 值迭代 vs 策略迭代

方面 值迭代 策略迭代
迭代对象 值函数 策略
收敛速度 线性($\gamma$ 决定) 超线性(通常更快)
每次迭代成本 $O( S
适用场景 状态空间大 状态空间中等

2.6 连续状态空间

当状态空间连续(如机器人位置、速度)时,上述算法不再适用。常用方法:

线性二次调节器(LQR):对于线性转移 $s_{t+1} = A s_t + B a_t$ 和二次奖励 $R(s, a) = -(s^T Q s + a^T R a)$,最优策略是状态 $\pi(s) = K s$ 的线性反馈——这可以通过动态规划求解。

三、强化学习的核心挑战

3.1 探索与利用(Exploration vs Exploitation)

强化学习的核心困境:智能体需要尝试新的动作来发现更优的策略(探索),但同时也需要利用已知的好动作来获取奖励(利用)。

ε-贪婪策略:以概率 $\epsilon$ 探索(随机动作),以 $1-\epsilon$ 利用(最优动作)。$\epsilon$ 通常随时间衰减。

置信上界(UCB):对不确定性高的动作给予额外奖励,平衡探索和利用。

汤普森采样(Thompson Sampling):维护参数的后验分布,每次从后验采样参数,然后选最优动作。

3.2 信用分配(Credit Assignment)

在长期序列中,哪个动作导致了最终的成功或失败?奖励延迟和稀疏时,这个问题尤其困难。

3.3 样本效率

强化学习通常需要极多的交互数据。DQN 需要数百万步学会 Atari 游戏。改进方法:
- 经验回放
- 模型基强化学习(学习环境模型,在模型内部做规划)
- 模仿学习(从专家示范中学习)

四、CS229 课程总结

4.1 核心主题回顾

CS229 涵盖了机器学习的全景:

  1. 监督学习:线性回归、逻辑回归、朴素贝叶斯、SVM
  2. 无监督学习:K-Means、GMM/EM、因子分析、ICA、PCA
  3. 学习理论:偏差-方差权衡、VC 维、统一收敛
  4. 强化学习:MDP、值迭代、策略迭代

4.2 关键思维框架

4.3 实践的六条黄金法则

  1. 从最简单的模型开始:线性回归或逻辑回归做基线
  2. 先诊断再修复:学习曲线判断是偏差还是方差问题
  3. 交叉验证:永远不要用测试集做模型选择
  4. 特征工程比模型更重要:好的特征 + 简单模型 > 差特征 + 复杂模型
  5. 理解你的数据:可视化、统计摘要、异常检测
  6. 正则化是你的朋友:防止过拟合的第一道防线

五、总结

强化学习是从交互中学习决策的范式。MDP 提供了数学框架,值迭代和策略迭代提供了求解方法。CS229 的整个课程从监督学习出发,经过无监督学习和学习理论,最终到达强化学习——构成了机器学习的完整版图。

六、CS229 全课程核心知识图谱

6.1 知识体系总览

CS229 的知识体系可以归纳为三大维度:

维度一:学习范式(按监督信号划分)
- 监督学习:线性回归 → 逻辑回归 → 朴素贝叶斯 → SVM
- 无监督学习:K-Means → GMM/EM → PCA → ICA → 因子分析
- 强化学习:MDP → 值迭代 → 策略迭代 → Q-Learning

维度二:理论基础(按数学工具划分)
- 概率统计:MLE、MAP、贝叶斯统计、指数族分布、GLM
- 优化理论:梯度下降、牛顿法、SMO、EM 算法
- 学习理论:偏差-方差权衡、VC 维、统一收敛

维度三:实践技能(按 ML 工作流划分)
- 数据预处理:特征缩放、归一化、缺失值处理
- 模型评估:交叉验证、学习曲线、误差分析
- 模型选择:正则化、特征选择、超参数调优

6.2 核心思维模型

CS229 培养了以下三种核心思维模型:

1. 以数据为中心的思维:理解数据分布和特性,让数据指导模型选择和评估。每个模型都有自己的"能力圈"——GDA 在高斯数据下高效,SVM 在非线性边界下强大。

2. 诊断驱动的思维:不要随机尝试各种方法,而是通过诊断工具(学习曲线、误差分析)找出问题的根因,再有针对性地解决。训练误差高是偏差问题,验证误差高是方差问题——不同的诊断对应不同的解决方案。

3. 概率建模的思维:许多 ML 算法可以从概率角度统一理解——最小二乘 = MLE + 高斯噪声,交叉熵 = MLE + 伯努利分布,L2 正则化 = MAP + 高斯先验。

6.3 后续学习路径

完成 CS229 后的进阶方向:

深度学习:CS231n(计算机视觉)、CS224n(自然语言处理)

深度强化学习:CS234(强化学习进阶)

MLOps 与工程实践:MLOps 课程补充了数据管理、部署、监控等工业实践

专业方向:推荐系统、计算广告、NLP、计算机视觉、机器人

记住,理论学习的终点是实践。Andrew Ng 建议:花 20% 的时间学习理论,80% 的时间动手做项目。在真实数据上反复实践,是吃透 CS229 知识的最佳途径。

深度 Q 网络(DQN)

当状态空间连续或维度很高时(如 Atari 游戏中的原始像素输入),传统的 Q 学习无法通过表格存储所有状态-动作对的值函数。深度 Q 网络(DQN)使用深度神经网络来近似 Q 函数:$Q(s, a; \theta) \approx Q^*(s, a)$。

DQN 引入了两个关键创新来解决训练不稳定的问题。第一是经验回放(Experience Replay):将智能体的经历 $(s_t, a_t, r_t, s_{t+1})$ 存储在回放缓冲区中,训练时随机采样小批量。这打破了连续样本之间的相关性,使得训练数据满足独立同分布假设。第二是目标网络(Target Network):维护一个单独的目标网络 $Q(s, a; \theta^-)$ 来计算 TD 目标,每隔固定步数才从主网络复制参数。这减少了目标值随模型更新的剧烈变动,稳定了训练过程。DQN 在 49 款 Atari 游戏中达到了超越人类专业玩家的水平,是深度强化学习的里程碑工作。

延伸阅读