keras lstm翻译模型在添加或删除一个单词时的错误预测

时间:2018-05-09 11:03:04

标签: python tensorflow deep-learning keras lstm

我是keras seq2seq LSTM模型的新手。我有一个工作机器翻译模型和英语到阿拉伯语的培训数据。我刚刚使用谷歌colab工具训练模型并做了一些预测。正如你在图像中看到的那样,当我在训练数据的文本上测试模型时,它预测得很好,但是当我改变一个单词时,预测就完全错了! 即使添加/删除一个单词,我希望我的模型能够理解文本的全部含义。我该如何解决这个问题?

LSTM wrong predictions when adding/deleting one word

在图像中,每个部分的第一个测试是来自训练数据的文本,它可以很好地预测。第二个测试是相同的,但添加/删除一个单词。

更新:每当我添加验证分割时,val_loss总是在增加,模型不会学到太多!发生了什么事?

1 个答案:

答案 0 :(得分:0)

这是经典的过度训练问题。您的模型只会通过记住每个样本而不是理解其背后的概念来学习翻译您的训练数据。

因此,始终将您的训练数据分成训练数据和验证数据。验证数据不得在训练数据集中!这样你就可以检查你的模型是否真的在学习。

有两种主要解决方案:

  1. 像m33n所说的更多训练数据(没有更多数据的数据)
  2. 实施更多正规化技术,如Dropout
  3. 此外,问题似乎非常模糊。翻译句子根本不是一件容易的事,像google或deepl这样的公司创建了非常复杂的模型,这些模型经过多年的大量和大量数据训练。您确定您拥有完成此任务所需的资源吗?