ubuntu之路——day11.3 不匹配数据划分的偏差和方差
在11.2中,我们提到了一种数据划分的方法,那么怎么衡量这种数据划分方法中的误差呢?
来看一个例子:有20w条各种领域的语音识别数据,2w条汽车语音定位数据
train+dev+test,其中train是20w原始数据+1w汽车数据,dev和test各自都是5k条汽车数据
显然地,train和dev/test此时是不同分布的,如果出现以下情况
基准情况:
train error:1%
dev error:10%
我们不知道如何评估这种误差,因为train和dev是不同分布的,存在可能模型本来很好但是由于汽车数据的噪音等等所以错误上升了。但是也有可能模型本来就不好,所以很难判断真实问题是什么。
情况一:
所以引入train-dev集合,请看下面的划分:
train的20w原始数据+1w汽车数据打乱并random shuffle到train/train-dev中,比如此时train有20w打乱后的数据,train-dev有1w打乱后的数据,dev和test不变,请看以下情况:
train error:1%
train-dev:9%
dev error:10%
此时,train和train-dev是同分布的,所以可以看出这两者的方差variance较大,即使在train集上表现较好,依然无法将其泛化到同分布的train-dev集上,所以我们可以使用改进variance的方法对模型进行改进。
情况二:
train error:1%
train-dev:1.5%
dev error:10%
此时,可以看到variance的问题已经不存在了,但此时将其放入不同分布的dev集合上误差变大,所以我们说这就是数据不匹配的问题
情况三:
train error:10%
train-dev:11%
dev error:12%
注意:此时以human performance为代表的bayes optimal error为0
所以此时出现了可避免误差bias的情况,因为在train集上,误差相较于最优误差有很大差距。
情况四:
train error:10%
train-dev:11%
dev error:20%
注意:此时以human performance为代表的bayes optimal error为0
所以此时出现了两种问题:一.可避免误差bias高;二.数据不匹配
结论:
human performance(bayes error):a%
train error:b%
train-dev:c%
dev error:d%
test error:e%
1.通过衡量a与b的差距,可以看出偏差bias的高低
2.通过衡量b与c的差距,可以看出方差variance的高低
3.通过衡量c与d的差距,可以看出是否存在数据不匹配的问题
4.通过衡量d与e的差距,可以看出模型是否在dev上存在过拟合的问题,如果存在可能需要更大更全面的dev set
最后全新的问题出现了,数据不匹配怎么办?
不幸的是目前为止没有系统性的方案解决这一问题,但是我们仍旧有一些方式可以对这一问题有所帮助,请看11.4 定位数据不匹配
ubuntu之路——day11.3 不匹配数据划分的偏差和方差的更多相关文章
- ubuntu之路——day11.4 定位数据不匹配与人工合成数据
1.人工检验train和dev/test之间的区别: 比如:汽车语音识别中的噪音.地名难以识别等等 2.使得你的训练集更靠近(相似于)dev/test,收集更多类似于dev的数据: 比如:dev中存在 ...
- ubuntu之路——day11.7 end-to-end deep learning
在传统的数据处理系统或学习系统中,有一些工作需要多个步骤进行,但是端到端的学习就是用一个神经网络来代替中间所有的过程. 举个例子,在语音识别中: X(Audio)----------MFCC----- ...
- ubuntu之路——day11.6 多任务学习
在迁移学习transfer learning中,你的步骤是串行的sequential process 在多任务学习multi-task learning中,你试图让单个神经网络同时做几件事情,然后这里 ...
- ubuntu之路——day11.5 迁移学习
在深度学习领域中,最强力的理念之一就是可以将神经网络学习的一种知识应用到另一个独立的任务中. 看上面的例子,首先我们有一个已经完成训练的神经网络,其目标是图像识别,我们有了绿色的1000000张图片并 ...
- ubuntu之路——day11.2 快速搭建系统并进行迭代、在不同的划分上进行训练和测试
快速搭建系统并进行迭代 1.建立dev/test set,并确定你的目标 2.快速建立初始化的系统 3.使用前面提到的bias/variance分析和错误分析来进行模型优化和迭代 针对以上的过程,An ...
- ubuntu之路——day11.1 如何进行误差分析
举个例子 还是分类猫图片的例子 假设在dev上测试的时候,有100张图片被误分类了.现在要做的就是手动检查所有被误分类的图片,然后看一下这些图片都是因为什么原因被误分类了. 比如有些可能因为被误分类为 ...
- python之路-Day11
引子 到目前为止,我们已经学了网络并发编程的2个套路, 多进程,多线程,这哥俩的优势和劣势都非常的明显,我们一起来回顾下 协程 协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程: ...
- #leetcode刷题之路44-通配符匹配
给定一个字符串 (s) 和一个字符模式 (p) ,实现一个支持 '?' 和 '*' 的通配符匹配.'?' 可以匹配任何单个字符.'*' 可以匹配任意字符串(包括空字符串).两个字符串完全匹配才算匹配成 ...
- #leetcode刷题之路10-正则表达式匹配
匹配应该覆盖整个字符串 (s) ,而不是部分字符串.说明:s 可能为空,且只包含从 a-z 的小写字母.p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *. 示例 1:输入:s = & ...
随机推荐
- HTML5新增元素和移除的元素?
新增元素: 图像Canvas 多媒体video.audio 本地存储localStorage.sessionStorage 语义化更好的内容元素aticle.header.footer.nav.sec ...
- expect脚本远程登录、远程执行命令和脚本传参简单用法
expect介绍: 最近想写一个自动化安装脚本,涉及到远程登录.分发文件包.远程执行命令等,其中少不了来回输入登录密码,交互式输入命令等,这样就大大降低了效率,那么有什么方法能解决呢?不妨试试expe ...
- Linux命令——sync
参考:A Step-By-Step Guide to Using the Linux sync Command 前言 数据只有被读入内存才能被CPU所处理,但是数据又常常需要由内存写回磁盘当中(例如储 ...
- 布隆过滤器(Bloom Filter)-学习笔记-Java版代码(挖坑ing)
布隆过滤器解决"面试题: 如何建立一个十亿级别的哈希表,限制内存空间" "如何快速查询一个10亿大小的集合中的元素是否存在" 如题 布隆过滤器确实很神奇, 简单 ...
- MPU-6050
MPU-6000(6050)为全球首例整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时间轴之差的问题,减少了大量的封装空间.当连接到三轴磁强计时,MPU-60X0提供完整的9轴运动 ...
- 《代码敲不队》第九次团队作业:Beta冲刺第1天
项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 代码敲不队 作业学习目标 (1)项目文档的完善与整理:(2)团队项目总结陈述PPT编制:(3)符合 ...
- 《发际线总是和我作队》第九次作业:Beta冲刺Scrum Meeting3
项目 内容 这个作业属于哪个课程 软件工程 这个作业的要求在哪里 实验十三 团队作业9:Beta冲刺与团队项目冲刺 团队名称 发际线总和我作队 作业学习目标 (1)掌握软件黑盒测试技术:(2)掌握软件 ...
- LOJ129 Lyndon 分解
Lyndon 分解 样例 样例输入 1 ababa 样例输出 1 2 4 5 样例输入 2 bbababaabaaabaaaab 样例输出 2 1 2 4 6 9 13 18 样例输入 3 azAZ0 ...
- CF1106F Lunar New Year and a Recursive Sequence——矩阵快速幂&&bsgs
题意 设 $$f_i = \left\{\begin{matrix}1 , \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i < k\\ ...
- [Flutter] Create a Customer widget
For example, we want to have to button, looks similar to FloatingActionButton: But in the doc, it sa ...