错误分析

错误分析

当使用一个学习算法做人类可以做的任务时,如果这个学习算法还达不到人类去做时的性能,通过人工检查算法得出的结果中出现的一些错误,可以使你深入了解下一步要进行的工作,这个过程便称为错误分析。
比如对于一个猫分类器,在开发组里你已经取得了90%的识别准确率,还存在10%的出错率,而且还发现分类器会将一些看起来像猫的狗的图片误识别为猫,这时就不是立即盲目地转向去做一个能够精确识别出狗的算法,而是先进行错误分析。可以先把学习算法标签错误的图片找出来,然后进行人工检查,假如100张错误标签的图片中有5张是狗的图片,那么也就表明你的学习算法的10%的错误中大致只有5%来自于狗,也就是0.5%的错误来自于狗,这表明改善狗的识别问题并不能给你的学习算法带来多大提升。但如果100张错误标签的图片中有50张是狗的图片,也就是5%的错误是狗产生的,那么对于狗的识别就是你要解决的问题了。这样,先通过少量的时间去分析问题,再决定后面的要进行大方向。

在对输出结果中错误标签的样本进行人工分析时,常常可以建立一个表格,来记录每一个样本的一些情况,比如某些图像是模糊的,或者是把狗识别成了猫等等,以此来更加清楚地进行分析。
当发现输入的样本中,有一些样本是人为原因的错误标签,如果是在训练集中,只要这些出错的样本数量较小,分布地也比较随机,由于机器学习算法对于随机误差的稳健性(Robust)(也称“鲁棒性”),就不必花时间去一一修正它们;如果出现在开发集或者测试集,就可以在进行误差分析的时候,将这种情况对你的识别准确率的影响作出大致分析,这样对于是否值得去将输入中的错误标记一一进行修正,就有个明确的答案了。
总结一下:在构建一个机器学习系统时,尽可能按照以下几点来做:

  1. 设置好训练、开发、测试集及衡量指标,找准目标;
  2. 快速构建出一个初步的系统,用训练集来拟合参数,开发集调参,测试集评估;
  3. 采用方差/偏差分析或者错误分析等方法来决定下一步工作。
posted @ 2019-04-10 16:25  youngliu91  阅读(272)  评论(0编辑  收藏  举报