[DeeplearningAI笔记]ML strategy_2_2训练和开发/测试数据集不匹配问题
机器学习策略-不匹配的训练和开发/测试数据
觉得有用的话,欢迎一起讨论相互学习~Follow Me
2.4在不同分布上训练和测试数据
- 在深度学习时代,越来越多的团队使用和开发集/测试集不同分布的数据来训练模型.下面解释一些方法来处理训练集和测试集存在差异的情况.
Example1
- 假设你要开发一个识别猫的机器学习系统,其中 需要识别的是用户手机上传的猫的图片 这些图片往往清晰度低,取景不专业,识别度低.由于用户量少的缘故,这些图片量很少,只有大约1W张.但是从网上可以下载大量清晰度高,取景专业,辨识度高的猫的图片,大约20W张. 1W张的用户图片是我们真正关心的数据,但是这对于训练模型是远远不够的.所以我们将20W网上下载的高清图片作为训练集,但这和想要实际处理的数据并不一样

Solution1
- 将20W张高清图片与1W张用户手机上传的模糊图片混合,随机分配到训练,开发和测试集中.假设你已经确定开发集和测试集中各包含2500个样本,训练集包括205000个样本.
- 这种方式很大的坏处在于:对于 开发集 的2500个样本,大部分来自于网上下载的高清图片.这并不是你真正关心的数据分布.由数学期望我们计算出大约有\(\frac{200K}{210K}=2381\)张图片来自高清数据集,有\(\frac{10K}{210K}=119\)张图片来自于用户上传图片即真正应该关心的数据.
- 所以这种方式的结果是系统的大部分工作是优化网上下载的高清图片.这并不是我们需要的分布.
- 这种方式不推荐使用
Solution2
- 为了避免Solution1中带来的问题,我们将使用网上的高清图片200K张图片和5K张来自用户手机的上传图片作为 训练集,而 开发集 和 测试集 都是2500张不同的手机图片.
- 这种方式的好处在于:开发集和测试集中的图片来与用户上传的手机图片 这才是你系统真正关心的重点.
Example2
- 假设你要开发一个智能语音汽车后视镜,你现在有很多语音数据,但是这些都不是来自智能语音后视镜的.下面解释如何来分配训练集,开发集和测试集.
- 训练集
- 500K段语音数据:
- 购买的带标签的语音数据
- 智能音箱,语音激活音箱数据
- 语音激活键盘数据
- 10K段语音激活后视镜数据
- 开发集/测试集语音数据:
- 各来自实际语音激活后视镜的数据5K段语音数据.
2.5 不匹配分布的偏差和方差
对于训练集和开发/测试集来自不同的分布的情况而言,我们计算偏差和方差的方法不同.
Notics
- 算法只见过训练集数据,没见过开发集数据
- 开发集数据来自不同的分布
需要辨清开发集上的误差有多少是因为算法没看到开发集中的数据导致的<方差>,多少是因为开发集数据分布本身就不一样<数据不匹配>
Solution
- 定义一个新的数据train-dev set 从训练集中抽取数据,和训练集数据来自同一个数据分布,但是不用于训练数据.
- 分别将分类器在训练集/训练-开发集/开发集上运行,获取其准确率信息
- 假如在训练集上误差为1%,在训练-开发集上误差为9%,在开发集上误差为10%
- 分类器在训练集和训练开发集上误差差距较大,这表明算法没有识别没有看到过的数据,这表明分类器本身方差较大
- 分类器在训练-开发集和开发集上误差差距不大,表明算法误差的差距不是主要由于数据 分布不一样 导致的
- 假如在训练集上误差为1%,在训练-开发集上误差为1.5%,在开发集上误差为10%
- 分类器在训练集和训练开发集上误差差距较小,这表明分类器本身方差不大
- 分类器在训练-开发集和开发集上误差差距很大,表明算法误差的差距主要由于 数据不匹配 导致的

2.6 定位数据不匹配
- 如果你的训练集和开发/测试集来自不同的数据分布,并且误差分析的结果表明你有一个数据不匹配的问题,这个问题没有标准的解决方案,但是我们可以尝试一些可以做的事情.
Suggestion
- 做误差分析,并且了解训练集和开发/测试集的具体差异.
- 人为加工训练集(人工合成数据),使其和开发/测试集更加相近,或者收集更多的类似于开发/测试集的数据.
- 对于作者举例的语音识别智能后视镜的例子,我们可以先准备大量清晰的音频(不带马路噪音的数据),然后手机汽车噪音的音频,将两者合成后成为人工合成的数据.
- 但是应该注意,任意重复噪音,容易造成模型对该段噪音的过拟合.最好是不要重复噪音数据,而是收集等长的噪音数据.学习算法有可能取得更好的性能.
- 当使用人工数据合成时,一定谨记有可能人工合成的数据只是从所有可能性的空间选取了很小一部分去模拟数据.

