【问题标题】:Using LSTMs to predict from single-element sequence使用 LSTM 从单元素序列中进行预测
【发布时间】:2019-11-20 08:22:32
【问题描述】:
我正在尝试将强化学习应用于基于回合的游戏环境。每一轮我都会得到一个(独立的/接近马尔可夫的)状态,并且必须为世界的进步提供一个行动。因为存在一些长期策略(开发资源“A”,等待几轮开发,使用资源“A”),我正在考虑在我的神经网络中使用 LSTM 层。在训练期间,我可以将轮次序列输入网络以训练 LSTM;但是,在测试阶段,我只能提供当前状态(这是一个硬性要求)。
我想知道 LSTM 在这里是否是一个可行的选择,或者它们是否不适合这种用法,因为我只能在测试/部署期间提供一种状态。
【问题讨论】:
标签:
tensorflow
machine-learning
keras
lstm
reinforcement-learning
【解决方案1】:
是的,LSTM 在这里是一个可行的选择。在 keras 中,这将超越将名为“有状态”的字段设置为 true。这样做是不在每个样本之间重置单元格的内部状态,这意味着它将继续记住之前的步骤,直到该单元格被重置。
在这种情况下,您只需将 LSTM 有状态设置为 true,每步传递一个样本,并在情节完成后重置。请记住,如果有足够的信号可以将找到长期策略所需的所有时间步长放入一个样本中,您可能不希望在训练期间保持状态,因为您可能会在多个剧集上进行回放。
如果您使用的是除 keras 之外的其他任何东西,那么在 xyz 框架中搜索有状态 LSTM 应该会进一步帮助您