DQN 神经网络 - 强化学习 (Reinforcement Learning) | 莫烦Python
切换视频源:

DQN 神经网络

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

学习资料:

要点

接着上节内容, 这节我们使用 Tensorflow (如果还不了解 Tensorflow, 这里去往 经典的 Tensorflow 视频教程) 来搭建 DQN 当中的神经网络部分 (用来预测 Q 值).

两个神经网络

为了使用 Tensorflow 来实现 DQN, 比较推荐的方式是搭建两个神经网络, target_net 用于预测 q_target 值, 他不会及时更新参数. eval_net 用于预测 q_eval, 这个神经网络拥有最新的神经网络参数. 不过这两个神经网络结构是完全一样的, 只是里面的参数不一样. 在这个短视频里, 能找到我们为什么要建立两个不同参数的神经网络.

4-2-1.png

神经网络结构

因为 DQN 的结构相比之前所讲的内容都不一样, 所以我们不使用继承来实现这次的功能. 这次我们创建一个 DeepQNetwork 的 class, 以及他神经网络部分的功能. 下次再说强化学习的更新部分.

创建两个网络

两个神经网络是为了固定住一个神经网络 (target_net) 的参数, target_neteval_net 的一个历史版本, 拥有 eval_net 很久之前的一组参数, 而且这组参数被固定一段时间, 然后再被 eval_net 的新参数所替换. 而 eval_net 是不断在被提升的, 所以是一个可以被训练的网络 trainable=True. 而 target_nettrainable=False.

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


降低知识传递的门槛

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