Skip to content
This repository was archived by the owner on Aug 16, 2022. It is now read-only.

Latest commit

 

History

History
12 lines (7 loc) · 1.99 KB

42.addressing-data-mismatch.md

File metadata and controls

12 lines (7 loc) · 1.99 KB

42. 解决数据不匹配问题

假设你已经开发了一个语音识别系统,它在训练集和训练开发集上都表现得很好。但是,它在你的开发集上做得很差:这表明有一个数据不匹配的问题。你会怎么做呢?

我建议你:(i)尝试理解训练集和开发集分布之间的数据属性差异。(ii)尝试找到更多的训练数据,以便更好地匹配你的算法做不好的开发集样本。

还有一些关于“领域适应”的研究 --- 如何在一个分布上训练算法,并将其泛化到一个不同的分布。这些方法通常只适用于特殊类型的问题,比本章描述的想法使用范围要小得多。

例如,假设你在语音识别开发集上进行误差分析:你手动检查100个样例,并试图去理解算法在哪里犯错了。你发现系统表现糟糕是因为大部分开发集里的音频剪辑是在车内获取的,而大部分的训练样例是在安静的背景下记录的。发动机和路上的噪音极大地恶化了语音系统的表现。在这种情况下,你可以尝试去获取更多的包含车内的音频剪辑的训练数据。误差分析的目的是去理解导致数据不匹配的训练集和开发集之间的显著差异。

如果你的训练和训练开发集包含车内录制的音频,你还应该再次确认系统在该数据子集上的表现。如果它在训练集中的车内录制的音频上表现良好,但在训练开发集的车内录制的音频上表现不佳,那么这进一步验证了获取更多车内录制的音频会有帮助的假设。这就是为什么我们讨论的在训练集中加入一些和前一章中开发/测试集来自相同分布的数据的可能性。这样做允许你比较在训练集车内录制的音频和开发/测试集车内录制的音频上的表现。

不幸的是,这个过程并没有保障。例如,如果你无法获取更多和开发集数据更匹配的训练数据,你可能就没有一个清晰的路径来提升性能。