【问题标题】:How to do reinforcement learning with an LSTM in PyTorch?如何在 PyTorch 中使用 LSTM 进行强化学习?
【发布时间】:2018-04-05 11:21:37
【问题描述】:

由于观察不能揭示整个状态,我需要使用循环神经网络进行强化,以便网络对过去发生的事情有某种记忆。为简单起见,假设我们使用 LSTM。

现在,内置的 PyTorch LSTM 要求您为其提供一个形状为 Time x MiniBatch x Input D 的输入,它输出一个形状为 Time x MiniBatch x Output D 的张量。

然而,在强化学习中,要知道时间 t+1 的输入,我需要知道时间 t 的输出,因为我正在一个环境中执行操作。

那么是否可以使用内置的 PyTorch LSTM 在强化学习环境中进行 BPTT?如果是,我该怎么做?

【问题讨论】:

    标签: recurrent-neural-network backpropagation reinforcement-learning pytorch


    【解决方案1】:

    也许您可以将输入序列循环输入 LSTM。像这样的东西:

    h, c = Variable(torch.zeros()), Variable(torch.zeros())
    for i in range(T):
        input = Variable(...)
        _, (h, c) = lstm(input, (h,c))
    

    例如,您可以使用 (h,c) 和输入来评估动作的每个时间步长。只要您不破坏计算图,您就可以反向传播,因为变量会保留所有历史记录。

    【讨论】:

      猜你喜欢
      • 2019-12-07
      • 2019-11-17
      • 1970-01-01
      • 2021-01-06
      • 1970-01-01
      • 2021-01-14
      • 2019-03-31
      • 2019-11-08
      • 2019-11-22
      相关资源
      最近更新 更多