吴恩达神经网络和深度学习-学习笔记-22-误差分析
单一误差分析
假设我们面对一个猫分类器的准确率不够的原因。
队友看了一下算法分类出错的例子,注意到算法将一些够狗分类为猫。
在这种条件下,我们应不应该做一个项目专门处理狗?比如搜集更多的狗的图片,或者设计一些只处理狗的算法功能之类的,从而使得猫分类器在狗图上做得更好(狗不再被分类成猫)。
有一个误差分析流程,可以让我们很快知道这个方向是否值得努力。
首先收集比如100个标记错误的开发集(dev set)的例子。然后手动检查有多少错误标记的例子是狗。
假设100个例子中有5%的例子是狗,那么即使我们完全解决了狗的问题,你也只能修正错误例子中的5%,使得准确率从10%变为9.5%。(在机器学习中,我们有时称为性能上限the ceiling on performance)
在这种情况下,“做一个项目专门处理狗”并不是一个值得努力的方向。
另外,吴恩达老师对手动操作的评价:“我知道在机器学习中,有时候我们很鄙视手工操作,或者使用了太多的manual insight。但如果你要搭建应用系统,那这个简单的人工统计步骤和误差分析,可以节省大量的时间,可以迅速决定什么是最重要的或者最有希望的方向。”
multiple 误差分析
简单来说,包括下面这么几步:
- 列出可以想到的优化思路
- 列出一个表格,横轴为优化思路(可扩充)(+comments),纵轴为错误例子的标号
- 遍历错误例子的标号,在相应的优化思路下打勾
- 计算各个优化思路的比例
这样得到的占比最高的优化思路,就是最应该尝试的思路。
总之,通过统计不同错误标记类型占总数的百分比,可以帮你发现哪些问题需要优先解决,或者给你构思新优化方向的灵感。
你的监督学习的问题的数据由输入X和输出标签Y构成,但是有些时候我们会发现我们人为定标的Y的有问题的。
当这种错误发生在训练集training set
的时候:
深度学习算法对于训练集training set
的随机误差是相当鲁棒的(DL algorithms are quite robust to random errors in the training set)。
也就是说,只要这些错误例子离随机误差差不太远,那么放着不管可能也没问题,当然修正了也可以。
实际的做法是,在检查错误样本的时候,在表格中加入incorrectly labeled
一列
然后由% of total
来决定下一步努力的方向。
对于左边的情况,我们首先应该解决其他问题;而对于右边的情况,我们则应该首先解决incorrect labels
的问题。
而且还有一个问题,当标记错误的比重,相对于错误率不可忽略时,开发集就不能再告诉我们哪一个模型更好。
假设对于这两种模型,errors due incorrect labels
有0.6%,那么开发集就不能告诉我们哪一个模型更好。
在这种情况下,我们也应该首先解决incorrect labels
的问题。
Guidelines
- 开发集和测试集应采用相同的操作,来保证二者的数据同分布。
- 强烈建议在检查判断错误的例子时,也看一下判断正确的例子。
- 开发集和测试集不一定要用到训练集上,因为训练集对随机误差有鲁棒性,训练集和开发集/测试集的分布略有不同是可以接受的。
吴恩达神经网络和深度学习-学习笔记-22-误差分析相关推荐
- 吴恩达神经网络与深度学习——深度神经网络
吴恩达神经网络与深度学习--深度神经网络 深度神经网络 符号 前向传播 矩阵维度 m个样本 为什么使用深层表示 搭建深层神经网络块 正向传播和反向传播 前向和反向传播 前向传播 反向传播 参数和超参数 ...
- 吴恩达神经网络和深度学习
[前言] 在学习了深度学习和神经网络之后,为什么我要以博客的形式来做笔记?这CSDN有那么多的优秀文章,我自己写的都比不上 别人的我写的真的有意义吗,为什么我要浪费大量的时间去做这项工作?我相信一句话 ...
- 吴恩达神经网络与深度学习——浅层神经网络
吴恩达神经网络与深度学习--浅层神经网络 神经网络概述 神经网络表示 计算神经网络的输出 m个样本的向量化 for loop 向量化 向量化实现的解释 激活函数 sigmoid tanh函数 ReLu ...
- 吴恩达神经网络和深度学习-学习笔记-38-使用开源的方案+迁移学习+数据增强data augmentation
使用别人的开源成果 想要用现成的网络,最好在网络上找到开源的实现,这要比从头开始实现快得多. 比如:直接在Google上搜索resnets github,找到合适的后点击下载会得到URL,然后在cmd ...
- 吴恩达神经网络和深度学习-学习笔记-28-端到端的深度学习(end-to-end deep learning )
深度学习最令人振奋的最新动态之一,就是端到端深度学习end-to-end deep learning的兴起. 什么是"端到端深度学习" 以前有一些数据处理系统或学习系统,它们需要多 ...
- 吴恩达神经网络和深度学习-学习笔记-8-梯度消失与爆炸 + 梯度检测
梯度消失与爆炸 介绍 直观理解是: 权重W只比1(即单位矩阵)大一点,深度神经网络的激活函数将爆炸式增长. 权重W只比1(即单位矩阵)小一点,深度神经网络的激活函数将指数式递减. 虽然我(吴恩达老师) ...
- 吴恩达-神经网络和深度学习课程-学习心得(一)
前言: 陆陆续续学完了吴恩达老师在网易云课堂上开设的深度学习工程师微专业的部分内容(01.神经网络与深度学习,04.卷积神经网络,02.改善深层神经网络),在进一步应用实践之前,对之前的学习的内容做个 ...
- 吴恩达神经网络和深度学习-学习笔记-39-计算机视觉现状
Data vs hand-engineering 你可以把大部分的机器学习问题看成是在你的数据相对较少的地方,应用到你拥有大量数据的地方. 我们今天有相当数量的语音识别数据,至少相对于这个问题的复杂性 ...
- 吴恩达神经网络和深度学习-学习笔记-21-何时该改变开发集+测试集或指标
需要我们改变开发集+测试集或指标的情况,是现有的指标或开发测试集并不能帮助我们选择出最好的模型! 如果你的评估指标,无法正确评估好算法的排名,那么就需要花时间定义一个新的评估指标. (加权来排除某一类 ...
最新文章
- 马虎的算式 - 蓝桥杯
- PAT甲级1103 Integer Factorization (30 分):[C++题解]背包问题,DP解法
- Python 基础,不看会后悔哦!
- android button layoutparams,使用LayoutParams设置布局
- 【图像融合】基于matlab GUI SIFT+小波变换图像拼接融合系统【含Matlab源码 815期】
- SSH KEY免密码验证
- Ms visio 下载
- 怎样修改管家婆服务器密码,管家婆软件肿么修改密码
- 软件测试项目实战,适合大家练习的实战项目有。
- c# meiju(摘)
- java 读取手机sd卡_获取Android手机中SD卡内存信息
- Ansible#Ansible-Jinja2模板介绍
- unity 5.x android发布注意事项
- 自定义控件-视觉特效
- 胡昌泽day5_循环语句
- 解决Ubuntu Linux终端输入命令没有颜色提示的设置方法
- Factory IO仿真工厂与西门子博途软件联动仿真
- git更新远程代码到本地仓库的命令
- 010 Editor 9.0.2——注册错误(010 Editor has detected that you have entered an invalid license.)
- 基金训练营学习笔记7-止盈
热门文章
- js table 生成序号_CSS Counter 以及 CSS content 内容生成技术的实用价值
- php路径伪静态化,URL地址伪静态化
- 前端用户忘记密码,手机验证码修改密码功能
- Vue中this.$router.replace和this.$router.push的区别
- 小试ImageMagik——开发篇
- linux根据端口号找目录,linux篇---根据端口号查看进程位置
- “n个球放入m个盒子是否为空”的方案数
- 【codevs2627】村村通
- UVa1149 - Bin Packing
- linux 常用分区有哪些,Linux常用分区及目录