49. 端到端学习的优点和缺点

考虑与我们之前的例子相同的语音系统管道:

22

这条管道的许多部分都是“手工设计的”:

  • MFCCs 属于手工设计的音频特征集。虽然它们提供了一个合理的音频输入的摘要,但它们也因为丢弃一些信息使得输入信号简化了。
  • 音素是语言学家的发明。它们是语音的不完美表现。如果“音素”对现实声音的近似很差,那么迫使一个算法使用音素来表示则会限制语音系统的性能。

虽然这些手工设计的组件限制了语音系统的潜在性能。但是,允许手工设计的组件也有一些优点:

  • MFCC 提取的特征能对与内容无关的某些语音属性(如扬声器音高)具有鲁棒性。因此,它们有助于简化学习算法的问题;
  • 音素在一定程度上也是一种合理的语音表达,也可以帮助学习算法理解基本的语音成分,从而提高其性能。

拥有更多手工设计的组件通常可以让语音系统以更少的数据进行学习。MFCCs 和基于音素捕获的手工工程知识“补充”了我们的算法从数据中获得的知识。当我们没有太多的数据时,这些知识是有用的。

现在,考虑端到端系统:

23

该系统缺乏手工设计的知识。因此,当训练集很小时,它可能比手工设计的管道更糟糕。

然而,当训练集很大时,它不会受到 MFCC 或基于音素表示的限制。如果学习算法是一个足够大的神经网络,同时经过了足够多的训练数据的训练,那么它就有可能做得很好,甚至可能接近最优错误率。

当有大量的“两端”(输入端和输出端)标记数据时,端到端学习系统往往会做得很好。在本例中,我们需要一个大数据集(音频-文本对)。因此,当这种类型的数据不可用时,请小心谨慎地进行端到端的学习。

如果你正在研究一个机器学习问题,而训练集非常小,那么你的算法的大部分知识都必须来自于你的人类洞察力——即,来自您的“手工工程”组件。

如果您选择不使用端到端系统,那么您必须决定管道中的每一个步骤,以及它们连接次序。在接下来的几章中,我们将对此类管道的设计提出一些建议。