我看过一些关于使用 LSTM(或 GRU)进行文本生成的文章。
基本上,您似乎通过将它们折叠起来并在每个输入中输入一个字母来训练它们。但是假设您使用包含字符串的文本对其进行了训练:
“狗追猫”
并且还包括字符串:
“狮子追着ca”
两者都应该可以接受。但是,尽管它们非常相似,但在第 4 个字符之后却完全不同。所以它们会产生两个非常不同的向量。此外,您推出的时间越长,它们的差异就越大。那么 LSTM 怎么可能知道“The [something]chass the cat”是一个可以接受的短语?
同样,如果您训练它尝试并学习配对括号。我可以看到您如何手动设计它来执行此操作,但是如何仅通过输入诸如“(das asdasdas)axd”之类的字符串来训练它来执行此操作呢?
我要说的是,我不明白它如何能学习比马尔可夫模型更多的结构。
有任何想法吗?
(另外,我只看过一篇文章展示了可以配对括号的 LSTM。那么这项研究是否被复制过?)我知道 LSTM 可以做到这一点,但我不明白它是如何做到的学会这样做!
我要说的是,您通常使用输入短语进行训练,然后将其与预期的短语进行比较以获得错误。但是在文本生成中,可能有数百万个可能的可接受的预期短语!那么如何计算误差呢?