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 = & ...
随机推荐
- UCOSIII内建消息队列
使能内建消息队列 将OS_CFG_TASK_Q_EN置1 API函数 #if OS_CFG_TASK_Q_EN > 0u //删除 OS_MSG_QTY OSTaskQFlush (OS_TCB ...
- 利用ABAP 740的新关键字REDUCE完成一个实际工作任务
ABAP 740从2013年发布至今已经过去很长的时间了,下面这张图来自SAP社区博客: ABAP News for Release 7.40 – What is ABAP 7.40? 图中的ABAP ...
- Vue检测当前是否处于mock模式
Vue检测当前是否处于mock模式 1.在main.js中声明全局变量: import Vue from 'vue' /* 全局变量 */ var GLOBAL_VARIABLE = { isMock ...
- C++(三十七) — 字符串的函数重载—案例
1.MyString.h 头文件 #pragma once #include <iostream> using namespace std; class MyString { public ...
- Visio 撤销按钮无法使用 菜单显示:无法撤销
首先是借鉴地址:https://answers.microsoft.com/en-us/msoffice/forum/msoffice_visio-mso_other-mso_2007/visio-o ...
- 用js刷剑指offer(丑数)
题目描述 把只包含质因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 思路 ...
- C#编译相关知识
C#代码编译成MSIL代码. 当用户编译一个.NET程序时,编译器将源代码翻译成一组可以有效地转换为本机代码且独立于CPU的指令.当执行这些指令时,实时(JIT)编译器将它们转化为CPU特定的代码.由 ...
- 乔布斯在位时,库克实质上已经在做CEO的工作了:3星|《蒂姆·库克传》
“ 一些人认为艾夫是接替乔布斯的热门人选,他对苹果的原晃和产品来说至关重要,但他本人对管理企业却毫无兴趣.艾夫想继统做设计.在苹果,他拥有所有设计师都梦寐以求的工作环境——无限的资源和自由创作的空间. ...
- 安装k8s,高可用3 master安装脚本
每个在新集群里,记得更改三个节点的IP即可. 第一步还是要执行那个root脚本,准备好系统环境,安装好软件. 先安装在每个节点上使用docker安装好etcd.(sh script domain et ...
- :Spring-06 -AOP [面向切面编程] -配置异常通知的两种方式--AspectJ 方式 -Schema-based 方式
三.配置异常通知的步骤(AspectJ 方式) 1.只有当切点报异常才能触发异常通知 2.在spring 中有AspectJ 方式提供了异常通知的办法 3.实现步骤: 3.1新建类,在类写任意名称的方 ...