首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >强化学习 12 - 什么是 DQN

强化学习 12 - 什么是 DQN

作者头像
杨熹
发布2018-12-27 17:29:05
1.3K0
发布2018-12-27 17:29:05
举报
文章被收录于专栏:杨熹的专栏杨熹的专栏

前面我们有一篇文章介绍了 q learning, 也用 Deep Q Network 做了一个小游戏, 但是还没有详细的讲DQN的理论,今天我们就来看一下它的概念。

当状态空间比较小的情况下用 q learning 还是可以的,但是在复杂的情况下,例如一个视频游戏,它的状态空间非常大,如果迭代地计算每一个 q 值是非常耗费时间耗费资源的。 这个时候我们就想不是直接的用迭代的方式去计算扣只,而是找到一个最优的 q 函数。 找这个最优的q函数的方法就是用神经网络。 我们用一个深度神经网络来为每一组状态行为估计它们的 q 值,进而近似的估计出最优的 q 函数。 将 Q learning 和深度神经网络相结合就是 DQN

例如我们有一个深度神经网络, 它的输入是给定环境下的状态, 它的输出是这个状态时可以采取的每个行动的 q 值。 这个网络的目标是估计出最优Q函数, 而且这个函数还要满足 bellman equation , 网络的损失函数是,比较输出的 q 值和方程右边的目标 q 值的差距, 然后用优化算法使这个损失越来越小。

在 q learning 中是用 bellman equation 来计算和更新Q的, 在神经网络中也是用 bellman equation 估计 q 值来找到最佳Q函数,

很多 DQN 只是一些卷积层后面跟着一个全连接层,全连接层的输出就是每个行为的q值。 例如,如果有4个行为,那么最后一层就会有4个节点,每个节点代表1个行为,这个节点的输出值就是这个行为相应的q值。 不过在输出层是没有激活函数的,因为我们想要的是没有经过变换的q值

学习资料: https://www.youtube.com/watch?v=wrBUkpiRvCA&t=554s https://medium.com/@awjuliani/simple-reinforcement-learning-with-tensorflow-part-4-deep-q-networks-and-beyond-8438a3e2b8df https://medium.com/@jonathan_hui/rl-dqn-deep-q-network-e207751f7ae4

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.12.18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档