机器如何从例子中学习:数据、标签与泛化
- 用微型分类案例解释机器学习
- 识别训练数据偏差与泛化不足
手写规则为什么会遇到困难
小禾想自动区分纸花和纸盒,先想到规则:圆形就是纸花,有直角就是纸盒。但折成方形的纸花和圆柱形纸盒会让规则失效。真实照片还有光线、背景、角度的变化,规则越补越复杂。机器学习提供另一种思路:准备已经知道类别的例子,让模型从例子中形成判断方式。这不是系统凭空获得常识,而是把数据中可学习的模式转化为以后处理新输入的依据。
数据、标签和特征分别是什么
数据是用来描述对象的材料,例如作品照片。标签是希望模型学会的标准答案,例如纸花或纸盒。特征是与判断有关的属性,可以是人工记录的形状、颜色,也可以是模型从像素中形成的内部表示。把带标签的例子用于学习,通常称为监督学习。监督并不是有人实时盯着机器,而是例子中提供了目标答案。其他任务可能没有这些标签,例如把相似作品自动聚成几组;这种分组不保证恰好对应人类预想的类别。
学会旧例子,不等于会处理新例子
假设小禾准备二十张照片,十五张用于学习,五张留作检查。如果模型把十五张旧照片全答对,只说明它拟合这些例子较好。它可能记住背景颜色,而没有学会作品结构。将模型应用到没见过的照片仍能保持合理表现,叫作泛化。若旧照片表现很好、新照片明显变差,可能出现过拟合:学习过程过度依赖训练样本的细节。检查样例要提前留出,不能一边反复调整一边把同一批检查结果当成独立证明。
用一个背景偏差看清问题
纸花总在蓝色桌面拍,纸盒总在白色桌面拍,模型可能把桌面颜色当作类别线索。小禾上传白桌上的纸花,系统就判成纸盒。这个错误并不意味着模型故意偷懒,而是数据让背景与类别同时出现,模型找到了一条容易利用的关联。改进方向是让两类作品都在不同背景、角度和光线下出现,明确标签规则,再使用新的留出样例测试。不能只把那张答错的照片加入数据,就宣称整个问题已解决。
评价必须看见被隐藏的情况
如果检查集中有九张纸花和一张纸盒,系统全部回答纸花也能得到九成准确率,但对纸盒完全没有帮助。总体准确率会受到类别比例影响,因此还要分别查看各类正确多少、错在哪里。数据很少时,结果变化可能很大,不宜给出夸张的稳定性承诺。对初学者而言,重要的是知道学习依赖例子、例子有选择偏差、检查应使用新材料;不必先背算法名称,就能判断一个演示结果是否足以支持实际使用。
本节要点
- 监督学习使用带目标答案的例子
- 泛化是对未见输入的合理表现,不是记住训练题
- 类别不均衡和背景关联会让总体分数误导判断
动手练习:找出纸艺分类数据中的捷径
- 设定纸花都在蓝桌拍摄、纸盒都在白桌拍摄的十张虚构照片
- 写出模型可能利用的错误线索
- 设计四张新的检查照片,并说明要观察的结果
自查清单
- 指出背景与标签同时变化这一偏差来源
- 检查样例包含打破原有关联的情况
先自己做,再查看参考答案
模型可能利用桌面颜色,而不是作品的折叠结构。四张检查照片可以是白桌纸花、蓝桌纸盒、木桌纸花和木桌纸盒,其中前两张专门打破原来的背景关联。若系统在白桌纸花和蓝桌纸盒上持续答错,就说明原有成功率不能证明它学会了作品类别。改进时应让两类作品都出现在多种背景下,并保留另一组未用于调整的照片。还要分别记录纸花和纸盒的正确数量,不能用一个总准确率掩盖其中一类完全失效,也不能用四张照片声称覆盖所有拍摄条件。