tensorflow - 修复 seq2seq 模型的错误输出
问题描述
我想问你我们如何才能有效地重新训练一个训练有素的 seq2seq 模型来删除/减轻特定的观察到的错误输出。我将举一个关于语音合成的例子,但是任何来自不同领域的想法,比如机器翻译和语音识别,使用 seq2seq 模型都会受到赞赏。
我通过注意力模型学习了 seq2seq 的基础知识,尤其是对于Tacotron-2等语音合成。使用经过良好训练的分布式模型向我展示了我们的计算机如何自然地与 seq2seq(端到端)模型对话(您可以在此处收听一些音频样本)。但是,该模型仍然无法正确读取某些单词,例如,它无法以多种方式读取“obey [əˈbā]”,例如 [əˈbī] 和 [əˈbē]。
原因很明显,因为在我们的数据集( LJ Speech )中, “obey”这个词出现得太少了,在 225,715 个词中只有 3 次,而且模型没有运气。
那么,我们如何重新训练模型来克服错误呢?添加包含“obey”发音的额外音频片段听起来不切实际,但重复使用这三个音频片段有过度拟合的危险。而且,我想我们使用了一个训练有素的模型,而“简单地训练更多”并不是一个有效的解决方案。
现在,这是 seq2seq 模型的缺点之一,不多说。该模型成功地简化了传统模型的流程,例如,对于语音合成,它用单个神经网络代替了声学模型和文本分析前端等。但是我们完全失去了模型的可控性。使系统以特定方式读取是不可能的。
同样,如果您在任何领域使用 seq2seq 模型并获得不希望的输出,您如何解决这个问题?是否有针对此问题的数据科学解决方法,或者可能是尖端的神经网络机制来在 seq2seq 模型中获得更多的可控性?
谢谢。
解决方案
我在论文的第 3.2 节(Deep Voice 3)中找到了我自己问题的答案。因此,他们训练了基于音素的模型和基于字符的模型,主要使用音素输入,除了如果单词无法转换为它们的音素表示,则使用基于字符的模型。
推荐阅读
- javascript - NodeJs,加密错误:“错误:错误:0406B06E:rsa 例程:RSA_padding_add_none:数据对于密钥大小来说太大”
- python - Python Kivy 错误:“kivy.properties.ObjectProperty”对象没有属性文本
- regex - 正则表达式捕获除先前捕获之外的所有内容
- python - 字符“在不和谐 py 中给了我一个错误
- google-analytics - GTM VideoURL 附加参数“ebc”
- mongodb - MongoDB中的特定字段
- css - 带有 Bootstrap 社交图标的 Font Awesome 仅在正方形中显示相应的颜色,而不是完整图标
- yii2 - 无法通过 Yii2 中的模型添加新节点
- reactjs - 如何在 react-admin 中未经身份验证时防止仪表板内容闪烁?
- three.js - 三.js MeshPhongMaterial 自发光