第 1 章 引言
这一章先回答三个问题:
- 机器学习为什么重要?
- 什么是机器学习?
- 监督学习和无监督学习分别是什么?
1.1 欢迎
机器学习已经成为信息技术里非常重要的方向。课程开头举了几个日常例子:
- 搜索引擎根据学习算法对网页排序。
- 图片应用可以识别朋友的照片。
- 邮箱可以自动过滤垃圾邮件。
- 推荐系统可以根据用户行为推荐电影、商品或音乐。
这门课不只是讲算法和数学,还强调自己实现算法。原因是:只知道公式不一定能解决实际问题,真正做机器学习时,还需要理解算法内部机制,并知道如何把算法用到具体场景中。
机器学习的应用范围很广,笔记中提到的方向包括:
| 方向 | 例子 |
|---|---|
| 数据挖掘 | 分析网站点击流、用户行为 |
| 医疗 | 从电子病历中总结疾病规律 |
| 计算生物学 | 分析基因、DNA 序列 |
| 工程 | 从越来越大的工程数据集中发现规律 |
| 自动控制 | 让无人直升机通过学习掌握飞行 |
| 手写识别 | 自动识别信封上的手写地址 |
| 自然语言处理 | 让机器理解文本 |
| 计算机视觉 | 让机器理解图像 |
| 推荐系统 | Amazon、Netflix、iTunes 等推荐内容 |
这一节的重点:机器学习的价值不只在人工智能本身,还在于它能让计算机从数据和经验中学习,而不是完全依赖人手写规则。
1.2 机器学习是什么?
课程里给了两个定义。
Arthur Samuel 的定义
Arthur Samuel 把机器学习理解为:在没有明确编程的情况下,让计算机具备学习能力。
他的例子是西洋棋程序。程序员自己不是高手,但让程序和自己下很多盘棋,从胜负中学习哪些棋盘局面更好,最后程序的下棋水平超过了作者。
这个定义比较直观:机器不是被逐条写死规则,而是通过经验提高表现。
Tom Mitchell 的定义
Tom Mitchell 的定义更适合考试和做笔记:
如果一个程序在任务 T 上,随着经验 E 的增加,经过性能度量 P 判断后表现有所提升,那么就说这个程序从经验 E 中学习。
可以拆成三个关键词:
| 符号 | 含义 | 例子:西洋棋 |
|---|---|---|
T | 任务 | 下棋 |
E | 经验 | 程序自己下了很多盘棋 |
P | 性能度量 | 和新对手比赛时的胜率 |
再看垃圾邮件过滤:
| 符号 | 含义 |
|---|---|
T | 判断邮件是否为垃圾邮件 |
E | 用户标记过的垃圾邮件和非垃圾邮件 |
P | 过滤准确率等指标 |
这一节还提到,课程主要讨论两类学习算法:
- 监督学习:教计算机如何完成任务。
- 无监督学习:让计算机自己从数据中发现结构。
课程后面也会涉及推荐系统、强化学习等内容,但最常用、最核心的是监督学习和无监督学习。
1.3 监督学习
监督学习的核心特征是:训练数据里包含“正确答案”。
也就是说,每个样本不只是有输入,还对应一个已知输出。算法根据这些样本学习规律,然后对新的输入做预测。
例子 1:房价预测
输入是房屋面积,输出是房价。已知很多房子的实际成交价格后,希望预测一套新房子大概能卖多少钱。
这个任务属于回归问题。
回归问题要预测的是连续值,例如:
- 房价
- 销量
- 温度
- 收入
在房价例子中,可以用一条直线拟合数据,也可以用更复杂的曲线拟合数据。后续课程会讨论如何选择模型。
例子 2:乳腺肿瘤判断
输入可以是肿瘤大小、患者年龄、肿块密度、细胞大小一致性等特征,输出是肿瘤属于良性还是恶性。
这个任务属于分类问题。
分类问题要预测的是离散类别,例如:
- 良性 / 恶性
- 垃圾邮件 / 非垃圾邮件
- 账号被盗 / 账号未被盗
- 癌症类型 0 / 1 / 2 / 3
回归和分类
| 类型 | 输出 | 课程例子 |
|---|---|---|
| 回归 | 连续值 | 根据房屋面积预测房价 |
| 分类 | 离散类别 | 判断肿瘤是良性还是恶性 |
监督学习小结:
- 数据集中每个样本都有正确答案。
- 回归用于预测连续值。
- 分类用于预测离散类别。
- 特征可以只有一个,也可以有很多个。
- 后面会学到支持向量机等算法,用来处理更复杂的特征空间。
1.4 无监督学习
无监督学习的核心特征是:训练数据没有明确标签,也没有提前给出正确答案。
算法拿到的是一堆数据,需要自己从数据中发现结构。
聚类
课程中首先介绍的是聚类算法。
聚类要做的是:把相似的数据自动分到同一组里。算法并不知道每一组应该叫什么,也没有人提前告诉它哪些样本属于同一类。
笔记中提到的聚类应用包括:
| 场景 | 含义 |
|---|---|
| Google 新闻 | 把同一主题的新闻自动聚到一起 |
| 基因数据分析 | 根据基因表达情况把个体分组 |
| 大型计算机集群 | 分析哪些机器更适合协同工作 |
| 社交网络分析 | 根据朋友关系自动发现社交圈 |
| 市场细分 | 根据顾客数据自动划分不同消费群体 |
| 天文数据分析 | 从星系数据中发现结构 |
这些问题都没有提前给出“正确分组”,所以属于无监督学习。
鸡尾酒宴问题
无监督学习不只有聚类。课程还举了鸡尾酒宴问题:
一个房间里有多人同时说话,多个麦克风录到的是混合声音。算法需要从混合录音中分离出不同人的声音。
这个例子说明:合适的数学工具和编程环境可以让复杂算法的实现变得很短。课程因此推荐使用 Octave / Matlab 来快速搭建机器学习算法原型。
现在 Python 更常用,但这一节想强调的不是语言本身,而是:先用适合实验的工具快速验证算法,再考虑工程化实现。
无监督学习小结
- 无监督学习没有标签,也没有提前给出正确答案。
- 目标是从数据中自动发现结构。
- 聚类是无监督学习的重要类型。
- 聚类可以用于新闻分组、基因分析、社交网络、市场细分等任务。
- 鸡尾酒宴问题说明无监督学习还可以用于信号分离。
本章对比
| 类型 | 数据特点 | 目标 | 例子 |
|---|---|---|---|
| 监督学习 | 有正确答案 / 有标签 | 学会输入到输出的映射 | 房价预测、肿瘤分类、垃圾邮件过滤 |
| 无监督学习 | 没有正确答案 / 没标签 | 自动发现数据结构 | 新闻聚类、市场细分、基因聚类、声音分离 |