Lecture 1: Introduction

目录 · ← l0 · l2 →

第一部分:监督学习(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 集上报告性能(只测一次!)

【算法逻辑解说】

  1. 数据划分是关键纪律test 集必须像“未来数据”一样被隔离——如果反复用测试集调参,模型会“记住”测试集(数据泄漏),评估就失去意义。课程 L4 专门讲解数据集划分,L5 讲偏差/方差诊断。
  2. dev 集是“试衣间”:所有调参、模型选择都在 dev 集上做;test 集只在最后使用一次。
  3. 循环改进:机器学习是迭代工程——训练 → 诊断 → 改进 → 再训练,L13(ML Advice)给出系统化的诊断方法。
关键要点
  1. 机器学习 = 数据 + 模型 + 优化 + 评估;四大模块缺一不可。
  2. 监督/无监督/强化学习的本质区别在于反馈形式(直接答案 / 无 / 稀疏奖励)。
  3. 课程的理论主线:从概率建模(MLE)推导出损失函数,再用优化算法求解——L2–L4 会完整展示这条主线。
  4. 工具栈:Python + NumPy(课程先修要求),用向量化实现算法。
常见误区与注意事项
  • 混淆“训练误差低”与“模型好”:模型可能在训练集上完美但泛化差(过拟合)。评估必须看未见数据。
  • 过早优化细节:先跑通一个简单基线(如线性模型),再逐步增加复杂度。
  • 忽略数据质量:垃圾进垃圾出 (garbage in, garbage out)——数据清洗与特征工程往往比换模型更有效。
  • 误以为“深度学习=机器学习全部”:CS229 强调理解所有经典算法(线性回归、SVM、EM…),它们是大模型的基础构件。
思考题
  1. 问题:判断以下场景属于哪种学习范式:(a) 根据用户历史点击预测其下一步点击的商品;(b) 将新闻自动聚类成主题;(c) 让机器人学习走路。
    • 答案:(a) 监督学习(有用户-商品对作为标签);(b) 无监督学习(无标签聚类);(c) 强化学习(只有“前进/摔倒”的奖励信号)。
  2. 问题:为什么不能把测试集用于模型选择?
    • 答案:因为模型选择的本质也是“学习”——如果依据测试集表现选模型,测试集的信息就泄漏进了模型,最终报告的性能会系统性偏乐观(过拟合测试集)。必须用独立的 dev 集做选择,test 集只用于最终的一次性评估。