《Machine Learning Yearning》第11章

 这一章主要讲了什么时候需要改变开发集/测试集或者是评估标准。
 在一个项目开始时,一般需要早点确定dev/test set和评估指标,然后在调试过程中,可以再改变它们。文中提出了3种需要改变的情况

11. When to change dev/test sets and metrics

 我通常会要求我的团队在一周内提出一个初始开发集/测试集和初始指标,甚至更短的时间内。最好是想出一些不完美的东西然后快速进步,而不是过度思考。但是这一周的时间期限不适合那些成熟的应用。例如,反垃圾邮件是一种成熟的深度学习应用。我看到过有团队在已经成熟的系统上花费几个月的时间来获得更好的开发集/测试集。
 如果你后来意识到你的初始开发集/测试集或者是初始指标与预设不一致,那么要立刻修正它们。例如,如果你的开发集和指标上分类器A的效果好于分类器B,但是你的团队认为在你们的产品中,B应该要好一点,那么这应该说明你需要修改你们的开发集/测试集或者是评估指标。
 有三种主要的原因导致在开发集/评估指标上错误地把A排的好一点:

1. 你实际需要做的分布跟开发集/测试集是不同的。
 假设你的初始开发集/测试集图片主要是成年猫。你运行你的app并发现,用户上传了比预期多很多的小猫照片。那么,开发集/测试集的分布不能反映你实际需要做的分布。在这种情况下,更新你的开发集/测试集,使其更有代表性。
这里写图片描述
2. 开发集过拟合
  在开发集上重复地评估你的方法,这个过程导致你的算法逐渐“过拟合”开发集。当你完成开发时,你会在测试集上评估你的系统。如果你发现你的开发集性能远好于测试集,那么这就是你过拟合开发集的一个表现。这种情况下,你需要更新开发集。
 如果你需要追踪你的团队的进度,你可以在测试集上定期评估你的系统—一周一次或者一月一次。但是不能使用测试集去做有关算法改进的任何措施,包括是否回到前一周的系统。如果你这样做了,你将开始过拟合测试集,并且不能再利用它来得到系统性能的完全无偏估计(当你需要发表研究论文,或者利用这个标准去做重要的商业决策)。

3. 指标衡量的不是项目需要优化的内容。
 假设对于你的猫app,你的指标是分类准确率。这个指标下分类器A比分类器B好。但是假设你尝试着两种算法,发现A有时允许色情图片通过。即使A有更高的准确率,但是它偶尔留下的色情图片也是不可接受的,你会怎么做?
 因此,这个指标不能分辨出在你的产品中算法B的实际效果是好于A的。所以,你不能再用这个指标去挑选最好的算法了。是时候去改变评估指标了。例如,你可以增加使色情图片通过的惩罚项。但我强烈建议你选择一个新的指标,并且使用这个新指标为你的团队明确定义一个新目标,而不是在不可信任的指标上一直继续,最后回归到手动选择分类器。

 在项目中,改变开发集/测试集或者评估指标是很正常的事。有一个初始开发集/测试集和指标能让你快速迭代。如果你发现开发集/测试集或者评估指标不再带领你的团队走向正确的方向,这不是什么大问题!改变它们然后保证你的团队了解这个新方向就好了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值