Lecture 19-20:强化学习与总结
课程简介
MDP、值迭代与策略迭代、课程总结。
🎬 本课程视频:Stanford CS229 — 斯坦福机器学习
一、马尔可夫决策过程(MDP)
1.1 基本框架
马尔可夫决策过程(Markov Decision Process, MDP)是强化学习的数学框架。它由五元组 $(S, A, P, R, \gamma)$ 定义:
- $S$:状态集合,表示环境的所有可能状态
- $A$:动作集合,表示智能体可以采取的所有动作
- $P(s' | s, a)$:状态转移概率,在状态 $s$ 执行动作 $a$ 后转移到 $s'$ 的概率
- $R(s, a)$:奖励函数,在状态 $s$ 执行动作 $a$ 获得的即时奖励
- $\gamma \in [0, 1]$:折扣因子,控制未来奖励的重要性
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)
值迭代直接迭代计算最优值函数:
- 初始化 $V(s) = 0$ 对所有 $s$
- 重复直到收敛:
$$V(s) := \max_a \left[ R(s, a) + \gamma \sum_{s'} P(s' | s, a) V(s') \right]$$ - 收敛后提取最优策略:
$$\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)
策略迭代交替执行策略评估和策略改进:
- 策略评估:计算当前策略 $\pi$ 的值函数 $V^\pi$
- 解线性方程组:$V^\pi(s) = R(s, \pi(s)) + \gamma \sum_{s'} P(s' | s, \pi(s)) V^\pi(s')$ - 策略改进:基于 $V^\pi$ 改进策略:
$$\pi'(s) = \arg\max_a \left[ R(s, a) + \gamma \sum_{s'} P(s' | s, a) V^\pi(s') \right]$$ - 如果策略不再变化,终止
策略迭代在有限 MDP 中保证在有限步内收敛到最优策略(通常远少于状态数)。
2.5 值迭代 vs 策略迭代
| 方面 | 值迭代 | 策略迭代 |
|---|---|---|
| 迭代对象 | 值函数 | 策略 |
| 收敛速度 | 线性($\gamma$ 决定) | 超线性(通常更快) |
| 每次迭代成本 | $O( | S |
| 适用场景 | 状态空间大 | 状态空间中等 |
2.6 连续状态空间
当状态空间连续(如机器人位置、速度)时,上述算法不再适用。常用方法:
- 离散化:将连续空间划分为网格
- 线性系统 + LQR:当转移是线性的、奖励是二次时
- 函数逼近:用神经网络逼近值函数(DQN)
线性二次调节器(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)
在长期序列中,哪个动作导致了最终的成功或失败?奖励延迟和稀疏时,这个问题尤其困难。
- 资格迹(Eligibility Traces):将延迟的奖励按时间顺序分配到各步
- 蒙特卡洛方法:只在整个回合结束后才更新值函数
3.3 样本效率
强化学习通常需要极多的交互数据。DQN 需要数百万步学会 Atari 游戏。改进方法:
- 经验回放
- 模型基强化学习(学习环境模型,在模型内部做规划)
- 模仿学习(从专家示范中学习)
四、CS229 课程总结
4.1 核心主题回顾
CS229 涵盖了机器学习的全景:
- 监督学习:线性回归、逻辑回归、朴素贝叶斯、SVM
- 无监督学习:K-Means、GMM/EM、因子分析、ICA、PCA
- 学习理论:偏差-方差权衡、VC 维、统一收敛
- 强化学习:MDP、值迭代、策略迭代
4.2 关键思维框架
- 模型选择的偏差-方差权衡:简单模型高偏差低方差,复杂模型低偏差高方差
- 参数化 vs 非参数化:参数化模型压缩知识到参数中,非参数化保留训练数据
- 频率派 vs 贝叶斯派:频率派点估计,贝叶斯派全分布
- 判别 vs 生成:判别学习边界,生成学习分布
4.3 实践的六条黄金法则
- 从最简单的模型开始:线性回归或逻辑回归做基线
- 先诊断再修复:学习曲线判断是偏差还是方差问题
- 交叉验证:永远不要用测试集做模型选择
- 特征工程比模型更重要:好的特征 + 简单模型 > 差特征 + 复杂模型
- 理解你的数据:可视化、统计摘要、异常检测
- 正则化是你的朋友:防止过拟合的第一道防线
五、总结
强化学习是从交互中学习决策的范式。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 游戏中达到了超越人类专业玩家的水平,是深度强化学习的里程碑工作。
延伸阅读
- 📺 B 站播放列表:Stanford CS229 — 斯坦福机器学习
- 📚 更多学习资源,请访问 deeplearning.ai 官网