我一直在尝试使用“深度 Q 学习”构建一个模型,其中我有大量的动作 (2908)。在使用标准 DQN 取得了一些有限的成功后:( https://www.cs.toronto.edu/~vmnih/docs/dqn.pdf ),我决定做更多的研究,因为我认为行动空间太大而无法做到有效探索。
然后我发现了这篇论文:https ://arxiv.org/pdf/1512.07679.pdf ,他们使用了演员-评论家模型和策略梯度,然后我发现了:https ://arxiv.org/pdf/1602.01783.pdf他们使用策略梯度来获得比 DQN 整体更好的结果。
我发现了一些他们在 Keras 中实施策略梯度的网站,https ://yanpanlau.github.io/2016/10/11/Torcs-Keras.html和https://oshearesearch.com/index.php/ 2016/06/14/kerlym-a-deep-reinforcement-learning-toolbox-in-keras/但是我很困惑它们是如何实现的。在前者中(当我阅读论文时),似乎不是为参与者网络提供输入和输出对,而是为所有权重提供梯度,然后使用网络对其进行更新,而在后者中他们只是计算一个输入-输出对。
我只是把自己弄糊涂了吗?我只是应该通过提供输入-输出对并使用标准的“拟合”来训练网络,还是我必须做一些特别的事情?如果是后者,我该如何使用 Theano 后端呢?(上面的例子使用 TensorFlow)。