从 FDE 视角重读吴恩达机器学习课程
新版用 Python 取代 Octave,正是客户现场常见的 notebook,每周 10 小时约两个月学完。

要点速览
- DeepLearning.AI 与 Stanford Online 合作的三门入门课程,Coursera 估计每周 10 小时、约需两个月
- 新版用 Python 重新设计了讲课和作业,取代原课程的 Octave,更贴近客户现场实际使用的工具
- 对 FDE 来说,第 1、2 门是核心;第 3 门有选择地学,优先学推荐系统部分
Machine Learning 原版课程上线十年后,DeepLearning.AI 重新设计了讲课和作业。团队在博客中解释,自课程首次推出以来,这一领域已有了很大变化。最明显的改动是:讲课和作业现在改用 Python,不再使用原课程的 Octave。
这看似是个小细节,但对想做前线部署工程师(FDE)的人来说很重要。在客户现场,几乎碰不到 Octave;打开的多半是装着 NumPy、scikit-learn 或 TensorFlow 的 Python notebook。学新版课程,也就顺带练熟了项目第一周就要用到的工具。
一套名副其实的入门课程
课程正式名称是机器学习专项课程(Machine Learning Specialization),由 DeepLearning.AI 与 Stanford Online 联合打造,发布在 Coursera 上。
整套课程共三门,Coursera 定为初学者级别,预计每周 10 小时、约两个月学完。对有全职工作的开发者来说,只要保持稳定的节奏,这个进度完全吃得消。
DeepLearning.AI 称其为一套对初学者友好的三门课程,并明确表示不需要深厚的数学背景:最重要的是你想学 AI 和 ML,其余的他们会在学习过程中帮你补上。对多年没碰过线性代数的开发者来说,这是门槛最低的入口。
按什么顺序学?
按 1、2、3 的顺序学,但不要平均分配时间。第 1 门课教你用 NumPy 和 scikit-learn 构建 ML 模型。第 2 门课教你用 TensorFlow 训练神经网络,完成多分类任务。
第 3 门课名为 Unsupervised Learning, Recommenders, Reinforcement Learning,其中包括构建一个深度强化学习模型。如果目标是 FDE 岗位,把大部分时间投入第 1、2 门课。
第 3 门课里,推荐系统部分值得细学,因为推荐是商业企业常提的需求;强化学习部分掌握概念即可,不必深陷其中。
NumPy 部分不要偷懒
第 1 门课同时用到 NumPy 和 scikit-learn。建议不要为了尽快用上库而略过 NumPy 部分:正是这些手写的计算,让你看清模型内部在做什么。客户问模型为什么给出某个预测时,你要用原理来回答,而不是报一个函数名。
scikit-learn 则让你快速出结果。到客户那里,第一件事就是在第一天下午搭好基线,作为所有更复杂方案都必须超越的基准。
70% 的准确率可能毫无意义
第 2 门课用 TensorFlow 讲多分类,这类问题在部署工作中随处可见。设想一家公司要把 1,000 张客服工单自动分到 4 个类别,其中 700 张属于“账单”类。
一个偷懒的模型把所有工单都猜成“账单”,照样能拿到 70% 的准确率,却一张技术类工单都没分对。在 scikit-learn 里,几行代码就能搭出这个偷懒模型和一个真正的逻辑回归基线,并打印各类别召回率:
from sklearn.dummy import DummyClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
lazy = DummyClassifier(strategy="most_frequent").fit(X_train, y_train)
print(lazy.score(X_test, y_test)) # 约 0.70:起跑线
model = LogisticRegression(max_iter=1000).fit(X_train, y_train)
print(classification_report(y_test, model.predict(X_test))) # 每个类别的召回率和 F1
下表是一个假设结果,用来说明这个陷阱。神经网络的准确率最高,抓到的技术类工单却比逻辑回归少。
| 模型(假设) | 准确率 | “账单”类召回率 | “技术”类召回率 |
|---|---|---|---|
| DummyClassifier(预测最常见类别) | 70% | 100% | 0% |
| LogisticRegression | 81% | 93% | 47% |
| TensorFlow 神经网络 | 84% | 97% | 40% |
如果客户需要把技术类工单分给对口的人,那么尽管准确率更好看,表中的神经网络反而是更差的选择。所以 FDE 首先要问的是:各类别如何分布,客户真正需要分对的是哪一类。
一条实用规则:只有当神经网络同时胜过 DummyClassifier 和 LogisticRegression,而且不只是准确率更高,在客户关心的类别上召回率或 F1 也更高时,才推荐它。课程给了你训练网络的工具,这张对比表得靠你自己做。
推荐系统是客户真会提的问题
第 3 门课的推荐系统部分,把理论和 FDE 经常遇到的“给用户推荐商品”需求联系了起来。
接到推荐需求时,第一步是要求查看真实的交互数据,然后再承诺任何模型。
适合谁学,简历上怎么写
这门课适合想转做 FDE、从未训练过模型的后端或全栈开发者。有几年 ML 经验的人略读即可。不要在简历上只列一张证书。
不如写这样一行:“使用 TensorFlow 将工单分为 4 类,并以 scikit-learn 基线为对照”,再附上准确率和最重要类别的召回率。这行字说明你不仅会跑模型,还会对照最低基准来评估模型。
这门课不会把你变成数据科学家。但它给你足够的底子,坐在客户身边时不至于手足无措,对 FDE 来说,这已经是不小的优势。
这篇文章对你有帮助吗?
感谢你的反馈!