53 局部错误分析

假设你建立了一个复杂的机器学习流水线并想提高系统性能,对流水线的哪个部分进行操作呢?可以将找到错误所归属的流水线的某一部分,然后在该部分上调优。

例如我们的猫分类器:

第一部分是检测器,检测图中的猫,并裁剪下来,第二部分是分类器,输出是否是猫。你可能花数年时间去优化某一个部分,那么如何确定优化哪个部分呢?

实施错误分析,将导致错误的流程找出来,重点优化。举个模型出错误的例子:本来图片中有猫,算法却给出y=0,即没有猫。

我们手动检查算法的两个部分,检测和分类,假设检测给出如下结果:

可以看到检测器只检测到了石头,然后分类器给出了y=0,即不是猫,可见分类器给出了正确的分类,那么问题出在检测器了。

如果检测器给出下面的预测:

检测器正确的框出了猫,问题就出在分类器了。

如果开发集中100个错分类的图片中,90个都是检测器的问题,10个是分类器的问题。显然,应该重点优化检测器。反之,则应该重点优化分类器。

上述将错误归因的方法是非正式的:观测检测器和分类器的输出,看哪个出错。这种方法可能正是你要做的,但是下一节,我们将介绍一种正式的错误归因方法。

54 将错误归因于某一个部分

假设检测器给出下面输出:

然后分类器给出y=0,即没有猫。

检测器给出了不太准确的框,分类器给出错误的结果,这应该归罪与检测器还是分类器呢?这是一个模棱两可的问题。

我们给出一个正式的测试可以高效的将错误归类:

  1. 将检测器替换为手工标注的检测框。

  1. 将经过手工检测框裁剪下来的图片输入分类器,如果仍然分类错误,则归因于分类器,应该优化分类器,否则,归因于检测器。

换句话说,我们提的正式的方法是给一个“完美的”检测器,看看下面的情况:

  • 即使给出了一个完美的检测框,分类器仍然分类错误,显然,归因于分类器
  • 给了一个完美的检测框,分类器输出正确分类。这表明只有检测器给出一个更好的检测框,整体的系统表现才能更好,这就归因于检测器了。

在开发集错分类的图片上进行上述的分析,可以明确的将错误归因于机器学习流程的某个部分。这能够使我们估计整个流程不同部分上的错误比例,从而确定要优化的部分。

55 错误归因的一般化

假设流程有下面三个步骤,A直接喂给B, B直接喂给C

模型在开发集上的错误,作如下分析:

  1. 手动修改A,将A的输出“完美化”,比如给出完美的检测框,将完美的输出喂给B,然后C,如果模型给出了正确的输出,说明只要A输出好的结果,模型才能够输出正确的输出,所以可以将错误归因于A
  2. 手动修改B的输出为完美,如果模型输出了更好的结果,那么错误归因于B
  3. 错误归因于C

下面看一下复杂的列子

可以将上图蓝色部分映射到A,B,C:

​ A:检测车辆

​ B:检测行人

​ C:规划路径

假设自动驾驶汽车在封闭路径上,选择了一个和熟练驾驶员不同的转向,称之为一种场景,我们可以这样进行分析:

  1. 手动修改检测车辆部分,使其有完美输出,继续B,C,若算法给出了更好的路径,说明只要A的输出更准确,算法才能提高,归因于A。
  2. 将B的输出手动改为完美,如果算法输出正确,那么归因于B。
  3. 归因于C

机器学习整个流程中应该是一个有向无环图,即流程应该是从左到右,前一个输入是后一个输入,这样才能将各个流程映射到A,B,C,才能够进行错误归因分析。

56 局部错误分析和人类水平对比

对算法进行错误分析,就像为了决定下一做什么而使用数据科学分析机器学习系统的错误,最基本的局部错误分析告诉我们机器学习流程中哪一个部分最值得去优化。

假设一个数据集包含了用户在网站上的购物情况,数据科学家可以有很多方法去分析数据,可以从数据的不同方面得出不同结论,比如是否应该涨价,是否给用户带来便利。没有绝对正确的分析数据集的方法,从不同的方法可以得到数据的不同的灵感。同样,机器学习没有绝对正确的错误分析方法,除了上面介绍的,我们应该也考虑尝试其他方法。

回到上结的自动驾驶应用

除了严格按照上节的流程来调试这个流程以外,我们也应该有下面的问题:

  1. 车辆检测与人类水平差距多大
  2. 行人检测与人类水平差别多大
  3. 整个系统与人类水平差别多大,这里的人类水平值得是,如果给出检测到的车辆和行人,人类规划的路径。

如果发现与人类水平差距很大,那么就可以集中去调优。

当去自动化人类的工作并且和人类本身水平对比时,错误分析才能做好。之前的流程中都有这种隐含假设。

如果机器学习流程中,一些中间步骤或最终结果,即使人类也做不好,之前的错误分析流程就没法使用。

57 发现有缺陷的 ML流程

如果流程中每个部分都达到了人类水平,而整个流程的输出却远低于人类水平,怎么办呢?

通常是因为流程的设计有缺陷,错误分析可以帮助发现有缺陷的流程,以重新设计流程。

