2.1 进行误差分析(Carrying out error analysis)

如果希望让学习算法能够胜任人类能做的任务,但学习算法还没有达到人类的表现,那么人工检查一下算法犯的错误可以了解接下来应该做什么,这个过程称为错误分析

假设正在调试猫分类器,取得了90%准确率,相当于10%错误,注意到算法将一些狗分类为猫,需要对模型的一些部分做相应调整,才能更好地提升分类的精度

收集错误样例

在开发集(测试集)中,获取大约100个错误标记的例子,然后手动检查,一次只看一个,看看开发集里有多少错误标记的样本是狗

  • 100个数据中有5个样例是狗,如果对数据集的错误标记做努力去改进模型的精度,可以提升的上限是5%,仅可以达到9.5%的错误率,称为性能上限(ceiling on performance)。

    这种情况下,这样耗时的努力方向不是很值得的事

  • 100个数据中,有50多个样例是狗,改进数据集的错误标记是一个值得的改进方向,可以将模型的精确度提升至95

并行分析

  • 修改那些被分类成猫的狗狗图片标签

  • 修改那些被错误分类的大型猫科动物,如:狮子,豹子等

  • 提升模糊图片的质量

为了并行的分析,可以建立表格来进行。在最左边,人工过一遍想分析的图像集,电子表格的每一列对应要评估的想法,如狗的问题,猫科动物的问题,模糊图像的问题,最后一列写评论

在这个步骤做到一半时,可能会发现其他错误类型,比如可能发现有Instagram滤镜,那些花哨的图像滤镜,干扰了分类器。在这种情况下可以在错误分析途中,增加一列多色滤镜 Instagram滤镜和Snapchat滤镜,再过一遍,并确定新的错误类型百分比,这个分析步骤的结果可以给出一个估计,是否值得去处理每个不同的错误类型

可以把团队可以分成两个团队,其中一个改善大猫的识别,另一个改善模糊图片的识别

总结:

进行错误分析,应该找一组错误样本,可能在开发集或者测试集,观察错误标记的样本,看看假阳性(false positives)假阴性(false negatives),统计属于不同错误类型的错误数量。在这个过程中,可能会得到启发,归纳出新的错误类型,通过统计不同错误标记类型的百分比,可以发现哪些问题需要优先解决

Last updated