sim*_*eon 18 python q-learning theano deep-learning keras
我一直在尝试使用"深度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).
代理需要一个策略,该策略基本上是一个将状态映射到策略的函数,该策略是每个操作的概率.因此,代理商将根据其政策选择一项行动.
即,政策= f(国家)
Policy Gradient没有丢失功能.相反,它试图最大化预期的奖励回报.而且,我们需要计算log(action_prob)*优势的梯度
我假设是这样的
我们需要两个功能
你已经知道实现像典型的分类问题并不容易,你只需要模型.compile(...) - > model.fit(X,y)
然而,
为了充分利用Keras,您应该习惯于定义自定义丢失函数和渐变.这与前者的作者基本相同.
您应该阅读更多关于Keras功能API和keras.backend的文档
此外,还有许多种政策梯度.
| 归档时间: |
|
| 查看次数: |
5916 次 |
| 最近记录: |