机器学习的任务看起来五花八门:预测房价、识别肿瘤、给新闻分组、发现异常交易。理解这些问题的第一步,是分清数据中有没有正确答案。本篇整理 Coursera 机器学习课程的基础内容,从这个区别出发,梳理监督学习与无监督学习的核心概念和典型应用。
监督学习
监督学习(Supervised Learning)让算法学习从输入 x 到输出 y 的映射:
也可以表示为:
$$\hat{y}=f(x)$$x:输入或特征(Feature)y:正确答案,也称标签(Label)f:模型从数据中学习到的映射关系\hat{y}:模型给出的预测结果
监督学习的核心特点是:训练数据中同时包含输入和正确答案。一条训练样本可以表示为 $(x,y)$。之所以称为“监督”学习,是因为正确标签 y 为算法提供了学习目标。
训练与预测
训练阶段向算法提供大量带标签的数据:
$$(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),\ldots,(x^{(m)},y^{(m)})$$算法观察输入与输出之间的关系,学习得到模型 f。训练完成后,将模型从未见过的新输入 x 交给模型,模型根据学到的规律输出预测结果 $\hat{y}$。
模型的目标不是简单记住训练数据,而是对未见过的数据也能作出准确预测。这种能力称为泛化能力(Generalization)。
典型应用
| 应用 | 输入 x | 输出 y |
|---|---|---|
| 垃圾邮件过滤 | 邮件内容 | 垃圾邮件 / 非垃圾邮件 |
| 语音识别 | 音频片段 | 对应文字 |
| 机器翻译 | 源语言文本 | 目标语言文本 |
| 在线广告 | 广告信息与用户信息 | 用户是否会点击 |
| 自动驾驶 | 图像、雷达等传感器数据 | 周围车辆位置 |
| 工业视觉检测 | 产品照片 | 有缺陷 / 无缺陷 |
| 房价预测 | 房屋面积等信息 | 房屋价格 |
每个应用的本质,都是从大量已标注样本中学习输入与输出之间的关系。
回归:预测一个数值
回归(Regression)是监督学习的一种,目标是预测一个可以连续变化的数值。
房价预测案例
假设输入是房屋面积,输出是房屋价格,现在需要预测一套 750 平方英尺的房屋值多少钱。
最简单的方法是拟合一条直线:
$$f(x)=wx+b$$w:斜率,表示面积变化对价格的影响b:截距
直线模型可能预测房屋价值约为 15 万美元。也可以拟合一条更复杂的曲线:
$$f(x)=w_2x^2+w_1x+b$$曲线模型可能预测房屋价值接近 20 万美元。但不能因为某个模型给出的价格更高就选择它,而应该根据模型在数据上的客观表现进行选择。
模型太简单,可能无法充分学习规律;模型太复杂,则可能只记住训练数据,也就是发生过拟合(Overfitting),导致它在新数据上表现不好。
常见回归任务包括预测房价、气温、商品销量、运输时间和用户消费金额。它们的输出都可以在一定范围内连续变化。
分类:预测一个类别
分类(Classification)也是监督学习的一种,目标是预测一个离散类别。输出只能从有限数量的类别中选择,例如:
垃圾邮件 / 非垃圾邮件
有缺陷 / 无缺陷
猫 / 狗
患病 / 未患病
乳腺癌检测案例
假设要开发一个辅助医生诊断乳腺癌的系统,根据患者检查数据判断肿瘤属于:
- 良性(Benign):不是癌症,危险程度相对较低
- 恶性(Malignant):属于癌症,需要及时治疗
最简单的情况下,只使用肿瘤大小作为输入:
x:肿瘤大小
y:良性(0)或恶性(1)
每条训练数据可以表示为:
(1.2, 0)
(2.5, 0)
(4.8, 1)
(6.1, 1)
仅靠肿瘤大小可能不够准确,还可以同时使用患者年龄、肿块厚度、细胞大小均匀性和细胞形状均匀性等特征。此时,输入是一个包含多个特征的向量:
$$x=(x_1,x_2,\ldots,x_n)$$监督学习中的 x 不一定是一个数字,也可以是一组特征。
决策边界
当输入包含肿瘤大小和患者年龄时,可以将样本画在二维坐标中:横轴是肿瘤大小,纵轴是患者年龄,圆圈表示良性,叉号表示恶性。
分类算法会尝试找到一条决策边界(Decision Boundary),将两类样本区分开来。新患者出现时,模型根据其特征位于边界的哪一侧预测类别。决策边界不一定是直线,也可能是曲线或更复杂的形状。
回归与分类的区别
| 对比项 | 回归 | 分类 |
|---|---|---|
| 预测目标 | 连续数值 | 离散类别 |
| 输出范围 | 可连续变化 | 有限个类别 |
| 典型输出 | 183000 | 良性 / 恶性 |
| 数字之间是否有连续意义 | 有 | 通常没有 |
判断标准是:模型在回答“具体是多少”,还是“属于哪一类”?
分类中的类别也可以用数字表示,例如 0 表示良性、1 表示恶性,但这些数字只是类别编号,不代表连续的数量关系。手写数字识别虽然输出 0 到 9,仍然属于分类,因为模型只需要从十个类别中选择,而不是预测任意连续数值。
二分类与多分类
只有两个可能类别的问题称为二分类(Binary Classification):
| 问题 | 类别 |
|---|---|
| 垃圾邮件检测 | 垃圾 / 正常 |
| 欺诈检测 | 欺诈 / 正常 |
| 疾病检测 | 患病 / 未患病 |
| 广告点击预测 | 点击 / 不点击 |
存在三个及以上类别的问题称为多分类(Multiclass Classification):
图片分类:猫 / 狗 / 鸟
新闻分类:体育 / 财经 / 科技 / 娱乐
手写数字识别:0~9
疾病诊断:疾病 A / 疾病 B / 疾病 C
类别可以用数字编号,也可以用文字表示。数字在这里只是标签,不能认为“狗 = 猫 + 1”。
无监督学习
无监督学习(Unsupervised Learning)的数据只有输入 x,没有输出标签 y:
算法需要自行从数据中寻找:
- 隐藏的结构
- 相似的数据群体
- 数据分布规律
- 异常的数据点
- 更简洁的数据表示
“无监督”表示训练数据没有为每个输入提供正确答案,并不代表算法不受控制,也不代表它比监督学习差。
与监督学习的对比
| 对比项 | 监督学习 | 无监督学习 |
|---|---|---|
| 输入数据 | 输入 x 和标签 y | 只有输入 x |
| 是否有正确答案 | 有 | 没有 |
| 学习目标 | 学习 x 到 y 的映射 | 发现数据中的结构和模式 |
| 典型任务 | 回归、分类 | 聚类、异常检测、降维 |
| 示例 | 房价预测、疾病诊断 | 客户分群、新闻聚类 |
以乳腺癌检测为例:如果数据包含患者年龄、肿瘤大小和良性/恶性标签,就可以用监督学习预测诊断结果;如果只有患者年龄和肿瘤大小而没有标签,算法只能寻找患者之间可能存在的群体或规律。
聚类:寻找相似群体
聚类(Clustering)的目标是将相似的数据点自动分配到同一个簇(Cluster)中。
它有三个特点:
- 数据没有预先定义的类别标签
- 算法根据数据之间的相似性进行分组
- 分组结果通常需要人结合领域知识解释
“相似”取决于选择了哪些特征,以及算法如何计算数据之间的距离。
谷歌新闻
谷歌新闻每天处理大量报道。如果多篇文章都提到“熊猫、双胞胎、动物园、日本”,聚类算法可能判断它们讲述的是同一事件,并将它们归为一组。
没有员工提前告诉算法哪些关键词一定属于同一主题。新闻内容每天都在变化,算法必须自动判断当天出现了哪些主题,以及哪些文章正在讨论同一件事。
DNA与基因数据
DNA 微阵列数据中,每一列表示一个人的基因活动,每一行表示一个特定基因。每个人可以表示为大量基因特征组成的向量。
聚类算法能够将基因表达模式相似的人分到同一组。算法不知道这些群体应该叫什么,只是在回答:这些基因数据中是否存在自然形成的不同类型?
客户细分
公司可以根据年龄、地区、购买记录和浏览行为等数据,把相似客户划分到不同细分市场。
例如,一个在线学习社区可能发现:一组用户希望提升技能,一组希望获得晋升或新工作,另一组希望了解 AI 对自身行业的影响。企业可以据此推荐内容并设计服务,这类应用称为市场细分(Market Segmentation)。
异常检测:寻找偏离正常模式的数据
异常检测(Anomaly Detection)的目标是发现与大多数数据明显不同的异常样本。
在金融系统中,一笔交易可能表现出以下异常:
交易金额特别大
交易地点异常
短时间内连续交易
登录设备突然变化
消费行为与过去完全不同
这些异常可能是欺诈的信号。常见应用还包括网络攻击检测、设备故障检测、工业产品异常检测和医疗异常指标检测。
需要注意,异常不等于欺诈,只表示该数据与正常模式不同。异常检测也可以采用监督学习方法,但当异常样本很少或没有可靠标签时,经常采用无监督或半监督方法。
降维:用更少特征表示数据
降维(Dimensionality Reduction)的目标是在尽量保留重要信息的前提下,用更少的特征表示原始数据。
假设原始数据包含 1000 个特征:
$$x=(x_1,x_2,\ldots,x_{1000})$$降维算法可能将其压缩为几十个甚至两三个新特征:
$$z=(z_1,z_2,\ldots,z_k),\quad k \ll 1000$$降维可以压缩数据、提高部分算法的运行效率、减少重复信息和噪声,也可以将高维数据转换为二维或三维,方便可视化。它不是随意删除数据,而是尽可能保留数据中最重要的信息。
如何判断学习类型
判断任务时,首先问:训练数据中是否提供了标签?
- 邮件带有垃圾/非垃圾标签:监督学习中的分类
- 房屋带有实际价格:监督学习中的回归
- 新闻没有主题标签,需要自动分组:无监督学习中的聚类
- 客户没有预设类型,需要自动细分:无监督学习中的聚类
- 患者带有患糖尿病/未患糖尿病标签:监督学习中的分类
同一个业务问题也可能因为数据是否有标签,而采用不同的学习方式。
优势与局限
无监督学习不需要为所有数据人工标注,可以处理大量无标签数据,并发现人们事先没有注意到的结构,因此很适合探索陌生数据。
它也有明显局限:没有标准答案,结果较难评估;算法找到的结构不一定具有实际意义;聚类结果会受到特征选择和算法的影响;最终通常仍需要领域知识进行解释。
知识框架
机器学习
├── 监督学习
│ ├── 回归:预测数值(房价、温度)
│ └── 分类:预测类别(垃圾邮件、肿瘤性质)
│ ├── 二分类
│ └── 多分类
│
└── 无监督学习
├── 聚类:寻找相似群体(新闻分组、客户细分)
├── 异常检测:寻找异常数据(欺诈检测)
└── 降维:压缩数据并保留重要信息
监督学习使用带标签的 $(x,y)$ 数据,学习输入到输出的映射;无监督学习只有输入 x,目标是自动发现数据中的结构、模式或异常。两者并无高下之分,关键是根据数据和问题选择合适的方法。
术语表
| 中文 | 英文 | 含义 |
|---|---|---|
| 特征 | Feature | 描述样本的输入属性 |
| 标签 | Label | 训练数据中的正确答案 |
| 泛化 | Generalization | 对未见数据作出有效预测的能力 |
| 回归 | Regression | 预测连续数值 |
| 分类 | Classification | 预测离散类别 |
| 二分类 | Binary Classification | 只有两个输出类别 |
| 多分类 | Multiclass Classification | 存在三个及以上类别 |
| 决策边界 | Decision Boundary | 区分不同类别的边界 |
| 聚类 | Clustering | 将相似数据自动分组 |
| 簇 | Cluster | 聚类形成的数据群体 |
| 异常检测 | Anomaly Detection | 发现偏离正常模式的数据 |
| 降维 | Dimensionality Reduction | 用更少特征表示高维数据 |
| 市场细分 | Market Segmentation | 根据相似特征划分客户群体 |