什么时候需要更改开发/测试集和评估指标(译)

2018-06-07  本文已影响59人  低智商游戏

每当开始一个新项目的时候,我会尽快选择开发/测试集,因为这给我的团队制定了定义良好的目标。

我通常要求我的团队在一周之内给出初始的开发/测试集和评估指标---几乎不会花费更长时间。最好的方式是先从一个不完美的东西开始,而不是过度思考一开始就卡住。但是一周的时间节点对成熟系统不适用。例如,反垃圾邮件系统是成熟的深度学习应用。我曾见过一些团队花费几个月的时间为已经成熟的系统定义开发/测试集。

如果你后来发觉初始的开发/测试集或者评估指标不适用,采用一切手段尽快的更改它。例如,如果分类器A比分类器B在开发集上的表现好,但是你的团队认为分类器B实际上对你的产品更优越,这也许就是需要改变开发集/测试集或者评估标准的信号了。

以下三个原因可能会导致开发集/评估指标对分类器A的评估错误:
1、 你需要表现良好的实际发布版本的数据和开发集/测试集不同。

假设你初始开发/测试集大部分都是成年猫的图片,你将猫分类器集成到你的猫应用上,但是和期望的不同,用户更喜欢上传小奶猫的图片。 因此,你的开发集/测试集并不能很好的反映实际发布版本的情况。在这种情况下,更新你的开发集/测试集,让其和实际情况更符合。

2、过度使用开发集
在开发集上重复评估想法的过程会让你的算法过度适应开发集。在你完成开发后,你会使用测试集评估你的系统。如果你发现系统在开发集上的表现要远远好于在测试集上的表现,就意味着你的系统已经过度适应开发集了,在这种情况下,使用新的开发集。

如果你想跟踪团队的进度,你可以定期的在测试集上评估你的系统----比如每星期一次或者一个月一次。但是不要使用测试集做关于算法的任何决定,包括是否会滚到前一个星期的系统。如果你这样做,你就会过度适应测试集了,你就不能依赖它毫无偏见的评估你的系统了(你可能会据此决定是否发布研究论文,或者使用该评估指标做重要的商业决策)。

3、 评估指标评估的并不是项目要优化的内容

还是以猫应用为例,你的评估指标是分类准确率。使用评估指标,分类器A比分类器B的性能好。但是,假设你尝试了两种算法,并且发现分类器A允许偶尔的色情图像通过。即使分类器A的准确率更高,偶尔的色情图片留下的坏印象意味着它的表现是不可接受的。 你应该怎么办?

这里,对你的应用来讲,评估标准未能确定算法B比算法A更优异的事实。因此,你不能依据评估指标选择更优异的算法,这时就应该修改评估指标了。例如,你可以更改评估指标严厉限制色情图片通过。我强烈建议选择新的评估指标,并使用新的评估指标为团队明确定义一个新的目标,而不是依据一个不靠谱的评估指标改进算法而倒退回需要手动选择算法的境地。

在项目进行过程中更改开发集/测试集或者评估指标是很常见的。使用初始的开发/测试集或者苹果指标可以让项目尽快迭代。如果你发现开发/测试集或者评估指标不能将你的团队导向正确的方向,没有关系,更改开发/测试集或者评估指标并确保你的团队知晓新的前进方向。

上一篇下一篇

猜你喜欢

热点阅读