我正在尝试构建一个包含卷积和LSTM(使用Torch库)的神经网络,通过Q学习或优势学习进行训练,这两者都需要在更新状态T的权重之前通过网络传播状态T + 1.
必须进行额外的传播会降低性能并且这很糟糕,但也不会太糟糕; 然而,问题是在这种情况下存在各种各样的状态.首先,反向传播的Torch实现具有一些效率快捷方式,这些快捷方式依赖于在前向传播之后立即发生的反向传播,这会导致额外的传播混乱.我可以通过让二级克隆网络共享权重值来解决这个问题,但我们遇到了第二个问题.
涉及LSTM的每个前向传播都是有状态的.当传播网络(T + 1)可能改变了LSTM的内容时,如何在T + 1更新权重?我试着看看在TD-Gammon中对TD重量更新的讨论,但它对我来说是迟钝的,无论如何都是前馈,而不是经常性的.
如何更新网络的权重,而不必将网络推进到T + 1,或者如何将网络推进到T + 1然后返回并调整权重,就好像它仍然是T?
reinforcement-learning neural-network temporal-difference torch lstm