[DeeplearningAI笔记]ML strategy_2_2训练和开发/测试数据集不匹配问题的更多相关文章
- Alink漫谈(七) : 如何划分训练数据集和测试数据集
Alink漫谈(七) : 如何划分训练数据集和测试数据集 目录 Alink漫谈(七) : 如何划分训练数据集和测试数据集 0x00 摘要 0x01 训练数据集和测试数据集 0x02 Alink示例代码 ...
- [DeeplearningAI笔记]ML strategy_1_2开发测试集评价指标
机器学习策略 ML strategy 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.4 满足和优化指标 Stisficing and optimizing metrics 有时候把你要考 ...
- [DeeplearningAI笔记]ML strategy_1_3可避免误差与改善模型方法
机器学习策略 ML strategy 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.8 为什么是人的表现 今天,机器学习算法可以与人类水平的表现性能竞争,因为它们在很多应用程序中更有生产 ...
- [DeeplearningAI笔记]ML strategy_1_1正交化/单一数字评估指标
机器学习策略 ML strategy 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.1 什么是ML策略 机器学习策略简介 情景模拟 假设你正在训练一个分类器,你的系统已经达到了90%准确 ...
- [DeeplearningAI笔记]ML strategy_2_1误差分析
机器学习策略-误差分析 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.1 误差分析 训练出来的模型往往没有达到人类水平的效果,为了得到人类水平的结果,我们对原因进行分析,这个过程称为误差 ...
- [DeeplearningAI笔记]ML strategy_2_3迁移学习/多任务学习
机器学习策略-多任务学习 Learninig from multiple tasks 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.7 迁移学习 Transfer Learninig 神 ...
- [DeeplearningAI笔记]ML strategy_2_4端到端学习
机器学习策略-端到端学习 End-to-end deeplearning 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.9 什么是端到端学习-What is End-to-end dee ...
- [DeeplearningAI笔记]改善深层神经网络1.1_1.3深度学习使用层面_偏差/方差/欠拟合/过拟合/训练集/验证集/测试集
觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.1 训练/开发/测试集 对于一个数据集而言,可以将一个数据集分为三个部分,一部分作为训练集,一部分作为简单交叉验证集(dev)有时候也成为验 ...
- ML基础 : 训练集,验证集,测试集关系及划分 Relation and Devision among training set, validation set and testing set
首先三个概念存在于 有监督学习的范畴 Training set: A set of examples used for learning, which is to fit the parameters ...
随机推荐
- Java_web学习(一) jdk配置
1.下载好jdk1.8.0版本或以上版本 2.配置JAVA_HOME,CLASSPATH,PATH 其中JAVA_HOME必须的 2.1 JAVA_HOME=E:\java\jdk1.8.0_77 ...
- 图书管理系统设置登录验证(cookies)
先前做的图书管理登录页面虽然有那个页面,在你登录之后他会在数据库中查找值,然后验证,最后跳转到指定页面,,可是当你直接访问那个指定页面的时候不用登录也可以登录那个指定的页面: 由于前段时间已经做过图书 ...
- 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](一)
前言 大家好,我是Rector 从今天开始,Rector将为大家推出一个关于创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar]的文章系列, ...
- 微信小程序登陆授权
小程序前端代码 function WXlogin(){ wx.login({ success: function (code) { wx.getUserInfo({ success:function( ...
- Machine Learning - week 3 - Overfitting
The Problem of Overfitting 如果有太多的 features,假设可能与训练数据太匹配了以致于预测未来的数据不准确.如下图: 解决 overfitting 1. 既然是由太多的 ...
- 51 nod 1227 平均最小公倍数
原题链接 Lcm(a,b)表示a和b的最小公倍数,A(n)表示Lcm(n,i)的平均数(1 <= i <= n), 例如:A(4) = (Lcm(1,4) + Lcm(2,4) + Lcm ...
- bzoj:4105: [Thu Summer Camp 2015]平方运算
Description Input 第一行有三个整数N,M,p,分别代表序列的长度.平方操作与询问操作的总次数以及在平方操作中所要模的数. 接下来一行N个数代表一开始的序列{X1,X2,... ...
- CodeForces832-B. Petya and Exam
补的若干年以前的题目,水题,太菜啦_(:з」∠)_ B. Petya and Exam time limit per test 2 seconds memory limit per test 2 ...
- HDU1159-Common Subsequence-LCS
上次写题解写到一半,写的比较具体,没写完,忘记存草稿了...导致现在没心情了. Common Subsequence Time Limit: 2000/1000 MS (Java/Others) ...
- tree conflict svn 怎么解决
如果自己和其他人修改了同一个文件,而他已经更新到SVN,你commit时就会出现冲突,如何解决呢? 方法/步骤 使用SVN时,更新一个自己修改的文件到服务器,出现冲突,因为其他同事也修改了这个文件并且 ...