Lecture 1: Introduction
第一部分:监督学习(Supervised Learning)
Lecture 1: Introduction
概述
本讲是课程的开篇,回答三个问题:机器学习是什么(从数据中自动发现规律)、学什么(三大学习范式:监督、无监督、强化学习)、为什么现在学(数据与算力的爆发)。同时介绍课程的结构、工具(Python/NumPy)与评分方式,为后续所有讲座建立共同语言。
核心概念与数学直觉
机器学习的形式化定义:一个程序被认为“在学习”,如果它在任务 $T$ 上的性能度量 $P$ 随着经验 $E$ 的增加而提高。例如:垃圾邮件过滤中,$T$=判断邮件是否为垃圾,$P$=分类准确率,$E$=已标注的邮件样本。
- 监督学习 (Supervised Learning):训练数据为输入-输出对 $\{(x^{(i)}, y^{(i)})\}_{i=1}^{m}$,目标是学习映射 $h: \mathcal{X} \to \mathcal{Y}$(称为假设函数 hypothesis)。
- $y$ 连续 → 回归 (Regression)(如房价预测)。
- $y$ 离散 → 分类 (Classification)(如垃圾邮件判断)。
- 直观解释:像学生做“带标准答案的习题集”——每道题 $(x^{(i)})$ 都有正确答案 $y^{(i)}$,学完后要能回答没见过的题目。
- 无监督学习 (Unsupervised Learning):训练数据只有输入 $\{x^{(i)}\}$,没有标签。
- 目标是发现数据内在结构:聚类(K-Means、GMM)、降维(PCA、ICA)。
- 直观解释:像整理一堆没有标签的照片——自动按人脸、场景分组(聚类),或找出最能区分照片的主要维度(降维)。
- 强化学习 (Reinforcement Learning):没有标签,只有奖励信号 (reward)。智能体 (agent) 与环境 (environment) 交互,通过试错最大化累积奖励。
- 直观解释:像训练小狗——不告诉它“先抬左腿再抬右腿”,只在它做得对时给零食(正奖励)、做错时不给(负奖励)。
- 学习范式的对比直觉: | 范式 | 数据 | 反馈形式 | 典型目标 | |—|—|—|—| | 监督学习 | $(x, y)$ 对 | 直接答案 | 拟合 $x \to y$ | | 无监督学习 | $x$ | 无 | 发现结构 | | 强化学习 | 状态/动作序列 | 稀疏的奖励 | 最大化长期回报 |
算法伪代码与逻辑解说
本讲以概念为主,无核心算法。这里给出贯穿全课程的方法论伪代码——机器学习项目的一般流程:
伪代码:监督学习项目流程
输入:
- 原始数据 D(特征 + 可能的标签)
- 任务类型 T(回归/分类/聚类/...)
输出:
- 训练好的模型 f,及其在测试集上的性能报告
1. 收集数据并清洗(处理缺失值、异常值)
2. 划分数据集: train / dev (validation) / test
3. 选择模型族(线性、树、神经网络...)与损失函数
4. 在训练集上拟合模型(优化损失)
5. 在 dev 集上评估,诊断问题:
- 高偏差(欠拟合) → 增加特征/容量
- 高方差(过拟合) → 正则化/更多数据
6. 调参并重复 4-5
7. 最终在 test 集上报告性能(只测一次!)
【算法逻辑解说】
- 数据划分是关键纪律:
test集必须像“未来数据”一样被隔离——如果反复用测试集调参,模型会“记住”测试集(数据泄漏),评估就失去意义。课程 L4 专门讲解数据集划分,L5 讲偏差/方差诊断。 - dev 集是“试衣间”:所有调参、模型选择都在 dev 集上做;test 集只在最后使用一次。
- 循环改进:机器学习是迭代工程——训练 → 诊断 → 改进 → 再训练,L13(ML Advice)给出系统化的诊断方法。
关键要点
- 机器学习 = 数据 + 模型 + 优化 + 评估;四大模块缺一不可。
- 监督/无监督/强化学习的本质区别在于反馈形式(直接答案 / 无 / 稀疏奖励)。
- 课程的理论主线:从概率建模(MLE)推导出损失函数,再用优化算法求解——L2–L4 会完整展示这条主线。
- 工具栈:Python + NumPy(课程先修要求),用向量化实现算法。
常见误区与注意事项
- 混淆“训练误差低”与“模型好”:模型可能在训练集上完美但泛化差(过拟合)。评估必须看未见数据。
- 过早优化细节:先跑通一个简单基线(如线性模型),再逐步增加复杂度。
- 忽略数据质量:垃圾进垃圾出 (garbage in, garbage out)——数据清洗与特征工程往往比换模型更有效。
- 误以为“深度学习=机器学习全部”:CS229 强调理解所有经典算法(线性回归、SVM、EM…),它们是大模型的基础构件。
思考题
- 问题:判断以下场景属于哪种学习范式:(a) 根据用户历史点击预测其下一步点击的商品;(b) 将新闻自动聚类成主题;(c) 让机器人学习走路。
- 答案:(a) 监督学习(有用户-商品对作为标签);(b) 无监督学习(无标签聚类);(c) 强化学习(只有“前进/摔倒”的奖励信号)。
- 问题:为什么不能把测试集用于模型选择?
- 答案:因为模型选择的本质也是“学习”——如果依据测试集表现选模型,测试集的信息就泄漏进了模型,最终报告的性能会系统性偏乐观(过拟合测试集)。必须用独立的 dev 集做选择,test 集只用于最终的一次性评估。
