机器学习策略-误差分析

觉得有用的话,欢迎一起讨论相互学习~Follow Me

2.1 误差分析

  • 训练出来的模型往往没有达到人类水平的效果,为了得到人类水平的结果,我们对原因进行分析,这个过程称为误差分析.

实例剖析

  1. 例如此时你正在训练一个猫分类器,其中正确率为90%,这离目标有一定的距离. 结果发现在错误图片中发现了狗的图片.
  2. 我们思考现在是否为了避免在猫图中混入狗而开始做一个项目专门处理狗.而做一个这样的项目会花费宝贵的时间并且不知道是否会取得很好的效果,此时我们利用误差分析流程权衡利弊,是否需要针对这个问题进行改进.
  • 误差分析
  1. 首先,收集100个错误标记的开发集例子,手动检查,查看开发集中有多少错误标记的例子是狗.
  2. 假设,100个错误标记中只有5%是狗,这意味着即使你修改了所有狗的问题,你也只能修改着100个错误中的5个.你的误差也只能从10%下降到9.5%.
  3. 假设,100个错误标记中有50%是狗,这意味着只要你修改了所有狗的问题,你只就修改了100个错误中的50个.你的误差也只能从10%下降到5%.这种情况下,单独考虑狗的问题是十分有意义的

误差分析的重要意义

  • 尽管在实际操作中,手动对系统结果进行检查被认为是十分繁琐的工作,但是其实花费时间并不多,而且产生的效果非常好~!检查100个错误的训练集合也许只要花费5~10分钟时间,但是可以立马估计你改进的方有多少价值.

how-to

  • 对于误差分析,你可以一次列举出好几种错误的情况,分别对错误进行分类,这样不仅效果好,还可以节省更多的时间.
  • 可以把错误原因做成电子表格的形式,分析误差的原因.


2.2 清除标注错误的数据

  • 监督学习问题的数据有输入X和输出标签Y构成,如果发现有些标签是错的,那是否值得花时间去修正这些标签呢?
  • 例如在猫分类器中有将狗分类成猫的错误标注的例子.

  1. 对于训练集,深度学习算法对于 随机的错误标注例子 的鲁棒性很强,一般对训练集的影响不大. 但是对于系统性的错误就不鲁棒了,例如将一类别的事物都标记错误.在猫分类器中将所有的白色的狗都分类为猫
  2. 对于开发集和测试集中 错误标注的例子 我们可以在 误差分析 中加一列表示由于标记错误产生的误差, 并且 计算修改这些误差所能带来的识别率的提升 .如果这些错误标记的例子对于开发集评价系统不会产生很大的影响,不进行修改也是可行的.牢牢把握训练集的目的是:选择和评价A和B两种分类器

Tips

  • 无论使用何种修正方法,都要同时作用到开发集和测试集上.因为要保证它们来自相同的分布.

2.3 快速搭建你的第一个系统并开始迭代

  • 如果你正在开发全新的机器学习应用,你应该尽快建立你的第一个系统原型,然后快速迭代.
  • 举语音识别的例子来说,如果你正在考虑一个新的语音识别系统,你有很多需要考虑的方面.你有很多需要做的事来改进语音识别系统.

  • 一般对于新建一个机器学习系统而言,一般会有50个考虑的方向.所以如果你想新建一个机器学习的应用,很重要的一点是快速搭好你的第一个系统,然后开始迭代.
  1. 快速设立开发集和测试集还有指标.
  2. 马上建立一个原型机器学习系统,然后找到训练集训练一下,看看效果.训练集上的准确率,开发集测试集评估指标表现如何.
  3. 分析偏差和方差,误差分析确定下一步.

Why

  • 初始系统的全部意义在于,有一个学习过的系统能够让你确定偏差和方差的范围,知道下一步该做什么,能够通过误差分析想出在所有能走的方向中,哪些是实际上最有希望的方向.

