花点时间找出开发集,测试集内的错误标记的例子,假阳性和假阴性,找出不同类型错误的错误数量(统计不同错误类型数量占总数的百分比),分析出哪个部分算法优化最有效。
如果标签Y是错误的,该如何处理和是时候值得花时间去处理
深度学习算法对随机误差(random errors)是非常robust的,
但是对系统性误差(systematic errors)就没那么robust了,需要修改标签
随机误差:
如果没用严重影响到你的正确率,就没必要修改或优化。
就需要修正错误标签了
而如果需要修正开集数据,则一些方针和原则需要考虑别
- 无论用什么方法来修正,都需要作用在开发集和测试集两者上
- 强烈建议同时检验算法判断正确和判断错误的例子(但一般只看错误)
- 训练集的标签一般不修改,因为它比开发集和测试集大得多,人工修改需要耗费大量精力。
快速搭建第一个系统,并进行迭代
因为优化的方向多达五十多种,而每个方向都是相对合理的,可以改善你的系统,你需要选择一个方向集中精力处理,如果你想要搭建一个全新的机器学习程序,就是快速搭建你的第一个系统,然后开始迭代。
建议
- 你快速设立开发集和测试集还有指标metric(label)—##等同于设立目标(打靶)
- 马上搭建好第一个学习系统模型,训练training set,看看你的算法表现怎么样。
- 在开发集测试集上,你的评估指标上表现如何
- 用之前学习的偏差方差分析
- 误差分析,特别是当你得到误差的来源,多是处于某个方向时,你就可以开始集中精力研究这个方向的技术了。
- 这么做的意义是让你拥有一个学习过,训练过的系统,让你确定偏差,方差的范围,就可以知道下一步应该优先做什么,让你能够进行误差分析,观察一些错误例子,想出所有能走的方向,哪些实际上是最有希望的方向。(如果你在这个应用程序领域有很多经验,则建议的适用程度会低一些)
还有一种情况适用程度更低,当这个领域有很多文献可以参考,与你的研究方向几乎完全一致