DQN 思维决策 - 强化学习 (Reinforcement Learning) | 莫烦Python
切换视频源:

DQN 思维决策

作者: 莫烦 编辑: 莫烦 2017-02-26

学习资料:

接着上节内容, 我们来定义 DeepQNetwork 的决策和思考部分.

代码主结构

定义完上次的神经网络部分以后, 这次我们来定义其他部分. 包括:

初始值

存储记忆

DQN 的精髓部分之一: 记录下所有经历过的步, 这些步可以进行反复的学习, 所以是一种 off-policy 方法, 你甚至可以自己玩, 然后记录下自己玩的经历, 让这个 DQN 学习你是如何通关的.

选行为

和之前的 QLearningTable, SarsaTable 等一样, 都需要一个选行为的功能.

学习

最重要的一步来了, 就是在 DeepQNetwork 中, 是如何学习, 更新参数的. 这里涉及了 target_neteval_net 的交互使用.

看学习效果

为了看看学习效果, 我们在最后输出学习过程中的 cost 变化曲线.

4-3-1.png

可以看出曲线并不是平滑下降的, 这是因为 DQN 中的 input 数据是一步步改变的, 而且会根据学习情况, 获取到不同的数据. 所以这并不像一般的监督学习, DQN 的 cost 曲线就有所不同了.

如果想一次性看到全部代码, 请去我的 Github

修改版的 DQN

4-3-2.png

最后提供一种修改版的 DQN 代码, 这是录制完视频以后做的, 这是将 q_target 的计算也加在了 Tensorflow 的 graph 里面. 这种结构还是有好处的, 作为学习样本的话, 计算结构全部在 tensorboard 上, 就更好理解, 代码结构也更好理解.

我只在原本的 DQN 代码上改了一点点东西, 大家应该可以很容易辨别. 修改版的代码在这.


降低知识传递的门槛

莫烦很常从互联网上学习知识,开源分享的人是我学习的榜样。 他们的行为也改变了我对教育的态度: 降低知识传递的门槛免费 奉献我的所学正是受这种态度的影响。 通过 【赞助莫烦】 能让我感到认同,我也更有理由坚持下去。