端到端学习的优缺点

考虑先前提到的语音识别系统的流水线:

端到端学习的优缺点 - 图1

该流水线中的许多部分都是 “人工设计” 的:

  • 频谱系数即是一套经过人工设计的特征。尽管它们提供了对音频输入的一种合理归纳,但也通过抛出一些信息简化了输入信号。
  • 音素是语言学家的发明,作为说话声音的一种不完备的表示。在某种意义上,音素是对现实语音很差的近似,因此迫使算法使用音素进行表示将限制语音系统的性能。

这些人工设计的成分限制了语音系统的潜在性能,然而这样做也有一些优点:

  • 频谱系数的特性对于处理一些不影响内容的音频属性是很有效的,比如说话者的音高。因此它们有助于简化学习算法面临的问题。
  • 在一定程度上,音素是一种合理的语音表示方法,它们也可以帮助学习算法理解基本的声音成分,从而提高其性能。

拥有更多的人工设计成分通常可以让语音系统学习更少的数据,由频谱系数和音素所捕获的人工设计的知识对算法从数据中获取的知识进行了补充。当我们的数据量不是很多时,这些知识是非常有用的。

现在,考虑端到端系统:

端到端学习的优缺点 - 图2

这个系统缺乏人工设计知识,因此当训练集很小的时候,它的表现可能比人工设计的流水线更加糟糕。

然而当训练集很大时,它不会受到频谱系数或者语音表示方法的限制。如果学习算法是一个足够大的神经网络,且喂进去许多的训练数据,就有可能做得更好,甚至达到最优错误率。

端到端学习系统在 “两端” —— 输入端和输出端拥有大量标记数据时,往往做得更好。在这个例子中,我们需要一个大数据集(包含<音频,文本>对)。当这种类型的数据不可用时,使用端到端学习则需非常谨慎。

如果你正在研究一个训练集非常小的机器学习问题,那么算法的大部分知识都将来自于你的人类洞察力,即你的 “人工设计” 成分。

如果不使用端到端系统,你将不得不决定在流水线中需要有哪些组件,以及它们应该如何连接在一起。在接下来的几章中,我们将对这类流水线的设计提出一些建议。