40.从训练数据集泛化到开发数据集 翻译自 吴恩达新书-Machine Learning Yearning

吴恩达新书《机器学习年鉴》中文版单页版本

吴恩达新书《机器学习年鉴》全书目录导航

机器学习:让机器学会打游戏系列教程(含视频)

假如你正在配置一个模型,这个模型中训练样本集中的数据分布与开发/测试样本不同。
比如说,训练样本集中包含网络图片和手机上传图片,而测试/开发样本集中只包含手机上传的图片。然后,此时算法表现很差,它在开发/测试样本集上的错误率远高于你的期望。造成这种现象的原因可能有以下几个:

  1. 它在训练样本集上表现的也很差。这时模型在训练样本集中,有高偏差的问题。
  2. 他可以在训练样本集上表现的很好。但是算法不能泛化到与训练样本集分布相同,但是之前没见过的数据上,这是高方差的问题。
  3. 模型可以很好的泛化到相同分布的数据上,但是在不同分布的开发/测试样本集上,表现的很差。我们称这个问题叫做数据不匹配,这是因为训练样本集与开发/测试样本集匹配度很差。

比如,在人类可以取得近乎完美的猫的图片识别任务,你的算法表现如下:

  • 在训练样本集上的错误率为1%
  • 在与训练数据分布相同,但是之前没用过的数据上,算法的错误率为1.5%
  • 在开发数据集上的错误率为10%

在这个例子中,你可以很明显的看出数据不匹配问题。为了处理这个问题,你需要让训练数据更加接近开发/测试数据。我们之后将会讨论与之相关的技术。

为了诊断出算法出现了上面三个问题中的哪一个,你需要再使用一个数据集。因此,相比把所有的训练数据都用作训练,你应该把训练数据分成两部分:一部分用作算法的训练,另一部分称作训练开发集,这部分数据不参与训练。

你现在有四个数据子集:

  • 训练数据集:算法用于学习训练的数据(比如网络图片+用户上传的图片)。这部分数据与我们关心数据(开发/测试样本集)的分布不同。
  • 训练开发集:这部分数据与训练数据集的分布相同(比如网络图片+用户上传图片),他通常会比训练样本集小,因为它只要能评估和追踪算法的进度就可以了。
  • 开发数据集:这部分数据与测试数据集分布相同,反映了我们真是关心的数据分布(比如用户上传的图片数据分布)
  • 测试数据集:这部分数据与开发数据集分布相同。

拥有这四个数据集,你可以完成以下评估:

  • 通过训练样本集评估训练错误率
  • 通过训练开发集,评估算法在同一分布数据上的泛化能力
  • 通过开发/测试样本集,评估算法在你真正关心数据上的表现

5-7章所说的开发测试大小的选择方法,也同样适用于训练开发集大小的选择。

更多好玩的机器学习教程: 进入袋马学院领一份 ,全部免费?.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值