对于自动驾驶,上面三个部分都可以独立给出人类水平的输出,但是合在一起,输出低于人类水平,该怎么办?

唯一的解释是流程有缺陷,在本例中给出车辆检测器和行人检测器的完美输出,还是没有给出好的规划路径,可以考虑除了两个检测器之外的其他信息,对路径规划比较重要。

比如路标

总之,如果机器学习流程中每个部分都达到了人类水平,但是整个流程结合起来却没有那么好,就需要考虑流程的缺陷,重新设计流程。

机器学习流程错误分析相关推荐

  1. 机器学习流程模板及多模型对比实战梳理

    机器学习流程模板及多模型对比实战梳理 目录 机器学习流程模板及多模型对比实战梳理 # 数据加载

  2. 完整的端到端的机器学习流程(附代码和数据)|比赛、工程都可以用!

    近日在github上发现一个机器学习的完整流程,附代码非常全,几乎适合任何监督学习的分类问题,本文提供代码和数据下载. 作者:WillKoehrsen 翻译:DeqianBai(https://git ...

  3. 机器学习怎么学?机器学习流程

    人们在使用机器学习的时候,把很大的精力放在了选择算法.优化算法上面,其实算法的选择只是机器学习其中的一个步骤,但是机器学习其他的步骤也是很关键的,尤其是作为产品经理,了解这个机器学习流程也是至关重要的 ...

  4. 机器学习流程,以及实践应用

    编辑导语: 机器学习是一种数据分析技术,让计算机执行人和动物与生俱来的活动:从经验中学习,也被称为预测分析:本文作者分享了关于机器学习的流程以及实践应用,我们一起来看一下. 我所理解的机器学习是一种能 ...

  5. 机器学习流程是什么?简述机器学习流程!

    1.抽象成数学问题 明确问题是进行机器学习的第一步.机器学习的训练过程通常都是一件非常耗时的事情,胡乱尝试时间成本是非常高的. 这里的抽象成数学问题,指的明确我们可以获得什么样的数据,抽象出的问题,是 ...

  6. 机器学习流程(三)-特征工程

    目录 一.数据预处理 1.异常值处理 2.缺失值处理 3.不均衡样本-数据采样 1.欠采样(undersampling) 2.过采样(oversampling) 3.阈值移动 4.基于聚类的过采样方法 ...

  7. Kaggle与机器学习流程

    机器学习解决问题的流程: http://blog.csdn.net/han_xiaoyang/article/details/50469334 https://www.linkedin.com/pul ...

  8. 一文看懂机器学习流程(客户流失率预测)

    点击上方"程序员大咖",选择"置顶公众号" 关键时刻,第一时间送达! 定义问题 客户流失率问题是电信运营商面临得一项重要课题,也是一个较为流行的案例.根据测算, ...

  9. 机器学习流程——监督学习篇

    主要内容 对于分类任务和回归任务来说,机器学习的大体流程都是数据准备.提取特征和标签.划分训练集和测试集.模型选择.模型训练.预测.评估,数据准备会有一个预处理的阶段,这里不过多描述,下面分类任务会以 ...

最新文章

  1. NSight Compute 用户手册(下)
  2. 说说几个 Python 内存分配时的小秘密
  3. 基于财通证券的数字化建设,总结的金融行业数字化转型方向
  4. opencv 多线程加速_线程池给你写好了,想加速拿来用就行哈
  5. 如何给U盘设置一张妖娆又骚气的图标
  6. Linux: .bash_profile 与 .bashrc 的区别
  7. ubuntu合并终端_技术|初级:如何在终端及图形界面中更新 Ubuntu
  8. java生成一条唯一的邀请码_根据用户id生成一个唯一邀请码
  9. Linux文件系统(五)---三大缓冲区之buffer块缓冲区
  10. mysql的update和case when同步使用
  11. 华为 HG526 破解实录(一)Cfg文件加解密工具
  12. 西电电子线路实验课程设计通关模板
  13. 香橙派python编程_香橙派Orange Pi 4开发板在Ubuntu系统下使用python 控制GPIO
  14. 企业微信 发送或接收 图片失败,怎么办?
  15. python查询12306余票_python命令行查询12306火车票
  16. 傻妞旧版合集新版订阅
  17. 大型传统企业要不要提升自身的IT研发能力
  18. java aspose 给Word添加水印
  19. python九九乘法口诀_Python3 九九乘法口诀(99乘法口诀)
  20. python并发编程书籍推荐_《吐血整理》-顶级程序员书单集

热门文章

  1. “地图易”数据采集工具介绍——地图数据采集神器
  2. 谈谈关于职业生涯和人工智能的思考
  3. 关于云计算,这是我史上见过最通俗易懂的解释了
  4. querylist.php下载,PHP 强大的采集工具,QueryList
  5. c语言像素点的简单获取
  6. git补充子模块,git下载文件夹是空的
  7. 动力定位 matlab,matlab起重船动力定位系统滤波方法研究+源程序
  8. 阿里CEO张勇:数字经济已开启新的未来
  9. Android2.3系统增加阿拉伯语支持, 共支持57国语言
  10. 输出100以内所有3的倍数的和。