修复 seq2seq 模型的错误输出

Fixing error output from seq2seq model

我想问您,我们如何才能有效地重新训练经过训练的 seq2seq 模型,以 remove/mitigate 观察到特定的错误输出。我将举一个关于语音合成的例子,但是来自不同领域的任何想法,例如机器翻译和语音识别,使用 seq2seq 模型将不胜感激。

我用注意力模型学习了seq2seq的基础知识,尤其是语音合成,例如Tacotron-2。 使用分布式训练有素的模型向我展示了我们的计算机如何自然地与 seq2seq(端到端)模型对话(您可以收听一些音频样本 here)。但是,模型仍然无法正确阅读某些单词,例如,它无法以多种方式阅读 "obey [əˈbā]",例如 [əˈbī] 和 [əˈbē]。

原因很明显,因为单词 "obey" 出现的太少,在我们的数据集 (LJ Speech) 的 225,715 个单词中只出现了三次,而模型没有运气。

那么,我们如何重新训练模型来克服错误呢?添加包含 "obey" 发音的额外音频剪辑听起来不切实际,但重复使用这三个音频剪辑有过度拟合的危险。而且,我想我们使用了一个训练有素的模型,"simply training more" 不是一个有效的解决方案。

现在,这是seq2seq模型的缺点之一,不多说了。该模型成功地简化了传统模型的管道,例如,对于语音合成,它用单个神经网络取代了声学模型和文本分析前端等。但是我们完全失去了模型的可控性。让系统以特定方式读取是不可能的。

同样,如果你在任何领域使用 seq2seq 模型并得到不希望的输出,你如何解决这个问题?这个问题是否有数据科学的解决方法,或者可能是尖端的神经网络机制在 seq2seq 模型中获得更多的可控性?

谢谢。

我在 the paper(Deep Voice 3)的第 3.2 节中找到了我自己的问题的答案。 因此,他们同时训练了基于音素的模型和基于字符的模型,主要使用音素输入,除了如果单词无法转换为其音素表示,则使用基于字符的模型。