机器学习
这门课学什么
课程讲监督学习、学习理论、无监督学习和强化学习的数学推导。SEE 站提供 2008 年全套视频、字幕稿、讲义和 4 套习题。2018 年版视频在 Stanford Online YouTube 频道。
内容摘要
CS229 是机器学习的数学主线课。吴恩达在 2018 年秋季版里从监督学习讲起,每个算法都在黑板上推导到公式。全课 20 讲,另有 1 节学习理论讨论课。课程目标是让学生理解算法为什么有效,而不只是会调用库。
第 1 阶段是监督学习,占前 8 讲。课程从线性回归和梯度下降开始,经过逻辑回归、感知机、广义线性模型和生成式学习算法,讲到支持向量机和核方法。第 8 讲和讨论课讲偏差与方差、交叉验证和学习理论,回答模型怎样才能泛化。
第 2 阶段讲决策树、集成方法和神经网络,并用 1 讲专门讨论怎样调试模型、做误差分析。第 3 阶段是无监督学习:K 均值、EM 算法、因子分析、主成分分析(PCA)和独立成分分析(ICA)。第 4 阶段是强化学习:马尔可夫决策过程、值迭代与策略迭代、连续状态问题、线性二次调节(LQR)和策略搜索。
选课学生要完成 5 套习题(PS0–PS4)和 1 个学期项目。习题以数学推导为主,配 Python 编程题。项目分 4 个环节:提案、中期报告、海报展示和终稿。
学完后,学生能独立推导经典机器学习算法,能读懂论文里的数学部分。吴恩达讲课节奏慢,推导完整,常停下来回答学生提问。想要配套文字材料,可以读课程官网的讲义(lecture notes),它和视频的推导顺序一致。
为什么值得学
吴恩达的 CS229 培养了一代机器学习研究者。它的讲义至今仍是推导层面的标准参考。
课程信息
- 学校
- 斯坦福(Stanford)
- 课程号
- CS229
- 讲师
- 吴恩达(Andrew Ng)
- 学期
- 2008 (SEE) / Autumn 2018 (YouTube)
- 平台
- Stanford Engineering Everywhere
- 费用
- 免费
- 难度
- 中级
- 学时
- 20 讲(SEE 版)
- 先修
- 需要线性代数、概率论和多元微积分基础,会一门编程语言。
- 材料
- 视频、讲义、作业、代码
- 许可证
- CC BY-NC-SA 4.0(SEE 站声明)
课程大纲 · 共 21 节
大纲依据:Autumn 2018 YouTube 播放列表(20 讲 + 1 节讨论课),对照 cs229.stanford.edu/syllabus-autumn2018.html 课程表(查看原始页面 ↗)
- 1导论Introduction
介绍机器学习的定义和课程的 4 大板块:监督学习、学习理论、无监督学习、强化学习。说明作业、项目和先修要求。
- 2线性回归与梯度下降Linear Regression and Gradient Descent
定义假设函数和代价函数。推导批量梯度下降、随机梯度下降和正规方程。
- 3局部加权回归与逻辑回归Locally Weighted & Logistic Regression
对比参数与非参数学习算法,从概率角度解释最小二乘。引入逻辑回归做分类,并用牛顿法求解。
- 4感知机与广义线性模型Perceptron & Generalized Linear Model
讲感知机算法和指数族分布。用广义线性模型统一线性回归、逻辑回归和 softmax 回归。
- 5高斯判别分析与朴素贝叶斯GDA & Naive Bayes
对比生成式与判别式学习算法。推导高斯判别分析,并与逻辑回归比较;引入朴素贝叶斯。
- 6支持向量机Support Vector Machines
讲朴素贝叶斯的拉普拉斯平滑和多项式事件模型。引入函数间隔与几何间隔,推出最优间隔分类器。
- 7核方法Kernels
把支持向量机写成对偶形式。用核技巧处理高维非线性特征,并举手写数字和蛋白质序列分类的例子。
- 8数据划分、模型选择与交叉验证Data Splits, Models & Cross-Validation
讲偏差与方差、正则化及其贝叶斯解释。介绍训练集、开发集、测试集的划分,k 折交叉验证和特征选择。
- 讨论课学习理论Discussion Section: Learning Theory
讲经验风险最小化和一致收敛。推导泛化误差界,说明模型复杂度和样本量怎样影响泛化。
- 9决策树与集成方法Decision Trees and Ensemble Methods
讲决策树的分裂准则和正则化。介绍 bagging、随机森林和 boosting。
- 10神经网络入门Introduction to Neural Networks
从逻辑回归过渡到神经网络。讲 softmax、网络结构和前向传播的向量化写法。
- 11反向传播与神经网络改进Backprop & Improving Neural Networks
用链式法则推导反向传播。讲激活函数、权重初始化、数据归一化、小批量训练和动量类优化器。
- 12模型调试与误差分析Debugging ML Models and Error Analysis
讲怎样判断问题出在高偏差、高方差还是优化算法。用误差分析案例决定下一步改进方向。
- 13期望最大化算法Expectation-Maximization Algorithms
讲 K 均值聚类和高斯混合模型,用于密度估计和异常检测。用 Jensen 不等式为 EM 算法做准备。
- 14EM 算法与因子分析EM Algorithm & Factor Analysis
推导 EM 算法的通用形式。在样本数少于维度时,用因子分析建模,并给出它的 EM 解法。
- 15主成分分析与独立成分分析PCA and ICA
推导主成分分析,讲它的用途和误用场景。引入独立成分分析,解决信号分离问题。
- 16独立成分分析与强化学习Independent Component Analysis & RL
完成独立成分分析的推导并举应用例子。回顾无监督学习,引入强化学习和马尔可夫决策过程。
- 17马尔可夫决策过程与值迭代、策略迭代MDPs & Value/Policy Iteration
讲价值函数和贝尔曼方程。推导值迭代和策略迭代,并讨论收敛性和探索问题。
- 18连续状态 MDP 与模型仿真Continuous State MDP & Model Simulation
讲连续状态空间的离散化及其局限。从数据学习仿真模型,用拟合值迭代近似价值函数。
- 19奖励模型与线性动态系统Reward Model & Linear Dynamical System
讲状态—动作奖励和有限时域 MDP。推导线性二次调节(LQR)算法。
- 20强化学习调试与诊断RL Debugging and Diagnostics
讲怎样定位强化学习系统的问题:模型、奖励还是策略。介绍策略搜索、REINFORCE 算法和部分可观测 MDP(POMDP)。
斯坦福的其他AI课
- 深度学习 · Deep Learning
- 面向计算机视觉的深度学习 · Deep Learning for Computer Vision
- 基于深度学习的自然语言处理 · Natural Language Processing with Deep Learning
- 图机器学习 · Machine Learning with Graphs
- 人工智能:原理与技术 · Artificial Intelligence: Principles and Techniques
- 强化学习 · Reinforcement Learning