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

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

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

假设你开发了一款语音识别系统,在训练集和训练开发集上表现很好。然而,系统在开发集上表现很差:这是⼀个数据不匹配的问题。你会怎么做?

我的建议:

  1. 了解训练集和开发集上数据分布的不同点。
  2. 找到更多和你开发集分布一致的数据。

举例来说,假设你在语音识别的开发集上进行误差分析:你手动检查了100个样本,然后试着分析算法出错的原因。你发现你的算法表现不好,是因为开发集上的大部分的语音片段是在车里录制的,而训练集上的语音样本是在背景安静的环境下录制的。汽车发动机还有马路上的噪音严重影响了你的语音系统的识别性能。这种情况下,你可能需要试着获取更多在车上录制的语音片段,并加入训练集。误差分析的目的是了解训练集和开发集之间主要的区别,弄清楚导致数据不匹配的主要问题。

如果你的训练集和训练开发集包括那些在车上录制的音频样本,你也应该在这部分的数据子集上双重地检查你的系统性能。如果在训练集上,算法对车内录制的音频样本数据表现很好,但是在训练开发集上,对车内录制的样本表现很差,这就验证了⼀个假设,获取更多在车上录制的⾳频样本会很有帮助。这就是为什么我们会在之前的章节中讨论,训练集上要包含⼀些样本数据,和开发/测试集数据的数据分布相同。这样做还可以让你对比在训练集以及开发/测试集上,关于车内音频数据上性能的不同。

不幸的是,这个过程是无法保证的。比如,如果你怎么都找不到可以开发集数据相匹配的测试数据,那么,你想要提升性能就没有十分清晰有效的方法。

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

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