第 3 周 · 第 3 课 · 50-60 分钟
把模型搞糊涂,再把它改进
找出那些能骗过分类器的边缘情况,在混淆矩阵里读懂它的错误,并提出让它变得更好的改动。
- 材料
- 在网页浏览器中打开的这节课 · 纸和笔,或者一个记事应用 · 本课中展示的内置错误集和混淆矩阵
- 本课
- 进行中
会自动保存在这台设备上
你将能够做到
- 针对某个类别,区分假阳性和假阴性。
- 找出那些很可能让分类器犯糊涂的边缘情况。
- 读懂混淆矩阵,看清哪些类别被弄混了。
- 提出一项改动,比如补充样例,来减少某个具体错误。
想一想
一个宠物分类器老是把某只特定的毛茸茸小狗叫作「猫」。而且它每次都很自信。这是随机的倒霉,还是它的错误里其实藏着一个你能找出来并修好的规律?
这节课要做的,是找出分类器错误背后的规律,而不只是注意到它会出错。
做个预测
预测一下:在一个分辨猫、狗、兔子的分类器里,你觉得哪两个类别最常被弄混?为什么?
- 假阳性
- 分类器说某样东西属于某个类别,但其实不属于;比如把一张其实是狗的照片叫作「猫」。
- 假阴性
- 分类器说某样东西不属于某个类别,但其实属于;比如漏掉一只真正的猫,把它说成狗。
- 边缘情况
- 处在两个类别边界附近的不寻常或棘手输入,比如一只看着有点像猫的毛茸茸小狗,很容易被判断错。
- 混淆矩阵
- 一张把真实标签与分类器的预测对照排列的表格,让你看清究竟是哪些类别被弄混、又混了多少次。
假阳性与假阴性
并非所有错误都一样。对「猫」而言,假阳性是分类器说了「猫」,但照片并不是猫。对「猫」而言,假阴性是照片确实是猫,分类器却说成了别的。每个类别都有这两种错误。
这个区别很重要,因为两种错误的代价可能天差地别。漏掉一次真正的火警(假阴性)可能远比一次误报(假阳性)严重得多,所以人们往往很在意一个系统会犯哪一类错误。
- 「猫」的假阳性:一张兔子照片被标成了「猫」。
- 「猫」的假阴性:一张真正的猫照片被标成了「狗」。
- 垃圾邮件过滤器把一封真实邮件标成垃圾,就是「垃圾邮件」这一类的假阳性。
边缘情况就落在边界附近
分类器的大部分错误都出在边缘情况上:那些落在两个类别边界附近的不寻常输入。一只毛茸茸的小狗与猫共享一些特征,一只耳朵耷拉着被拍下的兔子失去了关键特征,而一张昏暗模糊的照片把所有类别的特征都藏了起来。
边缘情况并非随机。如果你能预判哪些输入靠近边界,就能预判分类器会在哪里吃力,并针对这些情况去收集更好的样例。
- 一只无毛猫,缺少通常的毛发质地。
- 一只穿着服装的狗,身形被遮住了。
- 一张在极暗光线下拍的照片,颜色和边缘都不清楚。
读懂混淆矩阵,然后改进模型
混淆矩阵把真实标签和预测排成一张网格。对角线上的数字(真实为猫、预测为猫)是答对的;对角线之外的数字是错误,而每一个非对角格子都准确告诉你发生了哪种混淆、发生了多少次。「真实为狗、预测为猫」那格数字很大,就意味着狗经常被误认成猫。
一旦你看清了最大的那个错误,就可以有意识地改进模型。最常见的办法是为那个易混情形补充更多、更好的样例,比如更多毛茸茸小狗的照片,好让分类器学会区分它们的特征。矩阵指向哪里,你就在哪里改进,然后再测一次。
- 「真实为兔子、预测为猫」那格很大,就说明兔子经常被叫成猫。
- 补充更清晰的兔子照片,正是针对这个错误。
- 修改之后,你要重新检查准确率和矩阵,确认那个错误确实变少了。
例题讲解
从一个令人困惑的错误到一次有针对性的修正
- 看混淆矩阵,找出对角线之外最大的数字:「真实为兔子、预测为猫」,有 9 次错误。
- 说出错误的类型:对猫这个类别来说,这些是假阳性(被叫成猫,其实是兔子);对兔子这个类别来说,这些是假阴性(真兔子被漏掉了)。
- 追问为什么:兔子和猫可能共享毛发质地和圆润的外形,而耳朵耷拉着的兔子又失去了那个区分特征,这是典型的边缘情况。
- 提出修正方案:往训练集里补充更多兔子照片,尤其是耳朵耷拉着的、以及拍摄角度接近猫的,好让分类器学会两者的差别。
- 重新衡量:再测一次,看看「真实为兔子、预测为猫」那格是否变小了,兔子的准确率是否上去了。
要点:在混淆矩阵里找出最大的错误,说清它属于哪一类,解释背后的边缘情况,补充有针对性的样例,然后重新衡量。
| 预测 | |||
|---|---|---|---|
| 实际 | Cat | Dog | 兔子 |
| Cat | 47 | 2 | 1 |
| Dog | 3 | 44 | 3 |
| 兔子 | 9 | 4 | 37 |
一张针对猫、狗、兔子分类器在测试集上的 3×3 混淆矩阵。行是真实标签,列是预测标签。真实的猫:47 个被预测为猫,2 个为狗,1 个为兔子。真实的狗:3 个猫,44 个狗,3 个兔子。真实的兔子:9 个猫,4 个狗,37 个兔子。对角线(47、44、37)是答对的。最大的错误是「真实为兔子、预测为猫」那格的 9,说明兔子最常被误认成猫,正是准确率图里那个薄弱的兔子类别。
对角线上的格子是答对的;「真实为兔子、预测为猫」那格的 9 是最该修正的错误。
之前:训练集里耳朵耷拉着的兔子照片很少,于是许多这样的兔子被预测成猫,兔子的准确率停在 74%。之后:补充了更多兔子照片,尤其是耳朵耷拉着、以及拍摄角度接近猫的边缘情况;分类器学会了两者的差别,「真实为兔子、预测为猫」的错误减少了,兔子的准确率也上去了。这次修正正好瞄准了混淆矩阵所指出的那个错误。
针对最大的那处混淆去补充样例,就是有意识地改进模型的方法。
活动
搞糊涂它,再改进它
试着用边缘情况把分类器搞糊涂,然后通过补充几张多样的训练图片来改进一个薄弱模型,并比较最初的模型和改进后的模型。
- 第 1 部分 — 难住模型:先预测它对每张刁钻图片会怎么判,再运行,看看混淆是从哪来的。
- 第 2 部分 — 改进它:这个起步模型很弱,只见过圆形和正方形,从没见过三角形。加几张多样的图片,再训练一次。
- 对比第一个模型和改进后的模型:哪些修好了、哪些反而坏了,以及原因。
第 1 部分 · 难住模型
每张图片都是已知的边缘情况。先预测模型的答案,再运行。
Geometric shapes: 一个旋转了 45 度的正方形,看上去像菱形。
Edge case: 旋转
Geometric shapes: 一个圆形,右半边被一个方块挡住了。
Edge case: 被遮挡
Geometric shapes: 一个正方形,背景全是杂乱的小斑点。
Edge case: 背景不寻常
Geometric shapes: 一个模糊的三角形,边缘柔软发虚。
Edge case: 模糊
Geometric shapes: 画面正中间有一个非常小的圆。
Edge case: 非常小
School supplies: 一支很粗的铅笔,看起来更像一根条。
Edge case: 特征重叠
Geometric shapes: 一个正方形,一个小圆压在它的一个角上。
Edge case: 类别混杂
第 2 部分 · 改进模型
The starter model has only ever seen circles and squares — it has never seen a triangle, so it misses every one. Add up to 4 more varied pictures (try some triangles!) and retrain to see if it improves.
Add pictures (0/4 used)
至少加一张图片,才能做出改进后的模型。
检查你的理解
回答这些题,检验你能否读懂分类器的错误并加以改进。
Question 1. 对「猫」这个类别来说,这属于哪一类错误?
一张照片其实是兔子,但分类器预测为「猫」。
Question 2. 针对混淆矩阵揭示出的某个具体错误,下面哪些是好的减少办法?选出所有符合的。
把符合的都选上。
Question 3. 判断这句话是对还是错。
在混淆矩阵中,对角线上的数字是预测正确的部分。
已回答 0 / 3
自己动手试试
追猎那处混淆
挑一对你预计分类器会弄混的类别,并规划你会如何找出并修正这处混淆。
- 选两个相似的类别(例如玛芬和纸杯蛋糕,或者狼和狗)。
- 描述一个位于边界附近的边缘情况,并预测它对每个类别来说会变成假阳性还是假阴性。
- 说出混淆矩阵中哪一格会变大,以及你会补充哪些样例来让它变小。
做到这样就算成功
- 一对可信的易混类别,并配有一个边界上的边缘情况。
- 把错误正确地判定为假阳性或假阴性。
- 一项有针对性的修正,并与混淆矩阵中某个具体格子相对应。
反思
输入时会保存在这台设备上
请不要写私人信息。你的回答只保存在这个浏览器里,不会发送到任何地方。
小结
混淆矩阵准确显示出分类器把哪些类别弄混了,边缘情况则解释了为什么;你可以补充有针对性的样例并重新衡量,从而改进模型。
- 假阳性和假阴性是两种不同的错误,代价也不同。
- 类别边界附近的边缘情况造成了大部分混淆。
- 读懂混淆矩阵,为最大的错误补充样例,然后重新衡量。
七至八年级延伸内容
你宁愿犯哪一种错?
对许多真实系统来说,你没法把错误全部消除,所以设计者会选择更愿意偏向哪一种。医学筛查工具可能宁愿接受更多假阳性(多做几次检查),以避免假阴性(漏掉一种疾病);而垃圾邮件过滤器可能宁愿接受更多假阴性(放过一些垃圾邮件),以避免假阳性(丢掉一封真实邮件)。
挑一个真实的分类器,论证它最该避免哪一种错误。它的制作者可以如何调整模型或它的判定阈值,来用一种错误换取另一种?
完成这一课
- Attempt the knowledge check(未完成)
- Save a reflection (recommended)(未完成)
先做一下知识检查,才能完成这一课。