UC Berkeley CS189: Introduction to Machine Learning — Course Guide from the cs-self-learning Project
CS189(Berkeley EECS 的机器学习入门课)在 cs-self-learning(CS 自学指南)中被定位为一门“更数学、更深入”的机器学习课程:它与 Stanford CS229 同属进阶路线上的备选项,却因作业代码与 Gradescope 自动评测系统(autograder)全部开源而更适合自学者。本文基于仓库中该课程的条目文档 CS189.en.md(其简体中文版见 CS189.md),结合 CS 学习规划 中的路线定位、先修课程页面与后续课程页面,说明这门课适合谁、学什么难度、如何接入你的自学计划。
课程速览(Course Snapshot)
仓库中该课程的条目以结构化元数据开场,是全书统一的课程卡片格式(可对照仓库模板 template.en.md 理解其字段含义):
| 字段 | 内容 | 说明 |
|---|---|---|
| 所属学校 | UC Berkeley | 授课方为 Berkeley EECS,由 Berkeley EECS 系的本科生难度课程体系收录 |
| 先修要求 | CS188、CS70 | 见下文“先修链条”一节 |
| 编程语言 | Python | 课程作业以 Python 为主要实现语言 |
| 课程难度 | 🌟🌟🌟🌟(4/5) | 在仓库中属于中高难度档位,高于 CS70(🌟🌟🌟)与 CS188(🌟🌟🌟) |
| 预计学时 | 100 小时 | 仓库贡献者给出的粗略预算,可与 CS229 的 100 小时横向对比 |
以上难度星级与学时均为仓库维护者的主观评估,并非课程官方数据,请作为规划时间的参考而非承诺。
仓库为什么推荐这门课:开源作业 + 理论深度
CS189 的条目文档直接给出了仓库维护者的选课理由,原文要点如下:
我没有系统修过这门课,只把它的课程 notes 当作参考书查阅;但从课程网站看,它比 CS229 更好的一点是开源了全部 homework 代码以及 gradescope 上的 autograder;并且这门课讲得相当理论且深入。
把这句话拆开看,其实对应了自学者最关心的三个维度:
- 资料可获取性:Stanford CS229 的作业“不对公众开放”(见 CS229.en.md),而 CS189 的作业与自动评测全部公开,意味着自学者可以像在校生一样提交作业并获得即时反馈,这正是它在该仓库被反复提及的核心优势。
- 理论深度:条目明确强调这门课“讲得相当理论且深入”。在仓库的路线里,它被归为“想理解神奇算法背后数学原理”时应该选择的课程(见 [CS学习规划.en.md](https://gitcode.com/GitHub_Trending/cs/cs-self-learning/blob/adce8e13789dc16aa6d1fbe163e9541736defae4/docs/CS学习规划.en.md?utm_source=gitcode_repo_files#machine-learning 章节))。
- 学习方式灵活:维护者本人并未完整上课,而是将课程 notes 当作工具书/参考书来用——这说明课程的讲义本身独立、完整、可读,足以支撑“只看讲义”的自学方式。
需要提醒的是,“比 CS229 更好”是仓库维护者的个人判断,判断依据集中在“开源程度”而非学术水平。若你的目标是研究生级的数学理论训练,仓库同时给出了 CS229 作为对照选项,两者并非互斥。
先修链条:CS70 → CS188 → CS189
条目把先修要求标注为 CS188 与 CS70,这两门课在该仓库中同样有完整条目:
- CS70(离散数学与概率论):Berkeley 的离散数学与概率论课程,覆盖逻辑证明、图论、数论(RSA)、多项式环与概率论,并把每个理论模块与实际算法(如稳定匹配、网络拓扑、纠错码、哈希表与负载均衡)对应起来。它是理解 CS189 中线性代数与概率推导的数学地基,仓库标注难度 🌟🌟🌟、约 60 小时。
- CS188(人工智能导论):Berkeley 的 AI 入门课,内容涵盖搜索剪枝、约束满足问题、马尔可夫决策过程、强化学习、贝叶斯网络、隐马尔可夫模型以及基础的机器学习与神经网络,难度 🌟🌟🌟、约 50 小时。它为 CS189 铺垫了“用算法建模问题”的直觉。
在机器学习主路线中的位置
仓库在 CS 学习规划 中把机器学习的学习拆成“先上手 → 后深入”两段:
- 上手:完全零基础时,先学吴恩达的 Coursera: Machine Learning(难度 🌟🌟🌟、约 100 小时),它以“把算法讲到像 1+1=2 一样直白”著称,适合建立整体认知但刻意放低了数学推导。
- 深入:当想理解算法背后的数学原理、甚至从事相关科研时,路线明确给出了两个进阶选项——Stanford CS229 或 UCB CS189(即本文主题课程)。原文措辞为:“还需要一门更‘数学’的课程,例如 CS229 或者 CS189。”
换言之,CS189 在仓库路线中是“数学深度进阶”阶段的两条主路之一,与 CS229 平级、可二选一。
学完 CS189 之后可以接什么
仓库用 CS189 作为先修的后继课程提供了一个直接的“下游参照”:
- CS285: Deep Reinforcement Learning(UC Berkeley 深度强化学习)在条目中明确把先修要求写为 CS188、CS189。这说明 CS189 的统计学习功底被视作进入强化学习研究的必要前置,可作为修完后的下一站。
- 若目标是机器学习理论研究,仓库还维护了一份更深入的研究生路线图 机器学习进阶/roadmap.en.md,可在学完 CS189 后按需衔接。
课程资源与自学建议
条目文档“课程资源”一节列出了四类资源的统一入口(课程网站 / 课程视频 / 课程教材 / 课程作业,均指向课程官方站点与录像播放列表)。按照本仓库的中英双语规范,完整原始链接保留在仓库页面 CS189.en.md(中文版见 CS189.md)中,请以仓库页面维护的链接为准;配置层面对这门课的收录与目录命名可对照 mkdocs.yml 中 “机器学习” 分组的导航条目验证。
结合仓库信息给自学者几条可执行的建议:
- 把官方课程讲义当教材精读:维护者的实践经验是“课程 notes 足以独立使用”,不要求先看视频再动手。建议以讲义为主、按章节做笔记,遇到不懂的再回到课程主页的 schedule 查找对应资料。
- 认真做 homework 并用 autograder 验证:这是 CS189 相对同类课程的最大可用性优势——全部作业与 Gradescope 自动评测开源,自学者能得到近似在校生的“提交 → 判分 → 反馈”闭环,是自测理解程度的硬指标。
- 预留足够的数学与时间预算:难度 4/5、预计 100 小时意味着它高于 CS70/CS188 的体量,且强调理论推导;建议在离散数学与概率(CS70 内容)基本牢固后再开课,避免边学边补数学地基。
- 控制节奏、量力选择:与 CS229 二选一时,若你更看重“可执行的开源作业与自动评测”,CS189 是更顺手的选项;若你偏好研究生级别的理论讲义体系,可对比 CS229 后再决定。
如何继续阅读本仓库
- 机器学习方向的同级课程卡片:Coursera ML、CS229,可用于横向对比难度与侧重点。
- 先修课程:CS70、CS188。
- 后继课程:CS285;理论进阶路线 roadmap.en.md。
- 全局选课顺序:CS 学习规划;课程页面的通用书写规范见 template.en.md。
总体而言,UC Berkeley CS189 是一门口碑上“理论深入、讲义可独立自学、作业与评测全开源”的机器学习课程。把它放进 cs-self-learning 的路线里,最合适的打开方式是:先修完 CS70 与 CS188,跟随官方 notes 精读、用开源的 homework 与 autograder 检验理解,再按兴趣通往 CS285 或机器学习理论进阶路线。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0626
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00