对于一个新问题,很难预先知道哪一种方案是可行的。即使最有经验的机器学习研究者也需要在发现令人满意的方法之前尝试很多种不同的想法。当建立一个机器学习系统时,我会经常:
1、首先针对如何建立该系统提出几个点子
2、 用代码实现这几个点子
这就是迭代的过程。这个循环进行的要快速,你取得的进展越快。这也是开发/测试集和评估指标很重要的原因:你每次尝试一个点子,使用开发集和测试集评估该点子的表现可以让你知道你是否在正确的方向上迭代。
相反,如果你没有特定的开发集和评估指标,因此每次你的团队开发了一个新的猫分类器,你都要将它集成到你的应用中,然后把玩该应用几个小时,尝试得出该分类器是否有所提高。这会严重降低迭代速度,而且无法得出可靠的结论。如果你的卷对将分类器的准确率从95%提高到95.1%,你无法通过把玩应用的方式检测出0.1%的改进,使用开发集和评估指标可以让你快速的检测出哪一个点子有很小的改进,从而你可以快速决定要改进哪一些点子,放弃哪一些点子。
网友评论