使用 LSTM 从单元素序列进行预测

Using LSTMs to predict from single-element sequence

我正在尝试将强化学习应用于基于回合的游戏环境。每一轮我都会得到一个(独立的/接近马尔可夫的)状态,并且必须提供一个行动来推动世界的进步。因为存在一些长期策略(开发资源 "A"、等待几轮开发、使用资源 "A"),我正在考虑在我的神经网络中使用 LSTM 层。在训练期间,我可以将轮次序列输入网络以训练 LSTM;但是,在测试阶段,我只能提供当前状态(这是一项硬性要求)。

我想知道 LSTM 在这里是否是一个可行的选择,或者它们是否不适合这种用法,因为我在测试/部署期间只能提供一种状态。

是的,LSTM 是一个可行的选择。在 keras 中,这将超越将名为 "stateful" 的字段设置为 true。这样做是为了重置每个样本之间单元格的内部状态,这意味着它会一直记住前面的步骤,直到重置此单元格。

在这种情况下,您只需将 LSTM stateful 设置为 true,每步将一个样本交给它,并在剧集完成后重置。请记住,如果有足够的信号表明您可以将找到长期策略所需的所有时间步长放入一个样本中,您可能不想在训练期间保持状态,因为您可能会在多个剧集中进行重放。

如果您使用的不是 keras,那么在 xyz 框架中谷歌搜索有状态 LSTM 应该可以进一步帮助您