[DeeplearningAI笔记]ML strategy_2_1误差分析的更多相关文章

  1. [DeeplearningAI笔记]ML strategy_1_3可避免误差与改善模型方法

    机器学习策略 ML strategy 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.8 为什么是人的表现 今天,机器学习算法可以与人类水平的表现性能竞争,因为它们在很多应用程序中更有生产 ...

  2. [DeeplearningAI笔记]ML strategy_2_2训练和开发/测试数据集不匹配问题

    机器学习策略-不匹配的训练和开发/测试数据 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.4在不同分布上训练和测试数据 在深度学习时代,越来越多的团队使用和开发集/测试集不同分布的数据来 ...

  3. [DeeplearningAI笔记]ML strategy_1_2开发测试集评价指标

    机器学习策略 ML strategy 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.4 满足和优化指标 Stisficing and optimizing metrics 有时候把你要考 ...

  4. [DeeplearningAI笔记]ML strategy_1_1正交化/单一数字评估指标

    机器学习策略 ML strategy 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.1 什么是ML策略 机器学习策略简介 情景模拟 假设你正在训练一个分类器,你的系统已经达到了90%准确 ...

  5. [DeeplearningAI笔记]ML strategy_2_3迁移学习/多任务学习

    机器学习策略-多任务学习 Learninig from multiple tasks 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.7 迁移学习 Transfer Learninig 神 ...

  6. [DeeplearningAI笔记]ML strategy_2_4端到端学习

    机器学习策略-端到端学习 End-to-end deeplearning 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.9 什么是端到端学习-What is End-to-end dee ...

  7. [DeeplearningAI笔记]神经网络与深度学习2.11_2.16神经网络基础(向量化)

    觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.11向量化 向量化是消除代码中显示for循环语句的艺术,在训练大数据集时,深度学习算法才变得高效,所以代码运行的非常快十分重要.所以在深度学 ...

  8. [DeeplearningAI笔记]序列模型3.3集束搜索

    5.3序列模型与注意力机制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.3 集束搜索Beam Search 对于机器翻译来说,给定输入的句子,会返回一个随机的英语翻译结果,但是你想要一 ...

  9. [DeeplearningAI笔记]Multi-class classification多类别分类Softmax regression_02_3.8-3.9

    Multi-class classification多类别分类 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.8 Softmax regression 原有课程我们主要介绍的是二分分类( ...

随机推荐

  1. mongodb 聚合查询

    操作符介绍: $project:包含.排除.重命名和显示字段 $match:查询,需要同find()一样的参数 $limit:限制结果数量 $skip:忽略结果的数量 $sort:按照给定的字段排序结 ...

  2. 如何让一个DIV水平,垂直方向都居中于浏览器?

    <style type="text/css"><!-- div {position:absolute;top:50%;left:50%;margin:-150px ...

  3. [51nod1610]路径计数

    路径上所有边权的最大公约数定义为一条路径的值. 给定一个有向无环图. T次修改操作,每次修改一条边的边权,每次修改后输出有向无环图上路径的值为1的路径数量(对1,000,000,007取模). Inp ...

  4. Big Event in HDU(多重背包套用模板)

    http://acm.hdu.edu.cn/showproblem.php?pid=1171 Big Event in HDU Time Limit: 10000/5000 MS (Java/Othe ...

  5. java与C++变量初始化的对比

    java尽力保证:所有变量在使用前都能得到恰当的初始化 ①函数/方法局部变量的初始化 在C/C++中,变量的初始化还是得依赖于程序员的自觉性.对于函数局部变量,编译器不会为基本类型赋予默认初始值,新手 ...

  6. 用 Deployment 运行应用 - 每天5分钟玩转 Docker 容器技术(123)

    从本章开始,我们将通过实践深入学习 Kubernetes 的各种特性.作为容器编排引擎,最重要也是最基本的功能当然是运行容器化应用,这就是本章的内容. Deployment 前面我们已经了解到,Kub ...

  7. [国嵌攻略][098][Linux内核简介]

    Linux系统架构 1.用户空间:应用程序.C函数库 2.内核空间:系统调用接口.内核.体系结构相关代码 Linux系统利用处理器不同的工作模式,使用其中的两个级别分别来运行Linux内核与应用程序, ...

  8. Docker+Jenkins持续集成环境(3)集成PMD、FindBugs、Checkstyle静态代码检查工具并邮件发送检查结果

    为了规范代码,我们一般会集成静态代码检测工具,比如PMD.FindBugs.Checkstyle,那么Jenkins如何集成这些检查工具,并把检查结果放到构建邮件里呢? 今天做了调研和实现,过程如下 ...

  9. jdbc、Mybatis插入数据主键回显的实现方法

    插入数据的时候,往往需要获取主键值.但是有时候主键是自增长的那么,就不太适用手动添加主键值了,此时需要一种可以回显主键参数的方法, 下面以jdbc.mybatis的实现举例 此时使用的是jdbc的话或 ...

  10. Thinkphp5.0+Vue2.0前后端分离框架Vuethink

    VueThink是一套基于Vue全家桶(Vue2.x + Vue-router2.x + Vuex)+ Thinkphp的前后端分离框架. 脚手架构建也可以通过vue官方的vue-cli脚手架工具构建 ...