3.2.1 造成误差的原因分析

进行误差分析

比如说图片识别的机器学习算法,可能会有一些图片被错误的识别了。我们要想提高准确率,可以先去分析一下到底有哪种图片被错误的的识别了。比如说有100张图片被错误的识别了,我们可以对这100张图片进行分类,看哪些图片被错误的识别成了猫哪些图片被错误的识别成了狗。或者是哪些图片,因为比较模糊儿被错误的识别。于是,我们就可以针对这些被错误识别的图片,进行个性化的优化来提高准确率。

这是对于提高准确率来说,十分重要的过程。

这里写图片描述

清楚标注错误的数据

我们知道深度学习是一种监督学习算法,这样就会涉及到人工标注的数据集。如果人来操作,那么就有可能数据标注错误。虽然是小概率事件,但是偶尔也会发生。如果用错误的数据集来训练,是否会产生不良影响呢?

深度学习算法对于这一点的鲁棒性是比较强的。只要数据集够大,即使有一点的数据标注错误也不会有太大影响。只要这些错误样本离随机错误不太远,那么放着这些错误不管可能也没问题,而不要花太多时间修复它们。

我这里先警告一下,深度学习算法对随机误差很健壮,但对系统性的错误就没那么健壮了。所以比如说,如果做标记的人一直把白色的狗标记成猫,那就成问题了。因为你的分类器学习之后,会把所有白色的狗都分类为猫。但随机错误或近似随机错误,对于大多数深度学习算法来说不成问题。

这里写图片描述

如果你还记得设立开发集的目标的话,开发集的主要目的是,你希望用它来从两个分类器A和B中选择一个。所以当你测试两个分类器A和B时,在开发集上一个有2.1%错误率,另一个有1.9%错误率,但是你不能再信任开发集了,因为它无法告诉你这个分类器是否比这个好,因为0.6%的错误率是标记出错导致的。

现在如果你决定要去修正开发集数据,手动重新检查标签,并尝试修正一些标签,这里还有一些额外的方针和原则需要考虑。首先,我鼓励你不管用什么修正手段,都要同时作用到开发集和测试集上,我们之前讨论过为什么,开发和测试集必须来自相同的分布。开发集确定了你的目标,当你击中目标后,你希望算法能够推广到测试集上,这样你的团队能够更高效的在来自同一分布的开发集和测试集上迭代。

吴教主深度学习和神经网络课程总纲

猜你喜欢

转载自blog.csdn.net/einstellung/article/details/80200921