【发布时间】:2018-06-02 13:45:53
【问题描述】:
我想问您,我们如何有效地重新训练经过训练的 seq2seq 模型,以消除/减轻特定的观察到的错误输出。我将举一个关于语音合成的例子,但是任何来自不同领域的想法,例如机器翻译和语音识别,使用 seq2seq 模型都会受到赞赏。
我通过注意力模型学习了 seq2seq 的基础知识,尤其是语音合成,例如Tacotron-2。 使用经过良好训练的分布式模型向我展示了我们的计算机如何自然地与 seq2seq(端到端)模型对话(您可以收听一些音频样本 here)。但是,该模型仍然无法正确读取某些单词,例如,它无法以多种方式读取“obey [əˈbā]”,例如 [əˈbī] 和 [əˈbē]。
原因很明显,因为在我们的数据集 (LJ Speech) 中,“obey”这个词出现得太少了,在 225,715 个词中只出现了 3 次,而且模型没有运气。
那么,我们如何重新训练模型以克服错误?添加包含“obey”发音的额外音频片段听起来不切实际,但重复使用三个音频片段有过度拟合的危险。而且,我认为我们使用了一个训练有素的模型,而“简单地训练更多”并不是一个有效的解决方案。
现在,这是 seq2seq 模型的缺点之一,不多说。该模型成功地简化了传统模型的流程,例如,对于语音合成,它用单个神经网络代替了声学模型和文本分析前端等。但是我们完全失去了模型的可控性。不可能让系统以特定的方式读取。
同样,如果您在任何领域使用 seq2seq 模型并得到不希望的输出,您如何解决这个问题?是否有针对这个问题的数据科学解决方法,或者可能是一种尖端的神经网络机制来在 seq2seq 模型中获得更多的可控性?
谢谢。
【问题讨论】:
标签: tensorflow machine-learning neural-network nlp text-to-speech