[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 ...
随机推荐
- 聊一聊Javasript继承
前前后后已经快写了2年左右javaScript,刚开始只是简单用于一些表单验证和操作dom节点,并没有深入的使用,随着渐渐的深入,开始不想去写重复的代码(懒的开始),从而写简单的继承,封装,抽象等 ...
- sqlalchemy-数据库操作
import datetime from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarat ...
- CSS文本超出2行就隐藏并且显示省略号
今天做东西,遇到了这个问题,百度后总结得到了这个结果. 首先,要知道css的三条属性. overflow:hidden; //超出的文本隐藏 text-overflow:ellipsis; //溢出用 ...
- 学习web前端技术的笔记,仅供自己查阅备忘,移动对font-size的控制(并非原创)
假设根字体font-size的值是40px, 640/40=16,16就是px换算rem的值 function initHtmlFontSize(){ //获取可可视屏幕的宽度 var _width= ...
- BZOJ 3668: [Noi2014]起床困难综合症【贪心】
3668: [Noi2014]起床困难综合症 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 2326 Solved: 1305[Submit][St ...
- [bzoj1783] [Usaco2010 Jan]Taking Turns
题意: 一排数,两个人轮流取数,保证取的位置递增,每个人要使自己取的数的和尽量大,求两个人都在最优策略下取的和各是多少. 注:双方都知道对方也是按照最优策略取的... 傻逼推了半天dp......然后 ...
- jQuery:图片自动变换
<script type="text/javascript"> var aa=0; //设置变换时间为2s var timeChange=2000; //定义数组 va ...
- OpenCV3.4两种立体匹配算法效果对比
以OpenCV自带的Aloe图像对为例: 1.BM算法(Block Matching) 参数设置如下: ) + ) & -; cv::Ptr<cv::StereoBM> b ...
- IT术语的正确读法
Linux /ˈlɪnəks/ /ˈlɪnʊks/(EU) Linux 是一类 Unix 计算机操作系统的统称.该操作系统的核心的名字也是“ Linux” .参考: < !-- m --> ...
- 开源三维地球GIS引擎Cesium常用功能的开发
Cesium是一个非常优秀的三维地球GIS引擎(开源且免费).能够加载各种符合标准的地图图层,瓦片图.矢量图等都支持.支持3DMax等建模软件生成的obj文件,支持通用的GIS计算:支持DEM高程图. ...