机器学习训练秘籍:第16章

16 清洗误标注的开发集和测试集样本

在进行误差分析时,你可能会注意到一些开发集的样本被误标注(mislabeled)了。此处的“误标注”指的是图像在使用算法处理前,已经被负责标注的人员进行了错误的标注,也即是说某个样本(x,y)的分类标签(label) y的值并不正确。比如一些不是猫的图片被误标注为猫,反之亦然。如果你不确定误这些标注的图片是否很关键,可以添加一个类别来跟踪记录误标注样本的比例:需要修正开发集中的标签吗?回忆一下设立开发集的目标,是为了帮助你快速评估算法性能,从而判断算法 A 和 B 哪一个更好。如果开发集中误标注的部分影响了你的判断,那便值得去花时间改正这些标签。举个例子,假设你的分类器表现如下:

开发集整体精度................. 90% (10% 整体误差)

误标注样本造成的误差...... 0.6% (6% 开发集误差)

其它原因造成的误差.......... 9.4% (94% 开发集误差)

相对于你正在改进的 9.4% 误差,误标记的 0.6% 误差就不那么重要了。在开发集中手动修正误标注样本不会带来不好的影响,而这样的行为不是必要的:当你不知道整个系统有 10% 或 9.4% 误差的时候,这样处理看起来会不错。假设你不断地改进猫分类器,并达到了以下性能:

开发集整体精度................. 98.0% (2.0% 整体误差)

误标注样本造成的误差...... 0.6% (30% 开发集误差)

其它原因造成的误差.......... 1.4% (70% 开发集误差)

此时 30% 的开发集误差是由误标注样本造成的,这对精度估计造成了显著的影响。这时就应该考虑改进开发集样本中的标签质量。处理这些误标注的样本将帮助你找出分类器的误差是接近 1.4% 还是 2.0% ,之间的差异是显著的。在初始阶段容许一些误标注的开发集/测试集样本并不罕见,你可以选择在系统改进到一定程度时再来考虑误标注的样本,因为这些误差在整体误差中的占比会逐渐增大。上一章中解释了如何通过算法改进类似于狗、大猫和模糊图片的误差类别,而在本章你学习了如何通过改正数据的标签来处理误标注的样本。不论你使用什么方式修正开发集标签,请记住要将同样的方式应用于你的测试集,这可以保持二者服从相同的分布。我们在第 6 章中讨论过了这样做的意义,在那个问题中,团队成员花费了很多时间优化开发集,直到后来才意识到他们正在根据不同的测试集进行不同的标准判断。如果你决定改进标签质量,请仔细检查系统中误分类和正确分类的样本的标签。对于某个样本,可能原始标注和算法预测的标签都是错误的。如果你仅修复系统误分类的样本标签,则有可能在评估中引入偏差。假设你有 1000 个开发集样本,同时分类准确率为 98%,那么检查 20 个误分类的样本会比检查 980 个正确分类的样本要容易得多。因为在实际操作时检查误分类样本更加容易,这就导致了开发集会衍生出一定的偏差。如果你只对于开发产品和应用感兴趣,这些偏差就是可接受的。但如果你计划在学术论文中引用此结果,可能需要完全无偏地度量测试集的精度,此时这样做就会出问题。

敬请期待第17章:

将大型开发集拆分为两个子集,专注其一

机器学习训练秘籍已发布章节

为了让大家尽快接触到机器学习训练秘籍中文版,我们在最短的时间内组织了翻译工作。若有任何错误,还请包涵。翻译内容仍在持续改进中,如果大家有任何意见和建议,欢迎给我们留言。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180515G0DS4R00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券