我刚刚意识到我对 LSTM 的预测方法可能不正确。
我试图通过阅读这本书来逐个字符地预测。我解决问题的方法如下:
b c d e ^ carry cell state forward ^ ^ ^ LSTM_t0 -------------------------> LSTM_t1 -----> LSTM_t2 -----> LSTM_t3 ^ ^ ^ ^ a b c d
这意味着我有 4 个时间步,在每个时间步中,我将下一个字母输入 LSTM,期望它立即预测下一个字母。
我应该这样做:
ignore ignore ignore e ^ ^ ^ ^ LSTM_t0 ----> LSTM_t1 -----> LSTM_t2 -----> LSTM_t3 ^ ^ ^ ^ a b c d
在第一种情况下,我可以获得 4 个损失值,但在第二个例子中,我只有 1 个梯度源,位于 _t3
我主要关心的是在第一个示例中,我要求 LSTM 在没有提供足够的先前上下文的情况下对“b”和“c”进行预测。'd' 和 'e' 没问题,但是在时间步 0 和 1 要求答案有点不公平?
对于这个特定的例子,什么是最好的?